用于大规模正则表达式匹配的双DFA分解制造技术

技术编号:8133924 阅读:243 留言:0更新日期:2012-12-27 12:04
一种设备包括用于将第一输入串与第一正则表达式集合匹配的数据处理系统。数据处理系统包括处理器、存储计算机程序的存储器,配置成执行计算机程序的处理器。所述计算机程序包括用于将所述第一正则表达式集合的至少两个相关的符号映射到唯一的符号、通过用所述唯一的符号替代所述第一输入串中至少两个相关的符号的每一个实例来产生第二输入串、以及对所述输入串操作第一状态机并对第二输入串操作第二状态机以确定所述第一输入串是否与所述第一正则表达式集合匹配的指令。

【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及一种正则表达式处理。具体而言,本公开涉及用于将输入串与正则表达式匹配的设备和方法。
技术介绍
可以使用正则表达式集合匹配定位与正则表达式匹配的给定输入串的子串的全部出现。在若干应用中,例如病毒扫描和入侵检测中,广泛使用了精确集合匹配,也称为关键字匹配或关键字扫描。但是,基于关键字的方法仅允许定义静态的关键字。入侵检测软件和病毒扫描程序可以使用正则表达式(regex)来捕获更精确的信息并执行深度包扫描。正则表达式是定义搜索匹配输入串时使用的模式的一串符号(例如字 符、字母和数字)。正则表达式和输入串使用的符号是从符号集合,即所谓的正则表达式的字母表中提取的。深度包检查实现了高级安全功能以及因特网数据挖掘、窃听和审查。由于网络速度和网络威胁,例如病毒、恶意软件(malware)和网络攻击的组合增加,对执行深度包检查的应用的处理需求越来越多。正则表达式可用于表达模式族。将输入数据与正则表达式的集合匹配可能是非常复杂的任务,并且很大程度上取决于正则表达式中实施的特征。有几种不同形式的技术可用,每种都构建于“更简单的语法”的特征之上并且增加更多的特征。几种程序设计语言(例如,per本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.04.20 US 12/763,5101.一种用于在数据处理系统中将第一输入串和第一正则表达式集合匹配的设备,其中所述第一正则表达式集合包括来自第一字母表的符号,且其中所述数据处理系统包括网络,所述设备包括 分析部件,用于由所述第一正则表达式集合确定第二字母表; 更新部件,用于响应于所述分析部件确定所述第二字母表,确定第二正则表达式集合和第三正则表达式集合,其中所述第二正则表达式集合包括来自所述第一字母表的符号,且其中所述第三正则表达式集合包括来自所述第二字母表的符号; 编译器部件,用于响应于所述更新部件确定所述第二正则表达式集合和所述第三正则表达式集合,将所述第二正则表达式集合编译到第一状态机中,其中所述第一状态机包括至少一个第一有条件的最终状态,并将所述第三正则表达式集合编译到第二状态机中,其中所述第二状态机包括至少一个第二有条件的最终状态,且其中每一个第一有条件的最终状态对应于至少一个第二有条件的最终状态; 输入部件,用于从网络接收第一输入串,其中所述第一输入串包括来自第一字母表的符号; 翻译部件,用于响应于所述输入部件接收所述第一输入串,将所述第一输入串翻译成第二输入串,其中所述第二输入串包括来自所述第二字母表的符号; 机器部件,用于响应于所述翻译部件翻译所述第一输入串,并行地向所述第一状态机中输入第一输入串且向所述第二状态机中输入第二输入串; 比较部件,用于响应于所述机器部件输入第一和第二输入串,将所述第一有条件的最终状态与对应的第二有条件的最终状态作比较;以及 检查部件,用于响应于所述第一有条件的最终状态和对应的第二有条件的最终状态匹配,提供已验证的结果。2.根据权利要求I所述的设备,其中所述设备还包括输出部件,用于响应于所述检查部件提供多个已验证的结果,验证所述多个已验证的结果并提供完全验证的匹配。3.根据前述权利要求中的任一项所述的设备,其中所述第一字母表包括多个符号集,且其中所述分析部件进一步可操作用于 将所述符号集的每一个映射到一个或多个被映射的符号;以及响应于映射所述符号集的每一个,确定第二字母表,其中所述第二字母表包括所述被映射的符号的每一个。4.根据前述权利要求中的任一项所述的设备,其中所述设备还包括 接收部件,用于接收所述第一正则表达式集合;以及 响应于所述接收部件接收所述第一正则表达式集合,所述分析部件进一步可操作用于分析所述第一正则表达式集合以确定第二字母表。5.根据前述权利要求中的任一项所述的设备,其中所述第一状态机和所述第二状态机中的至少一个是确定性的。6.根据前述权利要求中的任一项所述的设备,其中所述第一状态机和所述第二状态机中的至少一个还包括至少一个无条件的最终状态,且其中所述设备还包括 所述比较部件,进一步可操作用于评估所述至少一个无条件的最终状态;并且 所述检查部件,用于响应于所述至少一个无条件的最终状态是活动的,提供已验证的结果。7.一种用于在数据处理系统中将第一输入串和第一正则表达式集合匹配的方法,其中所述第一正则表达式集合包括来自第一字母表的符号,且其中所述数据处理系统包括网络,所述方法包括步骤 由所述第一正则表达式集合确定第二字母表; 响应于确定所述第二字母表,确定第二正则表达式集合和第三正则表达式集合,其中所述第二正则表达式集合包括来自所述第一字母表的符号,且其中所述第三正则表达式集合包括来自所述第二字母表的符号; 响应于确定所述第二正则表达式集合和所述第三正则表达式集合,将所述第二正则表达式集合编译到第一状态机中,其中所述第一状态机包括至少一个第一有条件的最终状态,并将所述第三正则表达式集合编译到第二状态机中,其中所述第二状态机包括至少一个第二有条件的最终状态,且其中每一个第一有条件的最终状态对应于至少一个第二有条件的最终状态; 从网络接收第一输入串,其中所述第一输入串包括来自第一字母表的符号; 响应于接收所述第一输入串,将所述第一输入串翻译成第二输入串,其中所述第二输入串包括来自第二字母表的符号; 响应于翻译所述第一输入串,并行地向所述第一状态机中输入第一输入串,且向所述第二状态机中输入第二输入串; 响应于输入第一输入串和第二输入串,比较第一有条件的最终状态与对应的第二有条件的最终状态;以及 响应于所述第一有条件的最终状态和对应的第二有条件的最终状态匹配,提供已验证的结果。8.根据权利要求7所述的方法,其中所述方法还包括,响应于提供多个已验证的结果,验证所述多个已验证的结果并提供完全验证的匹配。9.根据权利要求7或8中的任一项所述的方法,其中所述第一字母表包括多个符号集,且其中所述方法还包括 将所述符号集的每一个映射到一个或多个被映射的符号;以及 响应于映射所述符号集的每一个,确定所述第二字母表,其中所述第二字母表包括被映射的符号的每一个。10.根据权利要求7到9中的任一项所述的方法,其中所述方法还包括 接收所述第一正则表达式集合;以及 响应于接收所述第一正则表达式集合,分析所述第一正则表达式集合以确定第二字母表。11.根据权利要求7到10中的任一项所述的方法,其中所述第一状态机和所述第二状态机中的至少一个是确定性的。12.根据权利要求7到11中的任一项所述的方法,其中所述第一状态机和所述第二状态机中的至少一个还包括至少一个无条件的最终状态,且其中所述方法还包括 访问所述至少一个无条件的最终状态;以及 响应于所述至少一个无条件的最终状态是活动的,提供已验证的结果。13.一种用于在数据处理系统中将第一输入串和第一正则表达式集合匹配的计算机程序产品,其中所述第一正则表达式集合包括来自第一字母表的符号,且其中所述数据处理系统包括网络,所述计算机程序产品包括 计算机可读存储介质,所述计算机可读存储介质可以由处理电路读取并存储由处理电路执行以执行根据权利要求7到12中的任一项所述的方法的指令。14.存储于计算机可读介质上并...

【专利技术属性】
技术研发人员:D·帕斯托F·佩特里尼V·阿加瓦尔
申请(专利权)人:国际商业机器公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1