CN102156748A - 基于字母表压缩的扩展有限自动机构造方法 - Google Patents

基于字母表压缩的扩展有限自动机构造方法 Download PDF

Info

Publication number
CN102156748A
CN102156748A CN2011101015176A CN201110101517A CN102156748A CN 102156748 A CN102156748 A CN 102156748A CN 2011101015176 A CN2011101015176 A CN 2011101015176A CN 201110101517 A CN201110101517 A CN 201110101517A CN 102156748 A CN102156748 A CN 102156748A
Authority
CN
China
Prior art keywords
state
alphabet
acfa
alphabetical
finte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011101015176A
Other languages
English (en)
Inventor
张大方
金军航
黄昆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN2011101015176A priority Critical patent/CN102156748A/zh
Publication of CN102156748A publication Critical patent/CN102156748A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种基于字母表压缩的扩展有限自动机(ACFA,Alphabet Compression Based Extend Finite Automaton)构造方法,该方法为:选用合适的规则集在字母表压缩的扩展有限自动机中进行验证试验;读入规则集,通过字母表压缩的扩展有限自动机构造方法构造有限自动机并同时生成状态集;通过字母表压缩的扩展有限自动机匹配方法对每个状态集分别进行字母表划分并压缩其迁移表。与扩展有限自动机XFA相比,ACFA在迁移边上减少95.6%,在存储空间大小上减少了90.7%,而在匹配时间上仅增加了23.6%。因此,ACFA是一种快速且存储高效的正则表达式匹配方法,较已有的正则表达式匹配方法更加适合于高速深度包检测。

Description

