[发明专利]基于带记忆确定有限自动机的正则表达式匹配加速方法无效
| 申请号: | 200710071071.0 | 申请日: | 2007-09-04 |
| 公开(公告)号: | CN101201836A | 公开(公告)日: | 2008-06-18 |
| 发明(设计)人: | 王继民;平玲娣;潘雪增;陈小平;陈健;陆魁军 | 申请(专利权)人: | 浙江大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F17/27 |
| 代理公司: | 杭州求是专利事务所有限公司 | 代理人: | 张法高 |
| 地址: | 310027*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 记忆 确定 有限 自动机 正则 表达式 匹配 加速 方法 | ||
技术领域
本发明涉及信息处理领域,尤其涉及一种基于带记忆确定有限自动机的正则表达式匹配加速方法。
背景技术
字符串匹配是信息处理领域最基本操作之一,是许多信息处理应用的基础。字符串匹配是在某个输入字符串(以下称为目标字符串)中找出与给定字符串(以下称为特征字符串)具有特定关系的子串的过程。字符串匹配可以分为字符串精确匹配和字符串模糊匹配两种,其中前者是在目标字符串中找出与特征字符串完全相同的子串,而后者则是在目标字符串中找出与特征字符串相似的特定子串(比如,目标字符串的子串比特征字符串增加、减少或修改一个或数个字符)。字符串的精确匹配应用尤为广泛。
正则表达式是由普通字符(例如字符a到z)和特殊字符(称为元字符)组成的文字模式,该模式可用于描述具有特定特征的一类字符串。比如“.*abc[0-9]$”描述了这样一类字符串:它的头部具有任意个任意字符,并以abc加一个数字结尾。正则表达式被广泛应用于字符串匹配,用来描述特征字符串。例如,在网关部署的内容过滤程序使用基于正则表达式的模式匹配查找并过滤具有不当内容的网络数据;反病毒程序利用基于正则表达式的特征库对病毒进行扫描;网络入侵检测与防御软件利用基于正则表达式的模式匹配对入侵企图进行识别。
基于正则表达式的模式匹配是计算密集型的任务,需要大量的CPU计算。例如,反病毒程序ClamAV的特征库目前已经具有超过11万条规则,但它需要在尽可能短的时间内判断出给定文件是否具有特征库中的特征。另外一个典型应用是部署在网关的内容过滤程序,它需要实时地对通过的数据流进行检测,并根据内容等级采取相应的动作。目前利用软件进行正则表达式匹配,吞吐率在几百Mbps到1Gbps之间,该性能在实际应用中会下降数倍到数十倍,还远不能满足实时扫描的需要。
基于硬件加速的正则表达式匹配方法是解决该矛盾的其中一个办法。利用专用集成电路(ASIC)或现场可编程门阵列(FPGA)实现正则表达式匹配引擎,可同样完成模式匹配,但可根据需要进行专门的优化,成倍地提高性能。
正则表达式的硬件加速通常用自动机实现。
重复操作符“(A){n,m}”是正则表达式中常见的一个操作符,它代表子表达式(A)至少重复n次,至多重复m次。重复操作符有三种形式:
(A){n,m},表示子表达式(A)至少重复n次,至多重复m次。
(A){n,},表示子表达式(A)至少重复n次。
(A){n},表示子表达式(A)重复n次。
在通常的模式匹配软件中,“(A){n,m}”操作符是不被直接支持的,通常会转换为连接操作符和选择操作符,如第一种形式“(A){n,m}”会被转换为:
第二、三种形式的重复操作符相对简单,可分别展开为:
以及
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710071071.0/2.html,转载请声明来源钻瓜专利网。





