CN104881439B - 一种多模式串匹配方法和系统 - Google Patents
一种多模式串匹配方法和系统 Download PDFInfo
- Publication number
- CN104881439B CN104881439B CN201510236364.4A CN201510236364A CN104881439B CN 104881439 B CN104881439 B CN 104881439B CN 201510236364 A CN201510236364 A CN 201510236364A CN 104881439 B CN104881439 B CN 104881439B
- Authority
- CN
- China
- Prior art keywords
- string
- hash
- text
- matching
- bit vector
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种空间高效的多模式串匹配方法和系统。首先提出了一种新的存储模式串的数据结构—HashTrie,利用位向量表将原模式串矩阵存储为一维表的形式,避开传统方法存储自动机的状态转移矩阵问题;利用递归的哈希函数方法求出这个特殊的位向量表,以达到节约存储空间的目的;在哈希函数计算过程中,利用位运算技巧,将其转化为简单高效的位与运算操作;另外在HashTrie构造和关键词查找过程中均使用Rank技术,提高了搜索的空间效率和时间效率。本发明极大地降低了内存开销和预处理时间,更能满足实时入侵检测系统对规则生效的时效性要求,更适合于模式串集合规模较大、模式串长度较短的多模式串实时匹配问题。
Description
技术领域
本发明涉及信息过滤、信息检索、计算生物学等领域,具体涉及一种空间高效的多模式串匹配方法和系统。
背景技术
近年来,随着宽带技术的发展和多媒体应用的流行,互联网技术得到极大的普及和发展。随着网络用户飞速增长的同时,攻击模式亦飞速增长,对入侵检测系统的需求亦随之增加。面对当前互联网协议设计缺陷、计算机系统漏洞、网络入侵攻击等日趋严峻的网络安全问题,已有算法的存储空间和运算速度已经难以满足高速网络环境下对特征串实时匹配的应用需求。因此,设计更加高效的多模式串匹配系统,具有重要的理论和实际意义。
文献(Efficient String Matching:An Aid to Bibliographic Search,Communications of the ACM,333-340,1975)提出了基于前缀搜索的多模式串匹配算法—Aho-Corasick算法(简称AC算法),从模式串集合构建AC自动机,通过对自动机的访问进行匹配。该算法匹配的时间复杂度正比于待扫描文本长度,不受关键词长度和文本统计特征的影响,性能比较稳定。但是需要巨大的存储空间来存储自动机,通常不是最快的匹配算法。
文献(AFast Algorithm for Multi-Pattern Searching,University ofArizona,Tech.Rep.TR94-17,1994)提出的基于后缀搜索的方法—Wu-Manber算法(简称WM算法),是Boyer-Moore算法的扩展和改进。该算法使用散列函数将所有可能的字符块散列到跳跃距离表SHIFT上,然后利用SHIFT表进行快速地移动以跳过不可能匹配的文本字符。Wu-Manber算法简单高效,实际效果好。但该算法适合于字符集比较大、模式串长度比较长的应用场景,不适用于模式串长度比较短的场景。
文献(Ahigh throughput string matching architecture for intrusiondetection and prevention,Computer Architecture,ISCA'05.Proceedings,32ndInternational Symposium,pages:112-122,2005)提出了一种按位拆分的自动机存储结构bit-split。该方法将一个AC有限状态机按位拆分为一组较小的AC有限状态机,以减少总内存需求。但是按位分割存储结构是一种基于硬件的实现方案,软件实现效率较低。
文献(High-Performance Pattern-Matching for Intrusion Detection,INFOCOM 2006,25thIEEE International Conference on Computer Communications,Proceedings,pages:1-13,April 2006)提出了一种基于硬件实现的可编程状态机机制。该方法将模式串集聚类拆分,并将状态存放在一个256行的表中,移除AC有限状态机中那些转移到初始状态和初始状态的下一个状态的状态。采用散列函数来减小内存开销,用上界4限制状态转移的最大哈希冲突数目。但是对哈希冲突的处理会增加存储器访问次数,降低算法的性能。
文献(Hash-AV:Fast virus signature scanning by cache resident filters,International Journal of Security and Networks,2(1-2):50-59,2007)提出的Hash-AV,作为WM的一个变体,使用一组散列函数和适合于CPU二级高速缓存的布隆过滤器阵列。Hash-AV在不访问主存储器情况下,过滤掉多数的“不匹配”情况,在缓存中实现快速扫描。但不可避免的继承了WM的缺陷,该算法同样不适用于模式串长度比较短的场景。
文献(A Memory Efficient Multiple Pattern Matching Architecture forNetwork Security,INFOCOM 2008,The 27th Conference on Computer Communications,IEEE,pages:166-170,2008)设计了基于缓存的确定性有限自动机的匹配算法ACC,提出后继状态寻址机制来存储和访问内存中DFA的状态转移边。运用此种方法,转移边可以被有效地存储和直接访问。然而在该机制下,仍然使用传统二维存储结构存储有多条状态转移边的状态。当此类状态增加时,算法性能降低。
文献(Memory-Efficient Pattern Matching Architectures Using PerfectHashing on Graphic Processing Units,INFOCOM 2012,pages:1978-1986,2012)采用完美哈希函数来压缩状态转移表,以消除哈希冲突。相比传统的二维存储结构,算法在性能和内存使用效率上均有所提高。但在实际应用中,计算完美哈希函数的代价很大,会极大地影响算法的性能。对完美哈希函数值的计算亦受到存储空间的制约,加重了算法在GPU上访问内存的开销。
在之前的模式匹配技术中,运用的存储压缩技术主要有以下五种:完全矩阵,存储所有的元素,用一个固定大小的向量表示一行;行压缩,完全紧凑的存储方式,顺序查找或二分查找;Band-Row,存储第一个到最后一个非零元素之间所有的元素;Bitmap,用一个比特位标识某个元素是否为空;Perfect Hash,找到一个一一映射函数,使得存储空间在线性范围内。上述方法中,没有最坏情况下的空间开销保证,体现了时间和空间的折衷。虽然上述方法在某一方面(时间或者空间)是相对高效的,但是根据当前不断增加的信息安全需求,更好的空间-时间高效的多模式串匹配技术仍需要进一步研究。
发明内容
随着攻击模式飞速增长,降低内存需求已经成为存储架构的关键。如何有效解决多模式串匹配算法的软件实现方式中所面临的存储空间瓶颈和性能瓶颈,有着重要意义。本发明提出了一种新的存储模式串的数据结构—HashTrie,利用位向量表将原模式串矩阵存储为一维表的形式,避开传统方法存储自动机的状态转移矩阵问题;利用递归的哈希函数方法求出这个特殊的位向量表,以达到节约存储空间的目的;在哈希函数计算过程中,利用位运算技巧,将其转化为简单高效的位与运算操作;另外本发明在HashTrie构造和关键词查找过程中均使用Rank技术,提高了搜索的空间效率和时间效率。此外,本发明提供了一种空间高效的多模式串匹配技术,并提供了基于该多模式串匹配技术的关键词匹配系统。
根据本发明的一个方面,提供了一种新的存储模式串的数据结构—HashTrie。HashTrie构造包含如下步骤:
1)读入关键词文件;
2)对关键词文件进行规范化处理;
3)将规范化处理之后的关键词文件进行预处理:
3.1)给位向量表的长度H赋值,其中|P|=∑p∈P|p|是所有模式串的长度之和,p表示一个模式串;
3.2)初始化位向量表B,将B的H个位置均置为0;
3.3)初始化位向量表F,将F的H个位置均置为0;
3.4)采用递归哈希函数计算过滤散列表B和预匹配散列表F两个位向量表,利用Rank技术计算校验散列表M,最终得到构造HashTrie的B、F、M;
3.4.1)构造位向量B和F,对于给定模式串集合P={p(0),p(1),…,p(r-1)},B、F的具体构造过程如下:
3.4.1.1)对每一个模式串的每一个前缀其中(0≤k<r,1≤j≤mk),利用递归哈希函数计算该前缀的哈希值h=Hash(u),同时将位向量B中第h位置为1;
3.4.1.2)对于每一个完整的模式串,除了在位向量B中标记其哈希值外,同时将其标记在另一个位向量F中。即将F中对应的第h位亦置为1,得到位向量F,以此记录完整模式串的信息。
3.4.2)构造校验散列表M,校验散列表M是一个数组,每个数组元素M[t]为一个链表:
3.4.2.1)对于模式串集合P={p(0),p(1),…,p(r-1)}中的每一个模式串p(k),计算该模式串的哈希值h:
其中a=22695477(a是Borland C/C++编译器中伪随机数生成器的参数,这样可以保证所选取的哈希函数具有较好的随机性);
3.4.2.2)利用Rank技术,计算位向量F中第h比特位在F中的次序t。然后将该模式串存入链表M[t]中,t=Rank(F,h),M(t)=k。
Rank技术是一种快速、高效的位向量查找算法,具体来说,Rank(h)计算位向量中前h个比特位中1的个数。该方法利用位向量简洁地表示一个集合,并能快速地查找出原集合中的元素。在文献(An Efficient Implementation of Static String PatternMatching Machines,IEEE Transactions on Software Engineering,15(8):1010-1016,1989)中,对Rank技术进行了详细的描述。概括地说,对于大小为H的位向量B,可以在O(1)时间复杂度内实现对位向量B的Rank操作,同时仅需要o(H)的额外存储空间。无论从理论分析还是实验验证,Rank技术在时间和空间上均是高效的。
根据本发明的另一个方面,提供了一种空间高效的多模式串匹配方法:
4)读入文本数据,从输入文本T的每个位置i开始搜索,对于文本位置i(i=0,…,n-1),文本T的当前搜索窗口为titi+1…ti+j。计算当前窗口的哈希值h=Hash(titi+1…ti+j),查看位向量B中对应的第h个位置的值;
5)查找位向量B和F中相应的位置是否为1,以确定文本字符串titi+1…ti+j是否可能与某个模式串匹配。若为可能匹配,则进一步进行校验:
5.1)如果B[h]=0,表示titi+1…ti+j不可能与某个模式串的前缀匹配,针对当前文本位置i的扫描结束;
5.2)否则,文本字符串titi+1…ti+j可能与某个模式串的前缀匹配,需要进一步确认该前缀是否为一个完整匹配。查看位向量F中对应位置的值F[h],若F[h]=1,表示当前文本字符串titi+1…ti+j是一个可能的完整匹配结果。鉴于哈希冲突的存在,需要对其进行进一步校验。利用Rank操作计算哈希值h在位向量F上的次序t,链表M[t]中的元素即为可能命中的模式串,将文本字符串titi+1…ti+j与可能命中的模式串一一比较,以发现真正的匹配结果,校验过程结束。
5.3)设lmax为模式串集合中最长模式串的长度,lmax=maxp∈Pp,若j<lmax,则继续读入下一个字符,执行上述步骤5.1)和5.2);若j≥lmax,则当前文本字符串titi+1…ti+j不可能与模式串匹配,针对当前文本位置i的扫描结束。
6)校验成功,报告匹配结果,否则,回到步骤4),进行下一次读入、对比、校验。
根据本发明的再一个方面,提供了一种基于该种多模式串匹配技术的关键词匹配系统,包含:
关键词集合规范化装置,用于关键词文件(即待匹配模式串集合)的读入,将读入的文件规范化为统一的形式;
关键词集合预处理装置,针对关键词规范化装置规范之后的关键词集合,构建对应的过滤散列表、预匹配散列表和校验散列表;
文本搜索装置,其根据文本数据计算所述过滤散列表和预匹配散列表的哈希值,依该值判断是否为可能匹配,并依此计算校验散列表的哈希值,进而对所述文本数据进行校验。校验之后,报告匹配结果。
与现有技术相比,本发明的有益效果如下:
本发明运用递归哈希函数,避开之前传统的二维存储架构,直接将模式串集合存储在一一维位哈希表中,构建一种新的存储模式串信息的数据结构—HashTrie,其中不存在状态转移表的存储消耗,从而达到节约存储空间的目的,另一方面也减少了对模式串集合的预处理时间;在哈希函数计算过程中,利用位运算技巧,将其转化为简单高效的位与运算操作,以提高效率;在预处理阶段和搜索阶段,均利用高效的Rank技术,提高了搜索的空间效率和时间效率。在实时入侵检测系统中,具有较短预处理时间的串匹配算法更能满足检测规则生效的时效性要求。经实际测试表明,本发明的空间高效的多模式串匹配技术,极大地降低了内存开销和预处理时间,更能满足实时入侵检测系统对规则生效的时效性要求,更适合于模式串集合规模较大、模式串长度较短的多模式串实时匹配问题。
附图说明
图1是关键词匹配系统结构示意图。
图2是HashTrie数据结构构造示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明提出的多模式串匹配技术主要包含两个阶段:预处理阶段和搜索阶段。图1示意了该多模式串匹配技术的基本流程以及关键词匹配系统的结构。基本流程是:读入关键词文件,算法进入预处理阶段,利用递归哈希函数和Rank操作构建HashTrie。读入文本数据,进入搜索阶段。利用递归哈希函数计算当前字符串的哈希值,并结合之前构建的HashTrie,对文本进行逐个字符搜索、校验。最后,报告最终搜索匹配的结果。
在预处理阶段,主要任务是构造HashTrie所需的数据结构。HashTrie包含三个数据结构:位向量B、位向量F和校验散列表M。构建HashTrie的方法如前文所述,其具体算法见下面算法1。
算法1 HashTrie的构造(P={p(0),p(1),…,p(r-1)})
在搜索阶段,主要查找可能匹配的模式串并对其进行校验。从输入文本T的每个位置i开始搜索,使用递归哈希函数计算文本字符串titi+1…ti+j的哈希值,查找位向量B和F中相应的位置是否为1,以确定文本字符串titi+1…ti+j是否可能与某个模式串匹配。若为可能匹配,则进一步进行校验。具体的搜索和校验过程如下:在搜索过程中,对于文本位置i(i=0,…,n-1),文本T的当前搜索窗口为titi+1…ti+j。计算当前窗口的哈希值h=Hash(titi+1…ti+j),查看位向量B中对应的第h个位置的值:
(1)如果B[h]=0,表示titi+1…ti+j不可能与某个模式串的前缀匹配,针对当前文本位置i的扫描结束。
(2)否则,文本字符串titi+1…ti+j可能与某个模式串的前缀匹配,需要进一步确认该前缀是否为一个完整匹配。查看位向量F中对应位置的值F[h],若F[h]=1,表示当前文本字符串titi+1…ti+j是一个可能的完整匹配结果。鉴于哈希冲突的存在,需要对其进行进一步校验。利用Rank操作计算哈希值h在位向量F上的次序t,链表M[t]中的元素即为可能命中的模式串,将文本字符串titi+1…ti+j与可能命中的模式串一一比较,以发现真正的匹配结果,校验过程结束。若j<lmax,则继续读入下一个字符,执行上述步骤(1)和(2);若j≥lmax,则当前文本字符串titi+1…ti+j不可能与模式串匹配,针对当前文本位置i的扫描结束。
本发明提出的多模式匹配技术的具体算法见下面算法2。
算法2HashTrie算法(T=t0t1…tn-1)
本发明利用递归哈希函数计算模式串前缀的哈希值,存储到对应的位向量B和F。再利用Rank技术构建对应的校验散列表M,得到HashTrie。进而在此数据结构基础上,再次利用Rank技术实施多模式串匹配技术。下面以模式串集合{she,his,this,sheer}为例,构造对应的HashTrie数据结构,描述具体的实施过程(构造流程图见图2):
1)从磁盘的模式串文件中读出所有的模式串{this,she,his,sheer},将其存放在内存中;
2)依据模式串的大小15计算,则设定的散列表B和F的长度大小为256;
3)初始化过滤散列表B=[0,0,…,0],(有256个0);
4)初始化预匹配散列表F=[0,0,…,0],(有256个0);
5)计算B、F的值:
5.1)首先计算p(0)={this}三个前缀t、th、thi及模式串自身this对应的哈希值,并将其对应的B表中第h()个位置置1,过程如下:计算h(t)=116,置B中第116个位置为1。
5.2)同理计算可得h(th)=108,h(thi)=197,h(this)=60,将B表中对应的第108、197、60位置1。在上述迭代过程中,B表中的值不断更新。
5.3)在上述计算中,注意到h(this)=60,this是其中的一个模式串,该位置对应的为一个终结状态,将其信息记录在F表中,即F表中第60个位置置1,其余位置为0。
5.4)同理,依次计算p(1)={she},p(2)={his},p(3)={sheer}的哈希值,将B中对应的位置置1,同时在F中标记对应终结状态的位置。
6)计算M的值:利用Rank技术,根据上述步骤5)得到的F和h,计算出M;
最终,得到模式串{this,she,his,sheer}对应的HashTrie数据结构,如图2中所示,其中,B、F中均有256个位置,未标记位置均为0。
本发明运用递归哈希函数,避开之前传统的二维存储架构,直接将模式串集合存储在一一维位哈希表中,构建一种新的存储模式串信息的数据结构—HashTrie,其中不存在状态转移表的存储消耗,从而达到节约存储空间的目的,另一方面也减少了对模式串集合的预处理时间;在哈希函数计算过程中,利用位运算技巧,将其转化为简单高效的位与运算操作,以提高效率;在预处理阶段和搜索阶段,均利用高效的Rank技术。将AC自动机的指针实现方式(AC)、表实现方式(TAC)、双数组实现方式(DAC)和本发明提出的多模式串匹配技术-HashTrie算法进行对比。在真实数据集和随机数据集上的测试结果表明,HashTrie算法比AC节约高达99.6%的内存空间,匹配速度约为AC算法的一半至4倍。此外,HashTrie算法在所有数据集上的预处理时间均是最短的,比AC、TAC和DAC等算法节省了约90%的预处理时间在存储空间方面,从表1中的实验结果可以看出。
表1.HashTrie算法与AC、TAC、DAC实验结果对比
在HashTrie数据结构构造过程中,在保证减小哈希冲突的前提下,可以选择其它的递归哈希函数;在保证随机性的基础下,a可以选择由Borland C/C++编译器中伪随机数生成器生成其它的随机参数值;在保证合适计算量的前提下,位向量表的长度H可以适当调整。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (4)
1.一种模式串的数据存储结构的构建方法,其特征在于,所述数据存储结构包括过滤散列表B、预匹配散列表F和校验散列表M,其中过滤散列表B、预匹配散列表F是两个位向量表,该方法包括以下步骤:
1)读入关键词文件;
2)对关键词文件进行规范化处理;
3)对于规范化处理之后的关键词文件,给位向量表的长度H赋值,并初始化位向量表B和位向量表F;
步骤3)包括以下子步骤:
3.1)给位向量表的长度H赋值,其中|P|=∑p∈P|p|是所有模式串的长度之和,其中p表示一个模式串,P表示模式串集合;
3.2)初始化位向量表B,将B的H个位置均置为0;
3.3)初始化位向量表F,将F的H个位置均置为0;
4)采用递归哈希函数计算过滤散列表B和预匹配散列表F两个位向量表,利用Rank技术计算校验散列表M,最终得到B、F、M;
步骤4)中,对于给定模式串集合P={p(0),p(1),…,p(r-1)},B、F的构造过程如下:
4.1)对每一个模式串的每一个前缀其中0≤k<r,1≤j≤mk,利用递归哈希函数计算该前缀的哈希值h=Hash(u),同时将位向量B中第h位置为1;其中r表示模式串个数,mk表示第k个模式串的长度为mk,也即第k个模式串一共包括mk个字符,表示第k个模式串的第1,2,…,mk个字符;
4.2)对于每一个完整的模式串,除了在位向量B中标记其哈希值外,同时将其标记在另一个位向量F中,即将F中对应的第h位亦置为1,得到位向量F,以此记录完整模式串的信息;
步骤4)中校验散列表M是一个数组,每个数组元素M[t]为一个链表,M的构造过程如下:
4-3)对于模式串集合P={p(0),p(1),…,p(r-1)}中的每一个模式串p(k),计算该模式串的哈希值h:
其中a是Borland C/C++编译器中伪随机数生成器的参数;
4-4)利用Rank技术,计算位向量F中第h比特位在F中的次序t,然后将该模式串存入链表M[t]中,t=Rank(F,h),M(t)=k。
2.一种多模式串匹配方法,其特征在于,包括如下步骤:
1)读入关键词文件,对其进行预处理,即利用递归哈希函数和Rank操作构建过滤散列表B、预匹配散列表F和校验散列表M,形成权利要求1所述的模式串的数据存储结构;
2)读入文本数据,利用递归哈希函数计算当前字符串的哈希值,并结合构建的模式串的数据存储结构,对文本进行逐个字符搜索和校验,并报告最终搜索匹配的结果。
3.如权利要求2所述的方法,其特征在于,步骤2)具体包括如下步骤:
2-1)读入文本数据,从输入文本T的每个位置i开始搜索,对于文本位置i,i=0,…,n-1,文本T的当前搜索窗口为titi+1…ti+j,计算当前窗口的哈希值h=Hash(titi+1…ti+j),查看位向量B中对应的第h个位置的值;其中n表示待搜索文本的长度,也即待搜索文本一共包括n个字符,j表示从当前位置i开始往后顺延j个位置,ti表示当前待搜索文本的第i个字符,ti+j表示当前待搜索文本的第i+j个字符;
2-2)查找位向量B和F中相应的位置是否为1,以确定文本字符串titi+1…ti+j是否可能与某个模式串匹配;若为可能匹配,则进一步进行校验:
2-2-1)如果B[h]=0,表示titi+1…ti+j不可能与某个模式串的前缀匹配,针对当前文本位置i的扫描结束;
2-2-2)否则,文本字符串titi+1…ti+j可能与某个模式串的前缀匹配,需要进一步确认该前缀是否为一个完整匹配;查看位向量F中对应位置的值F[h],若F[h]=1,表示当前文本字符串titi+1…ti+j是一个可能的完整匹配结果,鉴于哈希冲突的存在,需要对其进行进一步校验;利用Rank操作计算哈希值h在位向量F上的次序t,链表M[t]中的元素即为可能命中的模式串,将文本字符串titi+1…ti+j与可能命中的模式串一一比较,以发现真正的匹配结果,校验过程结束;
2-2-3)设lmax为模式串集合中最长模式串的长度,若j<lmax,则继续读入下一个字符,执行上述步骤2-2-1)和2-2-2);若j≥lmax,则当前文本字符串titi+1…ti+j不可能与模式串匹配,针对当前文本位置i的扫描结束;
2-3)如果校验成功,则报告匹配结果;否则回到步骤1),进行下一次读入、对比、校验。
4.一种采用权利要求2所述方法的关键词匹配系统,其特征在于,包括:
关键词集合规范化装置,用于关键词文件即待匹配模式串集合的读入,将读入的文件规范化为统一的形式;
关键词集合预处理装置,用于针对关键词规范化装置规范之后的关键词集合,构建对应的过滤散列表B、预匹配散列表F和校验散列表M;
文本搜索装置,用于根据文本数据计算所述过滤散列表B和预匹配散列表F的哈希值,依该值判断是否为可能匹配,并依此计算校验散列表M的哈希值,进而对所述文本数据进行校验;校验之后,报告匹配结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510236364.4A CN104881439B (zh) | 2015-05-11 | 2015-05-11 | 一种多模式串匹配方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510236364.4A CN104881439B (zh) | 2015-05-11 | 2015-05-11 | 一种多模式串匹配方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881439A CN104881439A (zh) | 2015-09-02 |
CN104881439B true CN104881439B (zh) | 2019-03-22 |
Family
ID=53948933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510236364.4A Active CN104881439B (zh) | 2015-05-11 | 2015-05-11 | 一种多模式串匹配方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881439B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326475B (zh) * | 2016-08-31 | 2019-12-27 | 中国科学院信息工程研究所 | 一种高效的静态哈希表实现方法及系统 |
CN106487803A (zh) * | 2016-11-10 | 2017-03-08 | 深圳市任子行科技开发有限公司 | 用于大流量网络入侵检测系统的模式匹配算法和系统 |
CN106599097B (zh) * | 2016-11-24 | 2021-06-25 | 东软集团股份有限公司 | 海量特征串集合的匹配方法和装置 |
CN107515897B (zh) * | 2017-07-19 | 2021-02-02 | 中国科学院信息工程研究所 | 一种串匹配场景下数据集生成方法、设备和可读存储介质 |
CN109376281B (zh) * | 2018-09-21 | 2021-10-22 | 长沙学院 | 比特位序列、数据搜索方法、搜索系统、社会网络分析系统、舆情监控系统 |
CN110287149A (zh) * | 2019-05-10 | 2019-09-27 | 同济大学 | 一种使用哈希搜索的匹配编码方法 |
CN110401451B (zh) * | 2019-06-12 | 2020-12-04 | 中国科学院信息工程研究所 | 基于字符集变换的自动机空间压缩方法及系统 |
CN110413958B (zh) * | 2019-06-12 | 2020-12-04 | 中国科学院信息工程研究所 | 用于自动机空间压缩的线性同余字符集变换方法及系统 |
CN112579839B (zh) * | 2019-09-30 | 2022-07-01 | 奇安信安全技术(珠海)有限公司 | 大规模特征的多模匹配方法、装置及存储介质 |
CN112269904B (zh) * | 2020-09-28 | 2023-07-25 | 华控清交信息科技(北京)有限公司 | 数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251845A (zh) * | 2008-03-13 | 2008-08-27 | 苏州爱迪比科技有限公司 | 利用改进的Wu-Manber算法进行多模式串匹配的方法 |
CN102243656A (zh) * | 2011-06-16 | 2011-11-16 | 中国科学院计算技术研究所 | 基于散列的串匹配方法及其选择模式串子窗口的方法 |
CN102609450A (zh) * | 2012-01-10 | 2012-07-25 | 顾乃杰 | 一种按字长匹配的多模式串匹配方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775393B2 (en) * | 2011-10-03 | 2014-07-08 | Polytechniq Institute of New York University | Updating a perfect hash data structure, such as a multi-dimensional perfect hash data structure, used for high-speed string matching |
-
2015
- 2015-05-11 CN CN201510236364.4A patent/CN104881439B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251845A (zh) * | 2008-03-13 | 2008-08-27 | 苏州爱迪比科技有限公司 | 利用改进的Wu-Manber算法进行多模式串匹配的方法 |
CN102243656A (zh) * | 2011-06-16 | 2011-11-16 | 中国科学院计算技术研究所 | 基于散列的串匹配方法及其选择模式串子窗口的方法 |
CN102609450A (zh) * | 2012-01-10 | 2012-07-25 | 顾乃杰 | 一种按字长匹配的多模式串匹配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104881439A (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881439B (zh) | 一种多模式串匹配方法和系统 | |
Naeem et al. | Malware detection in industrial internet of things based on hybrid image visualization and deep learning model | |
Lin et al. | Using string matching for deep packet inspection | |
EP2366156B1 (en) | String matching method and apparatus | |
Hua et al. | Variable-stride multi-pattern matching for scalable deep packet inspection | |
Villa et al. | Accelerating real-time string searching with multicore processors | |
Guinde et al. | Efficient hardware support for pattern matching in network intrusion detection | |
Liu et al. | Multi-scale semantic deep fusion models for phishing website detection | |
Lin et al. | Memory-efficient pattern matching architectures using perfect hashing on graphic processing units | |
Ho et al. | Parallel multiple pattern matching schemes based on cuckoo filter for deep packet inspection on graphics processing units | |
Yang et al. | PiDFA: A practical multi-stride regular expression matching engine based on FPGA | |
CN103324886A (zh) | 一种网络攻击检测中指纹库的提取方法和系统 | |
Arun et al. | Functional verification of signature detection architectures for high speed network applications | |
Zhang et al. | PhishTrim: Fast and adaptive phishing detection based on deep representation learning | |
Wang et al. | Strifa: Stride finite automata for high-speed regular expression matching in network intrusion detection systems | |
Weng et al. | Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system | |
Hung et al. | An efficient GPU-based multiple pattern matching algorithm for packet filtering | |
Hieu et al. | A memory efficient FPGA-based pattern matching engine for stateful NIDS | |
Wang | Malicious URL detection an evaluation of feature extraction and machine learning algorithm | |
Kim et al. | A pattern partitioning algorithm for memory-efficient parallel string matching in deep packet inspection | |
Tseng et al. | A fast scalable automaton-matching accelerator for embedded content processors | |
Tang et al. | RICS‐DFA: a space and time‐efficient signature matching algorithm with Reduced Input Character Set | |
Lee | Hardware architecture for high-performance regular expression matching | |
Valgenti et al. | GPP-Grep: High-speed regular expression processing engine on general purpose processors | |
Shubbar et al. | Fast 2D filter with low false positive for network packet inspection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |