CN102111405A - 一种均衡分两组编译正则表达式的方法 - Google Patents

一种均衡分两组编译正则表达式的方法 Download PDF

Info

Publication number
CN102111405A
CN102111405A CN2010106115509A CN201010611550A CN102111405A CN 102111405 A CN102111405 A CN 102111405A CN 2010106115509 A CN2010106115509 A CN 2010106115509A CN 201010611550 A CN201010611550 A CN 201010611550A CN 102111405 A CN102111405 A CN 102111405A
Authority
CN
China
Prior art keywords
groups
sum
group
twos
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010106115509A
Other languages
English (en)
Inventor
刘灿
云晓春
杜跃进
汪立东
陈训逊
包秀国
杜翠兰
王勇
薛晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Computer Network and Information Security Management Center
Dawning Information Industry Beijing Co Ltd
Original Assignee
National Computer Network and Information Security Management Center
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Computer Network and Information Security Management Center, Dawning Information Industry Beijing Co Ltd filed Critical National Computer Network and Information Security Management Center
Priority to CN2010106115509A priority Critical patent/CN102111405A/zh
Publication of CN102111405A publication Critical patent/CN102111405A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种均衡分两组编译正则表达式的方法
技术领域
本发明涉及网络安全领域,具体涉及一种基于最大割的分组编译正则表达式的方法。
背景技术
随着网络技术的不断发展,网络安全问题日益凸显,内容安全也越来越受到重视。网络安全系统功不可没,它防止了有害信息的网络传播,它防止了国家或企业机密信息的网络泄漏。主要的网络安全系统有入侵检测系统(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位本发明流程图
具体实施方式
本方法根据硬件总空间,以最大割方式均衡分成两组。
具体的操作步骤如下:
1、读取多条正则式:n条
2、生成两两间状态数矩阵和两两间状态矩阵之和。由于多条DFA编译会产生状态空间的爆炸,因此从某种程度上,可以用两两间的状态数之和来反映该条规则引起爆炸剧烈程度,值越高,将会引起更大的空间爆炸。例如规则1的两两状态数之和为state_num(1,2)+state_num(1,3)+…+state_num(1,n),规则1的两两状态数的队列为:state_num(1,2),state_num(1,3),state_num(1,n)。依次类推,生成所有规则的两两间状态数矩阵和两两间状态数之和。
3、根据步骤2,得到的结果,粗分两组A、B。分配的基础是两两间状态数之和最大的规则,将其两两间状态数队列按照由大到小排序,将所有正则式分成两组,A组的正则式数目较B组稍多。
4、初始化变量i,将其设置为A组的最后一个正则式的索引。
5、将A组元素i移到B组
6、计算A、B间的两两状态数的之和(例如,可定义为state_sum)
7、和上一次的A、B间的两两状态数的之和(例如,可定义为old_state_sum)比较。如果大于old_state_sum,则更新old_state_sum为state_num;如果小于等于old_state_sum,则将元素i移回A组。
8、变量i减1。
9、判断i是否为-1,如果是则执行下一步骤,如果不是,则回到步骤5,使A组的正则式都能遍历一遍,是否应该移入B组。
10、编译A组和B组,得到较均衡的两组DFA,两组状态数量相差不大。

Claims (1)

1.一种均衡分两组编译正则表达式的方法,其特征在于:步骤如下:
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,两组状态数量相差不大。
CN2010106115509A 2010-12-17 2010-12-17 一种均衡分两组编译正则表达式的方法 Pending CN102111405A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010106115509A CN102111405A (zh) 2010-12-17 2010-12-17 一种均衡分两组编译正则表达式的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010106115509A CN102111405A (zh) 2010-12-17 2010-12-17 一种均衡分两组编译正则表达式的方法

Publications (1)

Publication Number Publication Date
CN102111405A true CN102111405A (zh) 2011-06-29

Family

ID=44175435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010106115509A Pending CN102111405A (zh) 2010-12-17 2010-12-17 一种均衡分两组编译正则表达式的方法

Country Status (1)

Country Link
CN (1) CN102111405A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103854056A (zh) * 2014-03-17 2014-06-11 清华大学 正则表达式分组方法及装置
CN111198953A (zh) * 2018-11-16 2020-05-26 北京智慧正安科技有限公司 基于案件文本信息推荐类案的方法、系统及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079890A (zh) * 2007-07-04 2007-11-28 杭州华三通信技术有限公司 一种生成特征码确定状态机的方法和装置
CN101645069A (zh) * 2008-08-04 2010-02-10 中国科学院计算机网络信息中心 一种多模式匹配中正则表达式存储压缩方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079890A (zh) * 2007-07-04 2007-11-28 杭州华三通信技术有限公司 一种生成特征码确定状态机的方法和装置
CN101645069A (zh) * 2008-08-04 2010-02-10 中国科学院计算机网络信息中心 一种多模式匹配中正则表达式存储压缩方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103854056A (zh) * 2014-03-17 2014-06-11 清华大学 正则表达式分组方法及装置
CN103854056B (zh) * 2014-03-17 2016-11-16 清华大学 正则表达式分组方法及装置
CN111198953A (zh) * 2018-11-16 2020-05-26 北京智慧正安科技有限公司 基于案件文本信息推荐类案的方法、系统及计算机可读存储介质
CN111198953B (zh) * 2018-11-16 2023-07-07 北京智慧正安科技有限公司 基于案件文本信息推荐类案的方法、系统及可读存储介质

Similar Documents

Publication Publication Date Title
Dou et al. A confidence-based filtering method for DDoS attack defense in cloud environment
Perez et al. Broken metre: Attacking resource metering in EVM
CN105447113B (zh) 一种基于大数据的信息分析方法
US8589432B2 (en) Real time searching and reporting
Alguliyev et al. Big data: Big promises for information security
US20210385251A1 (en) System and methods for integrating datasets and automating transformation workflows using a distributed computational graph
EP3356951B1 (en) Managing a database of patterns used to identify subsequences in logs
WO2012106378A2 (en) Real time searching and reporting
CN107016027A (zh) 实现业务信息快速搜索的方法和装置
CN110727727B (zh) 一种数据库的统计方法及装置
US20210136121A1 (en) System and method for creation and implementation of data processing workflows using a distributed computational graph
Fu et al. A study on the optimization of blockchain hashing algorithm based on PRCA
WO2017019717A1 (en) Dynamic attachment delivery in emails for advanced malicious content filtering
Li et al. Blockchain queuing model with non-preemptive limited-priority
CN109359251A (zh) 应用系统使用情况的审计预警方法、装置和终端设备
Sanka et al. Efficient high-performance FPGA-Redis hybrid NoSQL caching system for blockchain scalability
CN102111405A (zh) 一种均衡分两组编译正则表达式的方法
CN103780592A (zh) 一种用户账号被盗确定方法及装置
CN102073530B (zh) 一种多条正则表达式的增量分组方法
CN108111968B (zh) 一种基于泛化的位置隐私保护方法
He et al. NURGLE: Exacerbating Resource Consumption in Blockchain State Storage via MPT Manipulation
Tariq Rampant Smoothing (RTS) Algorithm: an optimized consensus mechanism for private Blockchain enabled technologies
De Sensi et al. Dpi over commodity hardware: implementation of a scalable framework using fastflow
JP2022551917A (ja) ネットワークによって相互接続された複数のネットワーク・ノードによる協調学習のためのコンピュータ実施方法、コンピューティング・デバイス、及びコンピュータ・プログラム
CN111158994A (zh) 一种压测性能测试方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110629