[发明专利]一种多模式串匹配方法和系统有效

专利信息
申请号: 201510236364.4 申请日: 2015-05-11
公开(公告)号: CN104881439B 公开(公告)日: 2019-03-22
发明(设计)人: 张萍;刘燕兵;谭建龙;郭莉 申请(专利权)人: 中国科学院信息工程研究所
主分类号: G06F16/903 分类号: G06F16/903;G06F16/908
代理公司: 北京君尚知识产权代理事务所(普通合伙) 11200 代理人: 余功勋
地址: 100093 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种空间高效的多模式串匹配方法和系统。首先提出了一种新的存储模式串的数据结构—HashTrie,利用位向量表将原模式串矩阵存储为一维表的形式,避开传统方法存储自动机的状态转移矩阵问题;利用递归的哈希函数方法求出这个特殊的位向量表,以达到节约存储空间的目的;在哈希函数计算过程中,利用位运算技巧,将其转化为简单高效的位与运算操作;另外在HashTrie构造和关键词查找过程中均使用Rank技术,提高了搜索的空间效率和时间效率。本发明极大地降低了内存开销和预处理时间,更能满足实时入侵检测系统对规则生效的时效性要求,更适合于模式串集合规模较大、模式串长度较短的多模式串实时匹配问题。
搜索关键词: 一种 空间 高效 模式 匹配 方法 系统
【主权项】:
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。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201510236364.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top