体育直播 分类>>

体育比赛直播_足球_波胆_买球_篮电竞_在线投注一种多条正则表达式的增量分组方法pdf

2025-09-30 15:54:29
浏览次数:
返回列表

  体育,足球,波胆,反波胆,角球,串关,大小球,世界杯,欧洲杯,比分,足球比分,赛事,足球赛事,电竞赛事,体育赛事直播,足球直播平台,世界杯直播,足球直播,体育直播,NBA直播,游戏直播,LOL直播《一种多条正则表达式的增量分组方法.pdf》由会员分享,可在线阅读,更多相关《一种多条正则表达式的增量分组方法.pdf(7页完整版)》请在专利查询网上搜索。

  1、10申请公布号CN102073530A43申请公布日20110525CN102073530ACN102073530A21申请号0X22申请日20101217G06F9/4520060171申请人国家计算机网络与信息安全管理中心地址100029北京市朝阳区裕民路甲3号申请人曙光信息产业(北京)有限公司72发明人李锋伟云晓春杜跃进汪立东陈训逊包秀国杜翠兰王勇薛晨74专利代理机构北京安博达知识产权代理有限公司11271代理人徐国文54发明名称一种多条正则表达式的增量分组方法57摘要本发明提供了一种多条正则表达式的增量分组方法,在不降低实时性的同时,同样的硬件空间大小,可增加了硬。

  2、件处理正则式的数量,从而改善了系统工作的硬件处理能力。根据硬件的并行空间的大小,自动进行分组编译,已帮助FPGA实现并行匹配的功能。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书3页附图2页CN102073536A1/1页21一种多条正则表达式的增量分组方法,其特征在于步骤如下A、读取N条正则式;B、生成两两间状态数之和,为增量编译的依据;C、根据两两间状态数之和,采用冒泡法进行排序;D、增量编译前,初始化变量RULER_NO0,OLD_RULER_NO0和I0;E、设置第I组的状态阈值,根据硬件板卡上各块空间的大小,设置该组支持状态数的阈值;F、按照步长S。

  3、TEP,以该变量递增方式更新RULER_NO;如果RULER_NOSTEP大于等于N,则RULER_NO等于N,如果小于N,则RULER_NO设置为RULER_NOSTEP;G、编译OLD_RULER_NO,RULER_NO之间规则,得到DFA的状态数;H、此时状态数和该组的状态阈值进行比较,如果小于则判断RULER_NO是否等于N,等于则到步骤12保存该组DFAI,不等于则返回步骤F;如果等于则到步骤L保存该组DFAI;如果大于则进行步骤J;I、RULER_NO减1;J、编译OLD_RULER_NO,RULER_NO之间规则,得到DFA的状态数;K、此时状态数和该组的状态阈值进行比较。如果小。

  4、于等于则到步骤L保存该组DFAI;如果大于则会对步骤J;L、保存该组DFAI,保存编译好的合适硬件空间的DFA;M、判断是否结束,当I大于等于硬件空间的最大分组数MAX_GROUP_NUM时,或者所有规则已经编译完成RULER_NO等于N时,退出;否则I加1后,继续回到步骤E。权利要求书CN102073530ACN102073536A1/3页3一种多条正则表达式的增量分组方法技术领域0001本发明涉及网络安全领域,具体涉及一种增量分组编译正则表达式的方法。背景技术0002随着网络技术的不断发展,网络安全问题日益凸显,内容安全也越来越受到重视。网络安全系统功不可没,它防止了有害信息的网络传播,它。

  5、防止了国家或企业机密信息的网络泄漏。主要的网络安全系统有入侵检测系统INTRUSIONDETECTIONSYSTEM,IDS和入侵防御系统INTRUSIONPREVENTIONSYSTEM,IPS,等等。通过对入侵行为的检测,来加强信息安全防御能力。现有的IDS或者IPS中,例如SNORT、BRO等,多数采用了设定规则的方式对网络数据包进行包头或者/和内容的检查,符合指定规则的数据包,根据规则对应的处理办法进行处理,或是转发,或是日志。另外,网络安全还有一个重要的技术是病毒检测,通过对数据包进行病毒特征的检测,检测到数据包不上传主机,从而避免主机受到病毒的入侵。由于病毒种类繁多,这类病毒特征库。

  6、非常庞大。可见,通过规则和特征进行匹配的方法,将成为影响这类系统性能的重要因素。在很多系统中,也采用了正则表达式的方式来表达规则和特征,通过较少的正则表达式浓缩更多的规则和特征。0003但是利用正则表达式规则,进行对比匹配,会消耗大量的系统资源,从而降低系统的性能。当正则式条数很大时,系统的性能将受到严重影响,因此许多研究开始通过定制的ASICAPPLICATIONSPECIFICINTEGRATEDCIRCUIT或者定制的FPGAFIELDPROGRAMMABLEGATEARRAY来协同主机进行正则表达式的匹配工作,以减轻主机系统的负担,带来提升整个系统的性能的结果。0004利用正则表达式进。

  7、行对比匹配,通常会将其转换为确定有限自动机DETERMINISTICFINITEAUTOMATA,DFA或者非确定有限状态机NONDETERMINISTICFINITEAUTOMATION,NFA,利用状态的跳转来进行匹配。通常NFA的方法需要需要回溯,匹配速度慢;而DFA的方法不需要回溯,匹配速度非常快,但是其空间的消耗很大,对于规则数量较多时,会引起空间的爆炸。因此,利用定制的ASIC和FPGA都面临硬件面积有限,而规则数量多,将面临硬件无法存储这么多规则生成的DFA的问题。0005利用DFA进行正则式的匹配,实时性非常好,但正则式规则数量多时,将带来存储空间的爆炸。假设有N条正则式,其计。

  8、算的时间复杂度是01,但其空间复杂度是02N。利用FPGA去做协同处理的话,如果规则生成的DFA空间超过了硬件支持的空间,这将有一些规则无法进行片上处理。发明内容0006本发明为解决上述问题利用了FPGA的并行处理特性,采用多路引擎对正则式进行识别。0007一种多条正则表达式的增量分组方法,步骤如下0008A、读取N条正则式;说明书CN102073530ACN102073536A2/3页40009B、生成两两间状态数之和,为增量编译的依据;0010C、根据两两间状态数之和,采用冒泡法进行排序;0011D、增量编译前,初始化变量RULER_NO0,OLD_RULER_NO0和I0;0012E、设。

  9、置第I组的状态阈值,根据硬件板卡上各块空间的大小,设置该组支持状态数的阈值;0013F、按照步长STEP,以该变量递增方式更新RULER_NO;如果RULER_NOSTEP大于等于N,则RULER_NO等于N,如果小于N,则RULER_NO设置为RULER_NOSTEP;0014G、编译OLD_RULER_NO,RULER_NO之间规则,得到DFA的状态数;0015H、此时状态数和该组的状态阈值进行比较,如果小于则判断RULER_NO是否等于N,等于则到步骤12保存该组DFAI,不等于则返回步骤F;如果等于则到步骤L保存该组DFAI;如果大于则进行步骤J;0016I、RULER_NO减1;00。

  10、17J、编译OLD_RULER_NO,RULER_NO之间规则,得到DFA的状态数;0018K、此时状态数和该组的状态阈值进行比较。如果小于等于则到步骤L保存该组DFAI;如果大于则会对步骤J;0019L、保存该组DFAI,保存编译好的合适硬件空间的DFA;0020M、判断是否结束,当I大于等于硬件空间的最大分组数MAX_GROUP_NUM时,或者所有规则已经编译完成RULER_NO等于N时,退出;否则I加1后,继续回到步骤E。0021本发明在不降低实时性的同时,同样的硬件空间大小,可增加了硬件处理正则式的数量,从而改善了系统工作的硬件处理能力。根据硬件的并行空间的大小,自动进行分组编译,已帮。

  11、助FPGA实现并行匹配的功能。附图说明0022图1是本发明计算状态和示意图0023图2是本发明流程图具体实施方式0024本方法根据硬件提供的并行空间大小,以增量方式自动分组进行DFA编译的软件处理方法,已帮助硬件实现并行匹配的功能。0025具体的操作步骤如下00261读取正则式N条正则式00272生成两两间状态数之和,为增量编译的依据,由于多条DFA编译会产生状态空间的爆炸,因此从某种程度上,可以用两两间的状态数之和来反映该条规则引起爆炸剧烈程度,值越高,将会引起更大的空间爆炸。例如规则1的两两状态数之和为DFA_SIZE1,2DFA_SIZE1,3DFA_SIZE1,N。依次类推,生成所有规。

  13、的状态数。00338此时状态数和该组的状态阈值进行比较。如果小于则判断RULER_NO是否等于N,等于则到步骤12保存该组DFAI,不等于则返回步骤6。如果等于则到步骤12保存该组DFAI。如果大于则进行下面的步骤9。00349RULER_NO减1。003510编译OLD_RULER_NO,RULER_NO之间规则,得到DFA的状态数。003611此时状态数和该组的状态阈值进行比较。如果小于等于则到步骤12保存该组DFAI。如果大于则会对步骤9。003712保存该组DFAI。保存编译好的合适硬件空间的DFA。003813判断是否结束,当I大于等于硬件空间的最大分组数MAX_GROUP_NUM时,或者所有规则已经编译完成RULER_NO等于N时,退出;否则I加1后,继续回到步骤5。说明书CN102073530ACN102073536A1/2页6图1说明书附图CN102073530ACN102073536A2/2页7图2说明书附图CN102073530A。

  李锋伟; 云晓春; 杜跃进; 汪立东; 陈训逊; 包秀国; 杜翠兰; 王勇; 薛晨

  本发明提供了一种多条正则表达式的增量分组方法,在不降低实时性的同时,同样的硬件空间大小,可增加了硬件处理正则式的数量,从而改善了系统工作的硬件处理能力。根据硬件的并行空间的大小,自动进行分组编译,已帮助FPGA实现并行匹配的功能。

  1: 一种多条正则表达式的增量分组方法, 其特征在于 : 步骤如下 : A、 读取 N 条正则式 ; B、 生成两两间状态数之和, 为增量编译的依据 ; C、 根据两两间状态数之和, 采用冒泡法进行排序 ; D、 增量编译前, 初始化变量 ruler_no = 0, old_ruler_no = 0 和 i = 0 ; E、 设置第 i 组的状态阈值, 根据硬件板卡上各块空间的大小, 设置该组支持状态数的 阈值 ; F、 按照步长 STEP, 以该变量递增方式更新 ruler_no ; 如果 (ruler_no+STEP) 大于等于 n, 则 ruler_no 等于 n, 如果小于 n, 则 ruler_no 设置为 (ruler_no+STEP) ; G、 编译 [old_ruler_no, ruler_no) 之间规则, 得到 DFA 的状态数 ; H、 此时状态数和该组的状态阈值进行比较, 如果小于则判断 ruler_no 是否等于 n, 等于则到步骤 12 保存该组 DFA[i], 不等于则返回步骤 F ; 如果等于则到步骤 L 保存该组 DFA[i] ; 如果大于则进行步骤 J ; I、 ruler_no 减 1 ; J、 编译 [old_ruler_no, ruler_no) 之间规则, 得到 DFA 的状态数 ; K、 此时状态数和该组的状态阈值进行比较。如果小于等于则到步骤 L 保存该组 DFA[i] ; 如果大于则会对步骤 J ; L、 保存该组 DFA[i], 保存编译好的合适硬件空间的 DFA ; M、 判断是否结束, 当 i 大于等于硬件空间的最大分组数 MAX_GROUP_NUM 时, 或者所有规 则已经编译完成 ruler_no 等于 n 时, 退出 ; 否则 i 加 1 后, 继续回到步骤 E。

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

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

  利用 DFA 进行正则式的匹配, 实时性非常好, 但正则式规则数量多时, 将带来存储 空间的爆炸。假设有 n 条正则式, 其计算的时间复杂度是 0(1), 但其空间复杂度是 0(2n)。 利用 FPGA 去做协同处理的话, 如果规则生成的 DFA 空间超过了硬件支持的空间, 这将有一 些规则无法进行片上处理。

  本发明为解决上述问题利用了 FPGA 的并行处理特性, 采用多路引擎对正则式进 行识别。

  A、 读取 N 条正则式 ;B、 生成两两间状态数之和, 为增量编译的依据 ;

  E、 设置第 i 组的状态阈值, 根据硬件板卡上各块空间的大小, 设置该组支持状态 数的阈值 ;

  H、 此时状态数和该组的状态阈值进行比较, 如果小于则判断 ruler_no 是否等于 n, 等于则到步骤 12 保存该组 DFA[i], 不等于则返回步骤 F ; 如果等于则到步骤 L 保存该组 DFA[i] ; 如果大于则进行步骤 J ;

  K、 此时状态数和该组的状态阈值进行比较。如果小于等于则到步骤 L 保存该组 DFA[i] ; 如果大于则会对步骤 J ; L、 保存该组 DFA[i], 保存编译好的合适硬件空间的 DFA ;

  M、 判断是否结束, 当 i 大于等于硬件空间的最大分组数 MAX_GROUP_NUM 时, 或者所 有规则已经编译完成 ruler_no 等于 n 时, 退出 ; 否则 i 加 1 后, 继续回到步骤 E。

  本发明在不降低实时性的同时, 同样的硬件空间大小, 可增加了硬件处理正则式 的数量, 从而改善了系统工作的硬件处理能力。 根据硬件的并行空间的大小, 自动进行分组 编译, 已帮助 FPGA 实现并行匹配的功能。

  本方法根据硬件提供的并行空间大小, 以增量方式自动分组进行 DFA 编译的软件 处理方法, 已帮助硬件实现并行匹配的功能。

  2. 生成两两间状态数之和, 为增量编译的依据, 由于多条 DFA 编译会产生状态空 间的爆炸, 因此从某种程度上, 可以用两两间的状态数之和来反映该条规则引起爆炸剧烈 程度, 值越高, 将会引起更大的空间爆炸。例如规则 1 的两两状态数之和为 dfa_size(1, 2)+dfa_size(1, 3)+… +dfa_size(1, n)。依次类推, 生成所有规则的两两状态数之和。

  8. 此时状态数和该组的状态阈值进行比较。如果小于则判断 ruler_no 是否等于 n, 等于则到步骤 12 保存该组 DFA[i], 不等于则返回步骤 6。如果等于则到步骤 12 保存该 组 DFA[i]。如果大于则进行下面的步骤 9。

  11. 此时状态数和该组的状态阈值进行比较。 如果小于等于则到步骤 12 保存该组 DFA[i]。如果大于则会对步骤 9。

  13. 判断是否结束, 当 i 大于等于硬件空间的最大分组数 MAX_GROUP_NUM 时, 或者 所有规则已经编译完成 ruler_no 等于 n 时, 退出 ; 否则 i 加 1 后, 继续回到步骤 5。

搜索