[发明专利]一种域名过滤SWM多模式匹配算法及应用在审
申请号: | 201610588480.7 | 申请日: | 2016-07-25 |
公开(公告)号: | CN107657173A | 公开(公告)日: | 2018-02-02 |
发明(设计)人: | 余漫游 | 申请(专利权)人: | 长沙有干货网络技术有限公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 410011 湖南省长沙市芙蓉区*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 域名 过滤 swm 模式 匹配 算法 应用 | ||
技术领域
本发明涉及多模式匹配算法领域,是一种WM算法的改进算法。
背景技术
随着网络技术的发展,互联网在人们日常生活中的作用越来越大,同时挂马网页、诈骗网页、色情网页等非法网站也给正常的网络秩序带来了巨大的挑战,针对这种问题的一种处理方法是在网络的关键位置,如内网与外网连接的边界,布置基于网络的入侵检测系统(NIDS: Network-Based Intrusion Detection System),对非法网站的域名进行过滤。
发明内容
为了解决在最短模式长度较小的情况下,WM算法性能随着模式集规模增大而显著降低的问题,本发明在WM算法基础上,进一步优化跳跃机制和匹配方法,并提出了模式分集的思想,设计了一种新的多模式匹配算法-SWM(SubsetWu-Manber)算法,并将其应用在域名过滤问题中,SWM算法的处理顺序即字符串扫描从左向右,对模式的匹配从后向前进行。
1、预处理过程主要工作是建立多个检索表,具体流程如下:
1)确定模式了集分界M,将模式集合分为P1, P2两个子集;
2)统计得到P1, P2模式子集的最小模式长度m1, m2,确定匹配子串基本长度B;
3)对于P1模式子集,按照最小模式长度m1,构建SHIFT11, HASH1, PREFIX1三个表;
4)对于P2模式子集,按照P2子集的最小模式长度m2,构建SHIFT21, SHIFT22, SHIFT23;HASH2,PREFIX2五个表
使用SHIFT23有两个原因:一个原因是计算跳转表索引的hash 1函数实现B个字符的hash计算,比PREFIX表的变长hash2函数运算简单,相当于增加一次简单的前缀确认;第二个原因是SHIFT23表是用于字符串B3的匹配确认,而B3远离B1、B2,能够一定程度上缓解连续相同字符串带来的匹配冲突;
HASH1/HASH2每项包含模式链表指针、PREFIX1/PREFIX2表指针以及模式链表中最短模式长度,模式链表存储经过多级匹配后hashl值相同的所有模式;PREFIXI/PREFIX2表存储模式链表中每个模式按照最短模式长度计算的前缀hash(此处使用hash2函数)。
匹配从字符串的第m个字符开始,字符串的扫描从左向右;对模式的匹配是从右向左进行的,每次子串匹配的长度为B=2,设当前位置为i,则步骤如下:
1)计算Bi = ti=B+1…t这B个字符的hashl值,得到h1;
2)查SHIFT11表得到s1 1=SHIFT 1 1(h1 ),如果s 1 1 = 0,转7);如果s 1 1>0,计算B4= ti=B+1…ti+1这B个字符的hashl值h4,查SHIFT 11表得到s14 = SHZFT11(h4),计算s1=max(sips14 +1);
3)查SHIFT21表得到s21=SHIFT 21(h1),如果s21>0,查表SHIFT21得到s24=SHIFT 21(h4),计算s2 = max(s21, s24 +1),取s= min(s1 , s2 ),根据这个值向后移动相应的长度,并转到1);如果s21 = 0,则继续;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙有干货网络技术有限公司,未经长沙有干货网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610588480.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种一次性无菌微生物培养皿空气过滤装置
- 下一篇:一种一次性无菌微生物培养皿