基于字母表压缩的扩展有限自动机构造方法
技术领域
本发明涉及电子计算机网络技术,具体是一种基于字母表压缩的扩展有限自动机构造方法。
背景技术
特征匹配算法是深度包检测的关键,它通过扫描数据包,识别出与特征规则集匹配的数据包。为了能够实现在一次扫描中识别出所有匹配的特征,深度包检测一般采用多模式匹配算法。
随着攻击越来越复杂,例如躲避攻击,变型等攻击的出现,精确字符串难以精确描述复杂的攻击特征。同时,精确字符串会导致网络入侵检测系统大量假阳性报警。由于正则表达式具有灵活、高效等特点,目前许多安全产品都已采用正则表达式代替精确字符串表示攻击特征规则集。例如开源的Snort、Bro、3Com的TippingPoint X550、Cisco的安全产品系列、以及Citrix防火墙。正则表达式匹配算法实现方式主要基于非确定有限自动机(Nondeterministic Finite Automaton,NFA)和确定有限自动机(Deterministic Finite Automaton,DFA)。但是,伴随随着网络的高速发展,正则表达式匹配算法也正在面临高性能挑战——如何更好的满足高速网络数据包处理的要求。然而,基于软件的正则表达式匹配算法无法达到目前将近10~40Gbps的数据包线速匹配。例如,即使在Sun特殊安全防御应用下的Snort最大吞吐量仅为250Mbps。因此,将正则表达式匹配算法实现在硬件上来加速匹配是目前研究的方向。
近年来,研究者利用现代嵌入式存储器技术,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、网络处理器(NP)和三重内容寻址存储器(TCAM)等,提出了面向硬件实现的正则表达式匹配算法来提高吞吐量。Sindhu等人和Clark等人在FPGA上实现了NFA来进行正则式表达式匹配,提高了深度包检测的吞吐量,但无法达到当前高速网络的处理要求。Moscola等人把DFA实现在FPGA上,与NFA相比在吞吐量上有很大的提高,但是规则数受到了限制。Yu等人采用TCAM实现了简单正则表达式的DFA,但由于TCAM具有价格昂贵,集成度低等缺点,难以对大规模规则集采用。由此研究人员发现基于传统的NFA和DFA正则表达式匹配算法都无法满足高性能需求。而且随着特征规则集的快速增长,基于传统的NFA和DFA的正则表达式匹配算法缺乏可伸缩性,无法适应高速网络。因此,高性能深度包检测的关键是设计一种快速且存储高效的正则表达式匹配算法。又因为NFA的匹配效率无法满足高速网络性能要求,所以目前研究如何改变这一状况的重点主要围绕DFA而展开。
DFA的存储空间大小是由状态个数和每个状态的迁移边条数决定的。造成DFA存储空间大的主要原因是:(1)在状态方面,由于正则表达式用了许多语义丰富的符号,例如“*”,“.”和“{}”等,DFA需要大量的状态来记录部分匹配结果,导致状态空间爆炸;(2)在迁移边方面,对于ASCII字母表,每个状态需要256条迁移边,导致状态的迁移表很大。因此,目前的DFA压缩算法都从DFA的状态和迁移边这两个方面来减少DFA的存储空间需求,即主要分为两类:基于状态压缩的算法和基于迁移边压缩的算法。基于状态压缩的算法是从整体上减少自动机的状态数目,因此,通过压缩状态可以很大程度上减少存储空间。而基于迁移表压缩的算法是通过压缩每个状态的迁移表来减小存储空间。
基于状态压缩的算法方面,Yu等人提出了分组DFA(mDFA,Multiple DFA),即通过合理划分正则表达式规则集,将一个正则表达式规则集划分成多组规则集,然后对每个规则集分别产生一个DFA的方式来解决DFA状态空间爆炸的问题。由于mDFA产生了多个DFA,因此需要进行多次正则表达式匹配,增加了匹配时间。徐乾等人提出用膨胀率(DR,Distending Rate)来描述正则表达式的膨胀特性,并利用正则表达式组合关系提出一种选择性分群算法(REGADR,Regular Expression Group Algorithm Based on DR),在减少存储空间需求同时,确保DFA状态机的个数可接受。Becchi等人提出了一种基于状态融合DFA的正则表达式匹配算法,即采用迁移边标记方法来融合多个非等价状态,减少了DFA的存储空间需求。Kumar等人提出DFA具有健忘症,即DFA需要大量额外状态来记录部分匹配结果,以及失算症,即DFA无法记录相同子串的匹配次数。因此,提出H-FA和H-cFA来解决DFA健忘症和失算症。但是Kumar等人只提供了一些启发策略,并没有提供系统的构造算法。Smith等人分析了DFA的状态空间爆炸原因,并且提出了扩展有限自动机(XFA,eXtend Finite Automaton),即在DFA中加入某些辅助变量包括比特位和计数器,使用变量记录中间的匹配结果,从而减少很多额外状态。在正则表达式匹配时,XFA在进行状态迁移的同时,需要执行迁移边或者状态上的指令来使变量记录下匹配结果,因此需要付出一些指令执行开销。
基于迁移表压缩的算法方面,Kumar等人观察到DFA很多状态的迁移表相似,提出了输入延迟DFA(D2FA,Delayed Input DFA)。D2FA通过使用默认迁移边,删除状态之间的相同的迁移边。但是D2FA在进行正则表达式匹配时,由于默认迁移边链过长,一次有效的状态迁移需要过多的存储访问,导致匹配效率低下。因此,Kumar等人又提出了内容寻址D2FA(CD2FA,Content Adrresing D2FA),即利用状态信息的标签代替状态ID,通过哈希来快速定位下一状态,从而提高匹配效率。Becchi等人发现DFA的状态集对于字母表中的很多字符都有相同的下一状态,提出了采用单字母表压缩方式减少DFA的迁移表大小。在进行正则表达式匹配时,首先查询字母压缩表(ACT,Alphabet Compress Table),然后找到字母表对应的迁移边在迁移表的位置,最终找到下一状态。基于字母表压缩的DFA压缩了存储空间,但是需要付出查询字母压缩表的代价。
发明内容
针对现有技术存在的缺陷,本发明所要解决的技术问题是,通过减少字母表大小的方式来减少XFA的迁移表大小,采用启发式策略合理划分XFA的状态集合,对所划分的各个状态集分别建立一张字母压缩表,并利用这些字母压缩表压缩XFA的迁移表,进一步减少XFA的存储空间,并确保匹配效率。
为解决上述问题,本发明的技术方案是,基于字母表压缩的扩展有限自动机构造方法为:
1)选用合适的规则集在字母表压缩的扩展有限自动机中进行验证试验;
2)读入规则集,通过字母表压缩的扩展有限自动机构造算法构造有限自动机并同时生成状态集;
3)通过字母表压缩的扩展有限自动机匹配算法对每个状态集分别进行字母表划分并压缩其迁移表。
所述验证试验中的规则集来源于Snort中的FTP和HTTP规则集。
通过字母表压缩的扩展有限自动机构造方法构造有限自动机的步骤为:
1)将扩展有限自动机的状态集划分成多个状态集,使得每个所划分的状态集的字母等价类数目尽可能少;
2)对每个状态集进行字母表划分,构造出多张字母压缩表,并使用这些字母压缩表压缩状态的迁移表。
本发明所述方法可以大大减少XFA的存储空间,并确保匹配效率。是一种快速且存储高效的正则表达式匹配算法,较已有的正则表达式匹配算法更加适合于高速深度包检测。
附图说明
图1{.*ab[c-d],.*[b-c]a}对应的XFA,(a)状态图,(b)迁移表;
图2字母表划分算法;
图3状态集划分算法;
图4迁移表压缩算法;
图5{.*ab[c-d],.*[b-c]a}对应的ACFA的字母压缩表和迁移表;
图6ACFA的匹配算法;
图7{.*ab[c-d],.*[b-c]a}对应的ACFA的匹配示例;
图8字母压缩表数目对ACFA的存储空间需求和匹配时间的影响,(a)状态的品均迁移边条数,(b)存储空间大小,(c)匹配时间;
图9FTP规则集下ACFA和XFA存储空间相关指标对比,(a)迁移边条数,(b)存储空间大小;
图10HTTP规则集下ACFA和XFA存储空间相关指标对比,(a)迁移边条数,(b)存储空间大小;
图11各规则集ACFA和XFA匹配时间对比,(a)FTP规则集,(b)HTTP规则集。
具体实施方式
为了便于算法描述,首先介绍一些相关定义。当状态S对于字母a和b都到达相同下一状态时,则称字母a和b对于状态S等价。如图1所示,状态S0对于字母b和c都到达相同下一状态S2,因此,字母b和c对于状态S0是等价的。状态S1对于字母b和c到达不同的下一状态,则字母b和c对于状态S1不是等价的。当字母表的某个子集对于某个状态集的所有状态都等价时,我们称这个字母表子集为该状态集的字母等价类。如图1所示,字母表子集{B,b,C,c}是状态集{S0,S2,S5,S6}的字母等价类。
我们可以把XFA的字母表划分成一个字母等价类集合,生成一张字母压缩表(ACT,Alphabet Compression Table)。每个XFA的状态对每个字母等价类只需要一条迁移边,字母压缩表存放当前字母对应的迁移边在迁移表中的位置。在查找下一状态时,首先查找字母压缩表获得所需迁移边在迁移表中的位置,然后查找迁移表获得下一状态。可以想象:最好情况下,XFA的字母表被划分成一个等价类,这时每个状态都只有一条迁移边;最坏情况下,XFA的字母表被划分成|∑|个等价类,那么迁移表大小将没有任何减小。因此,字母表等价类数目越少,XFA所需存储空间也将越少。
通过观察实际的迁移表,我们发现从整个XFA的状态集出发,难以对字母表划分,使得字母等价类数目较少。但是,对于某一部分的XFA的状态集而言,字母等价类的数目要少的多。如图1所示,对于所有状态进行字母表划分,将获得4个字母等价类{{a,A},{b,B},{c,C},{d,D}}。而我们将XFA的状态集划分成状态集{S0,S2,S5,S6}和{S1,S3,S4}。状态集{S0,S2,S5,S6}将只有3个字母等价类{{a,A},{b,B,c,C},{d,D}},可以进一步减少XFA的存储空间。
因此,我们提出了一种基于字母表压缩的扩展有限自动机(ACFA,Alphabet Compression Based Finite Automaton),即采用启发式策略将XFA的状态集进行划分,使得每个状态集在字母表划分后,都能使对应的字母等价类数目较少。下面,将详细介绍基于字母表压缩的扩展有限自动机的构造算法。
基于字母表压缩的扩展有限自动机构造过程分为两个步骤:
(1)将XFA的状态集S={S0,S1,S2,....}划分成多个状态集,使得每个所划分的状态集的字母等价类数目尽可能少。
(2)对每个状态集进行字母表划分,构造出多张字母压缩表,并使用这些字母压缩表压缩状态的迁移表。
由于状态集划分算法使用字母表划分算法进行启发式划分,因此,我们首先介绍如何对状态集进行字母表划分。图2是字母表划分算法的伪代码。第1行首先初始化字母等价类集合,此时只有一个字母等价类∑。然后,每个状态将会对当前的字母等价类集合划分。第5~9行实现了状态如何对字母等价类划分。对于每个字母等价类,当前状态会对它创建一个map的映射对象,它是一个<nextState,charGroup>的映射的集合。nextState表示当前状态可达的下一状态,charGroup表示当前状态在输入charGroup中的字母都将到达nextState状态。字母表在经过所有状态的划分之后,所建立的字母等价类对于所有状态都将等价。图1所示的XFA的字母表经过所有状态的划分后,所划分出的字母等价类集合为{(a,A),(b,B),(c,C),(d,D)}。
图3是状态集划分算法的伪代码。函数partitionStates()的输入为XFA的状态集和需要划分状态集的目标个数。第2~6行的每个循环都将调用函数getEqualClass Parttion()划分出一个状态集。当调用getEqualClassParttion()进行划分时,首先设置目标状态集的个数为原来的1/2。然后,将对states状态集进行字母表划分,接着通过11~27行的循环不断合并字母等价类的方式来尽量减少目标状态集的字母等价类个数。第17~22行通过启发式策略找出两个字母等价类betsj和bestk,合并这两个字母等价类能使从subset中删除尽量少的状态,这也意味着可以合并更多个字母等价类,使的subset状态集的字母等价类尽可能少。在每次合并时,statesCut状态集中的状态将不支持此次合并,我们将这些状态从subset中排除出去。例如状态集{S0,S1,S5,S6}的字母等价类为{{a,A},{b,B},{c,C},{d,D}},为了合并等价类{b,B}和{c,C}需要将状态S1排除出去。通过这种策略,所挑选出的每个状态集能能产生尽可能少的字母等价类,因此,经过压缩后的迁移表也能尽可能小。图1所示的XFA经过状态集划分后,被划分成两个状态集{S0,S2,S5,S6}和{S1,S3,S4}。在状态集划分算法中,我们使用启发式策略来划分状态集,而每个状态集分别使用一张字母压缩表。我们将通过实验的方式来确定对于实际的规则集使用多少张字母压缩表为最优,即在保证ACFA匹配效率可接受的条件下,使得存储空间尽可能小。
当划分好状态集后,我们将对每个状态集分别进行字母表划分并压缩其迁移表。图4是ACFA的迁移表压缩的伪代码。对于每个状态集,第4行首先划分出状态集的字母等价类。而第5~12行对状态集的每个状态进行迁移表压缩。在处理一个状态集时,对于每个状态,通过迭代这个状态集对应的字母等价类,对每个字母等价类在压缩迁移表上添加一条迁移边,同时记录下这条迁移边在新的迁移表中的位置。在压缩完状态的迁移表后,第11行记录下该状态使用的字母压缩表的编号。图5是图1(b)所示的迁移表经过字母表压缩后的结果。可以看到,状态集{S0,S2,S5,S6}使用了字母压缩表ACT0,而状态集{S1,S3,S4}使用了字母压缩表ACT1。新的迁移表记录了下一状态的信息,而字母压缩表记录了目标迁移边在新的迁移表中的位置信息。经过压缩,我们减少了32条迁移边。而在实际的规则集中,由于ASCII字母表大小为256,因此有更大的压缩空间。下面,我们将介绍如何利用新的迁移表和字母压缩表进行正则表达式匹配。
通过ACFA构造算法,我们将得到新的迁移表和多张字母压缩表。ACFA的匹配算法将通过查询字母压缩表和新的迁移表得到下一状态,然后执行该状态的指令。图6是基于ACFA的正则表达式匹配算法的伪代码。在进行正则表达式匹配之前,ACFA首先将当前状态curState设置为初始状态,并且执行初始状态的指令。然后,第4~8依次读入字符进行正则表达式匹配。在进行状态迁移时,首先要根据当前状态的字母压缩表编号和输入字符找出迁移边的位置,根据迁移边的位置在迁移表中找出下一状态。图7显示了ACFA如何进行正则表达式匹配。例如ACFA的当前状态为S3,S3使用字母压缩表ACT1,我们根据当前输入c在ACT1中找到所需迁移边在状态S3的迁移表的位置index为2。然后,在S3的迁移表的2号位置找出下一状态S5。
与XFA相比,ACFA需要比XFA多出字母压缩表查询的开销。在软件实现下,对每个输入字母,我们都将首先查询字母压缩表,而且压缩表所占存储空间不大,因此字母压缩表一般都将驻留在CPU的高速缓存中,多一次查询并不会增加太多匹配时间。而在硬件实现上,由于字母压缩表存储空间很小,我们可以很容易的把这些字母压缩表放在片上存储,因此也只增加一次片上存储访问。为了验证算法的有效性,我们将在软件实现下对ACFA的存储空间和匹配效率做出评估。
我们采用C++设计和实现了基于字母表压缩的扩展有限自动机,实验运行在CPU为Intel Core 2 Duo 2.4GHZ、内存为2GB的计算机上。实验所需的正则表达式规则集来源于Snort,我们从中提取了其中的FTP规则集和部分HTTP规则集作为实验对象,并且,通过抓取HTTP数据包和FTP数据包进行数据匹配。
首先,我们研究字母压缩表数目对ACFA的存储空间和匹配效率的影响,即找出最佳的ACT数目,在保证ACFA匹配效率可接受条件下,使得ACFA存储空间最少。然后,我们将应用这一参数,对ACFA和XFA进行评估。在评估ACFA和XFA的存储空间需求和匹配效率时,我们分别对FTP规则集和HTTP规则集中随机抽取规则数比例为1/8,1/4,1/2的规则集,每个比例抽取50个规则集。对各个比例的规则集利用各自算法产生自动机,评估出各个比例规则集所需的存储空间和匹配效率。
我们采用存储空间需求和匹配效率两个方面来评估ACFA和XFA的匹配算法的性能。在存储空间方面,除了对比迁移边条数之外,我们还将根据自动机的实现估计出XFA和ACFA所需的存储空间大小。ACFA压缩了XFA的迁移表,在指令方面没有变化,即所需指令存储空间和XFA相同。我们通过以下规则来估计存储空间大小:(1)XFA的迁移表采用对齐的二维表的存储结构,对于ASCII字母表,每个状态有256条迁移边;(2)ACFA除了迁移表所需存储空间外,还需字母压缩表的存储空间,每张ACT含迁移表状态的位置,因此每张ACT需要256字节的存储空间。另外,每个状态还需要一个字节来标识所使用的ACT编号;(3)XFA和ACFA的每条指令包含1字节操作类型,4字节操作数地址,所属规则编号需要
Figure BDA0000056765730000111
字节,M表示规则数大小。在匹配效率方面,我们仍采用1GB数据所需的匹配时间(s/GByte)来评估各个算法的匹配效率。
通过实验验证ACFA的工作效率并通过图表使统计得出的结果清晰形象,图8表示的是ACT数目从0到7依次增长时,ACFA的状态的平均迁移边条数,存储空间大小和匹配时间变化的结果。当ACT=0时,此时ACFA就是XFA,迁移表没有经过任何压缩,状态的平均迁移边条数为256。随着ACT数目增加,ACFA状态的平均迁移边数目和存储空间大小都呈下降趋势。图8(a)和(b)表明,当ACT=1是,存储空间需求减少最大,并且随着ACT数目的增长,存储空间需求进一步减少。当ACT=7时,对于FTP规则集,与XFA相比,ACFA的迁移边条数减少了88.6%,存储空间大小减少了87.2%;而对于HTTP规则集,与XFA相比,ACFA的迁移边条数减少了75.4%,存储空间减少了75.0%。图8(c)展示了匹配时间变化结果。对于FTP规则集,当ACT从0变为1时,ACFA的匹配时间增加了25.0%。但是,当ACT从1增长到7时,匹配时间并没有呈现增长的趋势。因此,对于FTP和HTTP规则集,当ACT=7时,ACFA需要最少的存储空间,并保证匹配效率。因此,我们将使用ACT=7作为下面实验ACFA的参数。
我们还需要分别验证在不同协议规则集下ACFA和XFA存储空间相关指标。图9是FTP规则集下ACFA和XFA存储空间相关指标对比。如图9(a)所示,当规则数比例从1/8增至1时,XFA的迁移边条数从10624增至92928,而ACFA的迁移边条数仅从464增至10586。图9(a)表明,与XFA相比,ACFA在迁移边条数上减少了88.6%~95.6%。如图9(b)所示,当规则数比例从1/8增至1时,XFA的存储空间大小从43KB增至376KB,而ACFA的存储空间大小仅从4KB增至48KB。图9(b)表明,与XFA相比,ACFA在存储空间上减少了87.2%~90.7%。
HTTP规则集下ACFA和XFA存储空间相关指标对比如图10所示。如图10(a)所示,当规则数比例从1/8增至1时,XFA的迁移边条数从189696增至1435136,而ACFA的条数仅从22721增至352806。图10(a)表明,与XFA相比,ACFA在迁移边条数上减少了75.4%~88.0%。如图10(b)所示,当规则数比例从1/8增至1时,XFA的存储空间大小从759KB增至5764KB,而ACFA的存储空间大小仅从94KB增至1442KB。图10(b)表明,与XFA相比,ACFA在存储空间上减少了75.0%~87.6%。
ACFA和XFA在FTP和HTTP规则集下匹配时间对比如图11所示。如图11(a)所示,当FTP规则数比例从1/8增至1时,XFA的匹配时间从9.5s增至12.3s,而ACFA的匹配时间从12.3s增至15.2s。图10(a)表明,在FTP规则集下,与XFA相比,ACFA的匹配时间增加了23.6%~29.5%。如图10(b)所示,当HTTP规则数比例从1/8增至1时,XFA的匹配时间从10.1s增至13.1s,而ACFA的匹配时间从12.6s增至16.0s。图10(b)表明,在HTTP规则集下,与XFA相比,ACFA的匹配时间增加了24.8%~29.9%。
本发明作为一种基于字母表压缩的扩展有限自动机构造方法,具有一定的通用性,并且可以通过应用该方法的思想直接改进现有的有限自动机。可应用于正则表达式匹配,深度包检测,网络安全检测等领域。其具体的实施分归纳一个预备步骤和两个实施步骤。
预备步骤:选用合适的规则集在ACFA中进行验证试验
本发明的验证试验中选用的正则表达式规则集来源于Snort中的FTP和HTTP的规则集。
步骤1:读入规则集,通过ACFA构造方法构造有限自动机并同时生成状态集;
基于字母表压缩的扩展有限自动机构造过程分为两个步骤:
(1)将XFA的状态集划分成多个状态集,使得每个所划分的状态集的字母等价类数目尽可能少。
(2)对每个状态集进行字母表划分,构造出多张字母压缩表,并使用这些字母压缩表压缩状态的迁移表。
步骤2:通过ACFA匹配方法对每个状态集分别进行字母表划分并压缩其迁移表;
在处理状态集时,对于每个状态,通过迭代这个状态集所对应的字母等价类,对每个字母等价类在压缩迁移表上添加一条迁移边,同时记录下这条迁移边在新的迁移表中的位置。再根据ACFA构造算法,可以得到新的迁移表和多张字母压缩表。ACFA的匹配算法将通过查询字母压缩表和新的迁移表得到下一状态,然后执行该状态的指令。

