[发明专利]一种基于双跳跃的单模式匹配方法有效
申请号: | 201410769572.6 | 申请日: | 2014-12-15 |
公开(公告)号: | CN104519056A | 公开(公告)日: | 2015-04-15 |
发明(设计)人: | 杨忠明;申林;秦勇 | 申请(专利权)人: | 广东科学技术职业学院 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 邱奕才;汪晓东 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 跳跃 模式 匹配 方法 | ||
技术领域
本发明涉及计算机网络安全领域,具体涉及一种基于双跳跃的单模式匹配方法。
背景技术
入侵检测系统是防火墙的合理补充,通过主动防御来帮助系统对付网络攻击,扩展了系统管理员的安全管理能力,提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集并分析信息,查看网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵检测系统在不影响网络性能的情况下能对网络进行监测,提供对内部攻击、外部攻击和误操作的实时保护 。
模式匹配是入侵检测系统的核心,其影响着系统的检测效率,而业内著名的snort系统中sp_pattern_match检测引擎插件对规则选项的content和uricontent内容进行模式匹配所使用的是BM算法,但采用Sunday算法在实际应用中效率要优于BM算法。
Sunday算法是Danile M.Sunday在1990年提出的一种单模式匹配算法,其核心思想是一旦发生字符不匹配,则跳跃尽可能多的字符。Sunday有一个next数组存储跳跃步长,匹配过程中出现字符不相等时,检测主串中模式串尾端对齐 字符的下一个字符在模式串中的相同字符,并将最右端的一个和它对齐,当该字符不存在于模式串中的时候则直接全部跳过,长度为m的模式串跳跃步长为m+1。
但是Sunday算法在模式匹配的过程中仍然会出现较多冗余的匹配,匹配效率、检测速度和检测实时性仍然有待提高。
发明内容
为了克服现有技术的不足,本发明提供一种基于双跳跃的单模式匹配方法,它能够解决现有技术在模式匹配的过程中仍然会出现较多冗余的匹配,匹配效率、检测速度和检测实时性等问题。
本发明采用的技术方案如下:
一种基于双跳跃的单模式匹配方法,采用改进Sunday算法完成其中的入侵模式串的匹配,在字符匹配过程中若出现字符不相等,则先连续跳跃两步,再进行匹配。
本发明采用Sunday算法完成其中的入侵模式串的匹配,并对Sunday算法作了改进。基于传统Sunday算法匹配方法只有一个跳跃数组,而本发明的一种基于双跳跃的单模式匹配方法在此基础上增加了一个跳跃数组,当匹配过程中有字符不匹配时连续跳跃两步,更大程度地减少了冗余匹配。
进一步的,本发明的一种基于双跳跃的单模式匹配方法,包括以下步骤:
S21初始化跳跃数组next1和next2;
S22开始匹配;
S23若匹配成功则将将模式串P[0…m-1]整体向右移一位,若匹配失败则按跳跃数组next1向右跳跃S1个字符,然后按next2进行第二步跳跃,跳过S2个字符;
S24判断移动后的模式串是否到达或超出主串尾,若否则返回S22,若是则结束匹配,输出所有和模式串相匹配的字符串的位置。
本发明提出了连续两步跳跃的思想,对P[0…m-1] 和M[0…n-1] 从左往右逐位比较,当比较过程中有字符不相等时,先使用传统Sunday算法的思想根据当前P[m-1]在M[0…n-1]中的对齐位的后一位计算P[0…m-1]向右的跳跃步长S1,再根据S1并运用next2数组向右跳跃S2位,即在字符不相等的时候一次向右跳跃了S1+S2位。这种匹配方法在基于传统Sunday算法的匹配方法的基础上进一步减少了冗余匹配次数,效率要高于基于传统Sunday算法的匹配方法。
进一步的,所述跳跃数组next1的初始化规则为:当模式串P[0,1…m-1]中存在和主串M[pos+m]位相同的字符,则将模式串P[0,1…m-1]中的这些字符最右边一个和M[pos+m]位对齐,若不存在相同字符,则直接跳过,将M[pos+m+1]位和P[0]位对齐,其中pos表示每次匹配开始时模式串P起始位在主串M中的对齐位下标,m表示模式串的长度。
进一步的,所述跳跃数组next2的初始化规则为:第一步跳跃完毕后,若模式串中存在与M[pos+m+S1-1]位相同的字符,则把这些字符最右边一个与M[pos+m+S1-1]位对齐,若M[pos+m+S1-1]= P[m-1],则第二步跳跃为0,若不存在与M[pos+m+S1-1]位相同的字符,则直接跳过,将M[pos+m+S1-1]位和P[0]位对齐。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东科学技术职业学院;,未经广东科学技术职业学院;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410769572.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:网站权限漏洞检测方法和系统
- 下一篇:一种多媒体数据共享方法及终端