论文部分内容阅读
模式匹配问题是计算机科学中的一个基本问题,其研究内容在信息检索、模式识别等众多领域均有重要价值,在拼写检查、语言翻译、数据压缩、搜索引擎、入侵检测、内容过滤、计算机病毒特征码匹配以及基因序列比较等应用中起着重要的作用。入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。在网络速度突飞猛进的今天,研究高效快速的入侵检测算法对网络安全、计算机安全有着重要意义。本文简单介绍了入侵检测系统(Intrusion Detection System,IDS)的基本概念、发展前景、工作原理、IDS的各种标准,并对KMP(Knuth-Morris-Pratt)、AC(Aho-Corasick)、BM(Boyer-Moore)、WM(Wu-Manber)、BOM(Backward Oracle Matching)、SBOM(Set BOM)算法进行了分析和比较。在此基础上,本文提出了一种节约时间和空间的快速多模式匹配算法。算法从模式串的右端向左端匹配,利用转移表跳转过滤掉不必要的字符,然后进入状态机进行匹配,提高了匹配速度。在构造状态机时,利用中国剩余定理和位图压缩的存储方式压缩状态机,减少了状态机的存储空间,节约了空间。该算法采用的压缩存储和跳跃字符思想能够减少内存存储容量和访问次数,因而该算法容易用硬件实现。实验证明,算法搜索效率有明显的提高,具有很好的性能。针对AC算法的缺点,本文设计了一种适用于硬件实现的匹配算法,算法采用K步长状态机作为模式的搜索状态机。进入系统的字符先经过Bloom Filter结构的hash表去掉不可能存在模式,然后再访问RAM,进行精确匹配,K步长状态机与hash技术大大减少了访问RAM次数,提高了匹配速度,并且本算法在硬件实现时可以利用多路并行技术,进一步提高了匹配速度。最后用Verilog语言描述此算法的硬件实现,介绍了数据通路模块、hash匹配模块、分析与仲裁模块等关键模块的设计方法,并进行了仿真验证。