Claims (3)

1.一种基于字母表压缩的扩展有限自动机构造方法,其特征在于,该方法为:
1)选用合适的规则集在字母表压缩的扩展有限自动机中进行验证试验;
2)读入规则集,通过字母表压缩的扩展有限自动机构造方法构造有限自动机并同时生成状态集;
3)通过字母表压缩的扩展有限自动机匹配方法对每个状态集分别进行字母表划分并压缩其迁移表。
2.根据权利要求1所述的基于字母表压缩的扩展有限自动机构造方法,其特征在于,所述验证试验中的规则集来源于Snort中的FTP和HTTP规则集。
3.根据权利要求1所述的基于字母表压缩的扩展有限自动机构造方法,其特征在于,通过字母表压缩的扩展有限自动机构造方法构造有限自动机的步骤为:
1)将扩展有限自动机的状态集划分成多个状态集,使得每个所划分的状态集的字母等价类数目尽可能少;
2)对每个状态集进行字母表划分,构造出多张字母压缩表,并使用这些字母压缩表压缩状态的迁移表。
CN2011101015176A 2011-04-22 2011-04-22 基于字母表压缩的扩展有限自动机构造方法 Pending CN102156748A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101015176A CN102156748A (zh) 2011-04-22 2011-04-22 基于字母表压缩的扩展有限自动机构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101015176A CN102156748A (zh) 2011-04-22 2011-04-22 基于字母表压缩的扩展有限自动机构造方法

