【技术实现步骤摘要】
一种状态爆炸型正则表达式的识别方法及系统
[0001]本专利技术涉及一种状态爆炸型正则表达式的识别方法及系统,属于计算机软件
技术介绍
[0002]正则表达式匹配是网络过滤等许多应用程序中的关键组件,例如在深度包检测(DPI)中,它可以增强网络通信的安全性并检测恶意流量的存在。完成正则表达式匹配时,首先应将正则表达式转换为有限自动机(FA)。有限自动机是一种状态机,其识别的语言和由正则表达式表示的语言相同,根据下一状态转移是否确定,可以将FA分为非确定性有限自动机(NFA)和确定性有限自动机(DFA)。NFA和DFA的表达能力相当,但是由于每个DFA状态都等同于相应的NFA状态集,因此从NFA到DFA的转换可能会导致状态数激增,称这一现象为状态爆炸。表1描述了NFA和DFA在不同的编译策略下,其空间复杂度与匹配的时间复杂度对比结果。
[0003]表1为NFA和DFA在不同的编译策略下,空间复杂度与匹配的时间复杂度对比
[0004][0005]1、DFA以其高效的匹配性能而广泛应用于DPI应用中,但是 ...
【技术保护点】
【技术特征摘要】
1.一种状态爆炸型正则表达式的识别方法,其步骤包括:1)对于一待识别的正则表达式,生成其对应的NFA图,得到该正则表达式对应的NFA图集合;2)对于NFA图集合中的每一NFA图,提取该NFA图中的所有根子图并将其输入graph2vec模型,训练得到该NFA图的嵌入表示;3)利用分类模型处理该NFA图的嵌入化表示,判定该正则表达式是否为状态爆炸型正则表达式。2.如权利要求1所述的方法,其特征在于,步骤1)中,根据Thompson构造法生成该正则表达式对应的NFA图,并且用gexf文件存储该NFA图的信息;该NFA图的信息包括:NFA图的节点信息和边信息,其中节点信息包括节点的id值,边信息包括每条边的起始节点、终止节点以及边上的转移字符。3.如权利要求2所述的方法,其特征在于,根据节点的出边字符集合,将节点分为三类,作为节点的特征信息:加速状态爆炸的节点、阻碍状态爆炸的节点以及普通节点;其中,所述加速状态爆炸的节点为:若节点n的出边字符集合与正则表达式的前缀有重叠,且该出边字符集合连续出现了k次,则标记节点n为加速状态爆炸的节点;所述阻碍状态爆炸的节点为:若存在加速状态爆炸的节点n,并且在该节点n之前存在节点m,其出边字符集合与该节点n的出边字符集合交集为空集,则标记节点m为阻碍状态爆炸的节点;将加速状态爆炸的节点、阻碍状态爆炸的节点之外剩余的节点标记为普通节点。4.如权利要求3所述的方法,其特征在于,将节点的特征信息加入到WL算法中,然后利用融合节点分类的WL算法提取gexf文件中的所有根子图。5.如权利要求1所述的方法,其特征在于,所述分类模型为SVM分类器。6.如权利要求1所述的方法,其特征在于,训练graph2vec模型的方法为:将NFA图中的所有根子图看作文档中的词汇表,通过最大化公式得到所述文档的向量化表示,以及优化目标是最大化每个图中出现的属于它本身的根子图的概率,即最大化其中,d
i
表示第i篇文档的向量化表示,w
...
【专利技术属性】
技术研发人员:卢毓海,王晓琳,张春燕,刘燕兵,谭建龙,郭莉,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。