[发明专利]一种多模式下匹配字符串的方法及系统有效
申请号: | 201210064914.5 | 申请日: | 2012-03-13 |
公开(公告)号: | CN103309882B | 公开(公告)日: | 2016-11-30 |
发明(设计)人: | 许金鹏;薛萍;李健安;熊金芬;李旻翊 | 申请(专利权)人: | 北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100193 北京市海淀区东北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 模式 匹配 字符串 方法 系统 | ||
技术领域
本发明涉及互联网技术领域,一种多模式下匹配字符串的方法及系统。
背景技术
字符串匹配算法在入侵检测,短消息过滤,信息查询等领域尤其是入侵检测方面均有重要的应用。随着网络技术的发展和Internet的普及,网络信息安全越来越受到人们的重视,现在社会是信息社会,保障信息的安全已成为刻不容缓的重要课题。
入侵检测技术就是为保证信息系统的安全而设计的一种能够及时发现并报告系统中未授权或者异常信息的技术,具有主动安全防范的特性,表现出良好的发展前景。而入侵检测系统检测引擎的核心即基于字符串匹配的特征匹配算法,这种检测方法可以在主机或网络数据中,通过准确的字符串模式匹配查找攻击签名,从而判断是否出现入侵。随着网络攻击技术的发展和攻击的多样化,如何改进字符串匹配算法,提高检测效率,已成为入侵检测系统研究的核心内容。
字符串匹配算法有很多,目前较常用的单模式字符串匹配算法是BM算法和KMP算法。应用广泛的入侵检测系统snort就采用了BM算法,但它是一种单模式的字符串匹配算法,在单一模式的字符串匹配算法中,BM算法一般被认为是性能最佳的。但在多模式字符串匹配过程中,BM算法需要对每一种模式分别进行匹配,因此BM算法的性能就大大降低了。目前的多模式匹配算法,比较高效的有CW算法,AC-BM算法,SBMP算法等。其中,CW算法的思路是首先用模式集构建一棵搜索树,然后在文本中用搜索树对模式进行跳跃搜索,在构建搜索树时,将模式从右边对齐,从右往左进行构建,树上相同的分支节点进行合并。在进行搜索时,以搜索树中模式的最短长度为匹配窗长度,文本从左往右匹配,在匹配窗内搜索树从右往左进行匹配。如果在匹配过程中一旦出现不匹配,则整个匹配树往右移动。匹配树往右移动的位移表可以预先通过线性算法构建。AC-BM算法非常类似于CW算法,采用了“坏字符”和“好后缀”两种启发式规则来进行跳跃。SBMP算法也非常类似于CW算法,但只采用了“坏字符”启发式规则来进行跳跃。
发明内容
本发明所要解决的技术问题是,提供一种多模式下匹配字符串的方法及系统,以解决提高字符串匹配效率的问题。
为了解决上述技术问题,本发明公开了一种多模式下匹配字符串的方法,包括:
存储模式集信息,所述模式集信息至少包括各关键字的长度和其首字母序号;
当接收到字符串时,从所接收的字符串中提取出待匹配字,然后从所存储的模式集信息中查找长度和首字母序号与所述待匹配字的长度和首字母序号均相同的关键字,将所查找到的关键字与待匹配字比较,若比较结果一致,则此待匹配字匹配成功,否则匹配失败。
较佳地,上述方法中,通过一个数组存储所述模式集信息,该用于存储模式集信息的数组至少包括关键字长度、关键字首字母序号以及关键字在模式集中可容忍冲突数,其中,关键字在模式集中可容忍冲突数为模式集中关键字长度以及关键字首字母序号均相同的关键字总数,所述数组的值为关键字在模式集中的位置序号。
较佳地,上述方法中,从所存储的模式集信息中查找关键字长度和关键字首字母序号与所述待匹配字的长度和首字母序号均相同的关键字为多个时,将所查找到的多个关键字依次与待匹配字进行比较。
较佳地,上述方法中,从所存储的模式集信息中查找长度和首字母序号与所述待匹配字的长度和首字母序号均相同的关键字,将所查找到的关键字与待匹配字比较的过程如下:
获取所述待匹配字的长度L及其首字母序号M,从用于存储模式集信息的数组中查找长度为L,首字母序号M、可容忍冲突数的值为0的数组元素,比较将所查找到的数组元素对应的关键字与所述待匹配字是否一致,若比较结果一致,则匹配成功,若比较结果不一致,则更新数组元素的可容忍冲突数再从用于存储模式集信息的数组中查找长度为L,首字母序号M、可容忍冲突数为更新值的数组元素,比较所查找到的数组元素对应的关键字与所述待匹配字是否一致,其中,所述数组元素的可容忍冲突数的更新值为上一个所要查找的数组元素的可容忍冲突数的值加1。
较佳地,上述方法中,更新所要查找的数组元素时,若更新操作次数达到设定次数时,所提取出的关键字与所述待匹配字仍不一致时,结束本方法的操作。
本发明还公开了一种多模式下匹配字符串的系统,包括:
存储单元,存储模式集信息,所述模式集信息至少包括各关键字的长度和其首字母序号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司,未经北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210064914.5/2.html,转载请声明来源钻瓜专利网。