Publications (1)

Publication Number Publication Date
CN102156748A true CN102156748A (zh) 2011-08-17

Family

ID=44438247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101015176A Pending CN102156748A (zh) 2011-04-22 2011-04-22 基于字母表压缩的扩展有限自动机构造方法

Country Status (1)

Country Link
CN (1) CN102156748A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591958A (zh) * 2011-12-29 2012-07-18 中国科学技术大学 基于tcam的确定性有穷状态自动机的匹配方法和装置
CN103957131A (zh) * 2014-04-11 2014-07-30 烽火通信科技股份有限公司 一种基于有限自动机的深度报文检测方法
CN104123357A (zh) * 2014-07-17 2014-10-29 浙江宇视科技有限公司 一种查询卡口的方法和装置
CN104333487A (zh) * 2014-10-31 2015-02-04 广东工业大学 一种面向实时网络数据流的高效事件匹配方法
CN109981398A (zh) * 2019-02-22 2019-07-05 中国科学院计算技术研究所 基于膨胀系数的k分组正则表达式分组方法和系统
CN112989136A (zh) * 2021-04-19 2021-06-18 河南科技大学 一种有限状态自动机器的精简方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《湖南大学工程硕士学位论文》 20110331 金军航 "面向深度包检测的存储高效的正则表达式匹配算法研究" 38-47 1-3 , *
金军航: ""面向深度包检测的存储高效的正则表达式匹配算法研究"", 《湖南大学工程硕士学位论文》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591958A (zh) * 2011-12-29 2012-07-18 中国科学技术大学 基于tcam的确定性有穷状态自动机的匹配方法和装置
CN102591958B (zh) * 2011-12-29 2014-01-01 中国科学技术大学 基于tcam的确定性有穷状态自动机的匹配方法和装置
CN103957131A (zh) * 2014-04-11 2014-07-30 烽火通信科技股份有限公司 一种基于有限自动机的深度报文检测方法
CN103957131B (zh) * 2014-04-11 2017-04-12 烽火通信科技股份有限公司 一种基于有限自动机的深度报文检测方法
CN104123357A (zh) * 2014-07-17 2014-10-29 浙江宇视科技有限公司 一种查询卡口的方法和装置
CN104123357B (zh) * 2014-07-17 2018-09-14 浙江宇视科技有限公司 一种查询卡口的方法和装置
CN104333487A (zh) * 2014-10-31 2015-02-04 广东工业大学 一种面向实时网络数据流的高效事件匹配方法
CN109981398A (zh) * 2019-02-22 2019-07-05 中国科学院计算技术研究所 基于膨胀系数的k分组正则表达式分组方法和系统
CN109981398B (zh) * 2019-02-22 2021-08-24 中国科学院计算技术研究所 基于膨胀系数的k分组正则表达式分组方法和系统
CN112989136A (zh) * 2021-04-19 2021-06-18 河南科技大学 一种有限状态自动机器的精简方法及系统
CN112989136B (zh) * 2021-04-19 2022-10-04 河南科技大学 一种有限状态自动机器的精简方法及系统

Similar Documents

Publication Publication Date Title
CN102156748A (zh) 基于字母表压缩的扩展有限自动机构造方法
Goel et al. Small subset queries and bloom filters using ternary associative memories, with applications
CN102184197B (zh) 基于智能有限自动机的正则表达式匹配方法
CN104881439B (zh) 一种多模式串匹配方法和系统
Sun et al. Attention-based machine learning model for smart contract vulnerability detection
CN102301342A (zh) 正则表达式匹配方法和系统及查找装置
Liu Study on application of apriori algorithm in data mining
CN104850783B (zh) 一种基于哈希特征矩阵的恶意软件云检测方法及系统
CN103679012A (zh) 一种可移植可执行文件的聚类方法和装置
CN105045808B (zh) 一种复合规则集匹配方法和系统
CN105515997B (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN113010484A (zh) 日志文件管理方法及装置
CN110263021B (zh) 一种基于个性化标签体系的主题库生成方法
Ge et al. Privacy-preserving graph matching query supporting quick subgraph extraction
CN105069084B (zh) 一种面向海量数据高效取差集的方法
Bhamare et al. Parallelization of Multipattern Matching on GPU
Yang et al. A compression approach to reducing power consumption of TCAMs in regular expression matching
CN105488183B (zh) 挖掘石窟壁画群中石窟壁画时空关联关系的方法和装置
Xu et al. Offset-FA: Detach the closures and countings for efficient regular expression matching
Gu A Lightweight Phishing Website Detection Algorithm by Machine Learning
Zou et al. DePL: Detecting privacy leakage in DNS-over-HTTPS traffic
Peng et al. A fast engine for multi-string pattern matching
Nadi et al. A new method for mining maximal frequent itemsets based on graph theory
Liangxu et al. Improve Aho-Corasick algorithm for multiple patterns matching memory efficiency optimization
Zhang et al. TPE-NIDS: uses graph neural networks to detect malicious traffic

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110817