论文部分内容阅读
串匹配算法是计算机科学领域中一个重要的基础研究领域。在文本处理、数据压缩、搜索引擎、生物计算,以及网络安全等大量的应用中,都需要进行串匹配。本文主要讨论精确模式串匹配。本文首先研究了模式串匹配的模型化方法,提出了使用一个宽窗口来在正文中并行地扫描多个模式出现的思想,并将它应用到单模式匹配和多模式匹配中来,然后将它们与Bit-Parallelism技术结合,获得了几个时间最优的串匹配算法。最后给出了这些算法在网络安全中的一些应用。主要研究内容包括:
对双向有限状态自动机(2DFA)进行扩展,提出了读头可跳跃的确定的有限状态自动机(SDFA)。证明了SDFA的描述能力与DFA是等价的。其次,分析了串匹配算法读头运动的四种类型并将它们用SDFA来模型化,并给出了一个典型例子:读头移动最复杂的BMA串匹配算法的SDFA模型,来证明SDFA模型的简练性与准确性。
提出了使用相互重叠的大窗口来扫描正文的思想的LDM单模式串匹配算法。在窗口中,先从中间位置往前扫描模式前缀,然后再扫描相应的模式后缀。将Bit-Parallelism技术与LDM算法思想结合,提出了在模式串长度不大于机器字长的情况下各项时间复杂度与LDM算法相同的算法LNDM。性能测试实验也验证了它们平均时间复杂度最优这一理论结果,而且在查找较短模式时,LNDM算法与LDM算法在大字母表情况下是最快的。
将LDM算法的思想推广到多模式匹配中来,提出了MLDM算法。
提出了一个使用动态连接库来实现的PLUGIN技术的可扩展的网络协议还原平台模型。对本文提出的串匹配算法进行必要的修改,使得它们在进行在线网络流量扫描时,在所扫描的上下文之间只需要保存一个状态字即可。经过以上准备,我们实现了一个基于网络的防病毒系统原型。