2022年多模式匹配算法的FPGA实现 .pdf
《2022年多模式匹配算法的FPGA实现 .pdf》由会员分享,可在线阅读,更多相关《2022年多模式匹配算法的FPGA实现 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计 算 机 系 统 应 用http:/www.c-s- 2011 年 第 20 卷 第 3 期90研究开发Research and Development多模式匹配算法的FPGA 实现孔利峰,李训根,厉海涛(杭州电子科技大学微电子 CAD 研究所,杭州 310018) 摘 要:针对目前模式匹配算法多采用软件实现,而软件实现效率低下的弊端,提出了一种基于硬件实现模式匹配算法的设计方案。 综合 Aho-Corasick(AC)算法原理和 FPGA 硬件特点,在 FPGA 上实现 AC 算法;然后利用Quartus II 对设计进行了验证和性能分析。实验结果表明,基于硬件实现的Aho-Corasic
2、k(AC)算法的效率得到显著提升,有效解决了数据快速增长带来的处理速度缓慢的缺点。关键词: 模式匹配算法;现场可编程门阵列;硬件描述语言Implementation of the Pattern Matching Technical on FPGA KONG Li-Feng, LI Xun-Gen, LI Hai-Tao (Institute of ICAD, Hangzhou Diangzi University, Hangzhou 310018, China)Abstract: The pattern matching algorithm was mostly implemented ba
3、sed on software, but software realized of low efficiency, a design was applied to make the pattern matching algorithm implementation on the hardware. This paper combines the principle of the Aho-Corasick (AC) algorithm and the characteristics of FPGA, implements the Aho-Corasick (AC) algorithm on th
4、e FPGA. Then, it uses the Quartus II to validation and performance analysis for this design. The test results indicate that the design has high quality and is an effective solution to the fault of slow speed. Keywords: pattern matching algorithm; FPGA; hardware description language 1引 言随着 Internet 数
5、据量爆炸式的增长, 基于软件实现的入侵检测系统IDS 的检查效率已经远远赶不上数据的增长1,2,成为入侵检测技术发展的瓶颈。基于硬件实现的模式匹配算法,其匹配时间仅取决于待匹配的串长度和硬件的工作速度, 可以达到很高的检测速度,从而满足高速网络的实时检测需求3。FPGA 具有可重复烧写的功能,是目前硬件实现入侵检测的主流解决方案。本文针对入侵检测系统中的多模式匹配算法-AC 算法,结合 Altera 公司的 FPGA 产品,在硬件电路上实现 AC 算法,从而大大提高系统检测效率。2AC算法AC 算法是基于有穷状态自动机的, 在进行匹配之前先对模式串集合SP进行预处理,形成树型有穷状态自动机,然
6、后只需对文本串T 扫描一次就可以找出与 基金项目 :浙江省重大科技专项(2007C11069) 收稿日期 :2010-06-23;收到修改稿时间 :2010-08-02 其匹配的所有模式串。图 1he,she,his,her,say的 goto 函数图预处理生成 3 个函数:goto(转移)函数,failure(失效)函数和 output(输出 )函数。设 U=0 ,1,2为状态集合,转移函数的建立过程为: 逐个取出 SP中模式串的每个字符,从状态0 出发,如果有标注该字符的矢线存在,则将矢线所指的状态赋为当前状态;否则,名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
7、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 2011 年 第 20 卷 第 3 期http:/www.c-s- 计 算 机 系 统 应 用Research and Development 研究开发91添加一个标号比已有状态标号大1 的新状态,并用一条矢线从当前状态指向新加入的状态,并将新加入的状态赋为当前状态。最后,画一条从0 状态到 0 状态的自返线。 SP= he,she,his,her,say 的 goto函数如图 1所示。失效函数f 构造方法为:所有第一层状态的失效函数为0;对于非第一层
8、状态s,若其父状态为r(即存在字符a,使 g(r,a)=s) ,则 f(s)=g(f(s*),a) ,其中状态s*为追溯s 的祖 先状态得到的第一个使g(f(s*),a) 存在的状态。如f(4)=g(f(3),h)=g(0,h)=1,f(5)=g(f(4),e)=g(1,e)=2 。具体的失效函数如图2(a)所示。输出函数 output 的构造分两步,第一步是在构造转移函数 g 时,每处理完一个模式串,则将该模式串加 入 到 当 前 状 态s的 输 出 函 数 中 , 如output(2)=he,output(5)=she 。第二步是构造失效函数 f 时,若 f(s)=s,则 output(s
9、)=output(s)output(s),如 output(5)=output(5)output(2)=she,he。具体的输出函数如下图 2(b)所示: (a)失效函数图(b)输出函数图图 2失效函数图与输出函数图AC 算法实现如下: 从状态 0 出发,每取出文本串中的一个字符,利用g 和 f 函数进入下一状态。当某个状态的 output 函数不为空时输出其值,表示在文本串中找到该模式串。AC 算法模式匹配的时间复杂度是O(n),与模式集中模式串的个数和模式串的长度无关。3硬件实现根据 AC 算法的原理,利用verilog hdl 语言构建FSA,在硬件上设计和实现AC 算法的功能。采用可编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年多模式匹配算法的FPGA实现 2022 模式 匹配 算法 FPGA 实现
限制150内