[发明专利]一种均衡分两组编译正则表达式的方法无效

专利信息
申请号: 201010611550.9 申请日: 2010-12-17
公开(公告)号: CN102111405A 公开(公告)日: 2011-06-29
发明(设计)人: 刘灿;云晓春;杜跃进;汪立东;陈训逊;包秀国;杜翠兰;王勇;薛晨 申请(专利权)人: 国家计算机网络与信息安全管理中心;曙光信息产业(北京)有限公司
主分类号: H04L29/06 分类号: H04L29/06;G06F9/38
代理公司: 北京安博达知识产权代理有限公司 11271 代理人: 徐国文
地址: 100029*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 均衡 分两组 编译 正则 表达式 方法
【说明书】:

技术领域

发明涉及网络安全领域,具体涉及一种基于最大割的分组编译正则表达式的方法。

背景技术

随着网络技术的不断发展,网络安全问题日益凸显,内容安全也越来越受到重视。网络安全系统功不可没,它防止了有害信息的网络传播,它防止了国家或企业机密信息的网络泄漏。主要的网络安全系统有入侵检测系统(Intrusion Detection System,IDS)和入侵防御系统(Intrusion PreventionSystem,IPS),等等。通过对入侵行为的检测,来加强信息安全防御能力。现有的IDS或者IPS中,例如Snort、BRO等,多数采用了设定规则的方式对网络数据包进行包头或者/和内容的检查,符合指定规则的数据包,根据规则对应的处理办法进行处理,或是转发,或是日志。另外,网络安全还有一个重要的技术是病毒检测,通过对数据包进行病毒特征的检测,检测到数据包不上传主机,从而避免主机受到病毒的入侵。由于病毒种类繁多,这类病毒特征库非常庞大。可见,通过规则和特征进行匹配的方法,将成为影响这类系统性能的重要因素。在很多系统中,也采用了正则表达式的方式来表达规则和特征,通过较少的正则表达式浓缩更多的规则和特征。

但是利用正则表达式规则,进行对比匹配,会消耗大量的系统资源,从而降低系统的性能。当正则式条数很大时,系统的性能将受到严重影响,因此许多研究开始通过定制的ASIC(Application-specific Integrated Circuit)或者定制的FPGA(Field-programmable Gate Array)来协同主机进行正则表达式的匹配工作,以减轻主机系统的负担,带来提升整个系统的性能的结果。

利用正则表达式进行对比匹配,通常会将其转换为确定有限自动机(Deterministic Finite Automata,DFA)或者非确定有限状态机(Nondeterministic Finite Automation,NFA),利用状态的跳转来进行匹配。通常NFA的方法需要需要回溯,匹配速度慢;而DFA的方法不需要回溯,匹配速度非常快,但是其空间的消耗很大,对于规则数量较多时,会引起空间的爆炸。因此,利用定制的ASIC和FPGA都面临硬件面积有限,而规则数量多,将面临硬件无法存储这么多规则生成的DFA的问题。

利用DFA进行正则式的匹配,实时性非常好,但正则式规则数量多时,将带来存储空间的爆炸。假设有n条正则式,其计算的时间复杂度是0(1),但其空间复杂度是0(2n)。利用FPGA去做协同处理,如果规则生成的DFA状态空间存储存储在FPGA片外存储器的话,通常采用两路引擎对正则式进行匹配,以充分利用片外存储器的带宽。这样我们将n条正则式,分解成n1和n2,这样其时间复杂度依然是O(1),但其空间复杂度变成了0(2n1)+0(2n2)。

发明内容

为降低上述问题的空间复杂度,本发明提供了一种均衡分两组编译正则表达式的方法。

一种均衡分两组编译正则表达式的方法,步骤如下:

A、读取N条正则式;

B、生成两两间状态数矩阵和两两间状态矩阵之和;

C、根据步骤B得到的结果,粗分两组1、2;分配的基础是两两间状态数之和最大的规则,将其两两间状态数队列按照由大到小排序,将所有正则式分成两组,1组的正则式数目较2组稍多;

D、初始化变量i,将其设置为1组的最后一个正则式的索引;

E、将1组元素i移到2组;

F、计算1、2间的两两状态数的之和;

G、和上一次的1、2间的两两状态数的之和比较。如果大于old_state_sum,则更新old_state_sum为state_num;如果小于等于old_state_sum,则将元素i移回A组;

H、变量i减1;

I、判断i是否为-1,如果是则执行下一步骤,如果不是,则回到步骤E,使1组的正则式都能遍历一遍,是否应该移入2组;

J、编译1组和2组,得到较均衡的两组DFA,两组状态数量相差不大。

本发明充分利用片外资源,使FPGA能够两路进行匹配,采用最大割的方法来进行分组,使n条正则式生成两组状态数较为均匀的DFA,降低其空间复杂度,这样,在不降低实时性的同时,硬件空间不变,尽可能多的增加了硬件处理正则式的数量。

附图说明

图1为求状态和示意图

图2位本发明流程图

具体实施方式

本方法根据硬件总空间,以最大割方式均衡分成两组。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心;曙光信息产业(北京)有限公司,未经国家计算机网络与信息安全管理中心;曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010611550.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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