拼写检查、语言翻译、数据压缩、搜索引擎、网络入侵检测、计算机病毒特征码匹配等都会用到多模式匹配加密算法,可谓应用之广。那么我们今天就给大家介绍一下多模式匹配加密算法。
一、多模式匹配
所谓多模式匹配,就是在文本串T[1,…,n]中一次匹配多个模式串P1,P2,…,Pk,其中k为模式串的个数。k=1时,即为单模式匹配。模式串Pj的长度为mj,即Pj[1,…,mj](1≤j≤k),minlen是最短模式串的长度,即minlen=min{mj|(1≤j≤q)}。多模式匹配比多个模式串逐个进行传统单模式匹配加密算法的速度要快得多。
二、常见多模式匹配加密算法
1、AC加密算法
采用AC加密算法进行匹配需先对模式串集合进行预处理,形成树型有限状态自动机,然后只需对文本串扫描1次就可找出与其匹配的所有模式串。 AC加密算法在预处理阶段生成3个函数:goto(转移)函数、failure(失效)函数和output(输出)函数。
匹配过程从有限状态自动机的初始状态出发,每取出文本串中的一个字符,利用goto函数和failure函数进入下一状态;当某个状态的output函数不为空时输出其值,表示在文本串中匹配到该模式串。
AC加密算法在对文本串进行搜索时无跳跃,而是按顺序输入字符,无法跳过不必要的比较,因此在模式数目不是非常多的实际搜索过程中,AC加密算法性能不佳。AC极爱算法模式匹配的时间复杂度是O(n),而且与模式集中模式串的个数和每个模式串的长度无关,无论模式串P是否出现在T中,T中的每个字符都必须输入状态机中,所以无论是最好情况还是最坏情况,AC加密算法模式匹配的时间复杂度都是O(n),包括预处理时间在内AC加密算法的总时间复杂度是O(M+n),其中M为所有模式串的长度总和。
2、WM加密算法
WM快速字符串匹配加密算法采用BM加密算法进行跳跃的思想和hash散列方法,在实际应用中,是大规模多模式匹配最快的加密算法之一。WM加密算法将文本串以B个字符长度分块,称该B个字符为1个块字符,B为块字符的长度,B通常取2或3。首先对模式集进行预处理,在预处理阶段构造3个表,即shift表、hash表和prefix表。匹配过程从文本串text的第(m-B+1)(m是模式集中模式串的最小长度)个字符处开始,每次计算当前块字符的hash值h,通过shift[h]的值决定是否向后跳跃;当shift[h]的值为0时,将hash[h]链表中的每一个模式串从后向前与text比较,如果未达到text末尾,则将text向后移动1个字符继续比较。
WM加密算法的优点:
是字符跳跃距离大,使用shift表可以跳过那些不可能成功的匹配入口,匹配入口点少,从而减少字符比较次数。因此实际应用中,WM加密算法的效率一般比AC加密算法高。
WM加密算法的缺点:
WM加密算法在每个匹配入口点处,要逐个比较hash[h]表中每一个模式,在模式集数目较大时,算法性能明显下降。
WM加密算法在模式匹配中采用启发式搜索策略进行字符跳跃,匹配的时间复杂度平均情况是O(Bn/m),实际应用中B≤m,所以WM加密算法模式匹配的时间复杂度低于AC加密算法。
3、ExB加密算法
ExB加密算法是一个基于排除的字符串匹配加密算法,该加密算法能很快排除数据包负载中不包含匹配模式串的数据包。
ExB加密算法原理:
假设要检测字符串A中是否包含子串s,如果s中至少有1个字符不包含在A中,则s就不是A的1个子串。为了减少错误匹配的概率,将该算法扩充到字符对,匹配过程不仅检测s中每个字符是否出现在A中,还检测每一字符对中的字符出现的顺序是否正确。为了快速判定给定的字符c是否属于字符串A,该加密算法采用出现图的方法。对于A中出现的字符c在出现图中的相应位置采用二进制值标记,“1”表示c属于A,“0”表示c不属于A。对于每个新数据包,出现图都要进行一次大开销清零工作。为了减少这种开销,采用每个数据包的序列号取代二进制值来标记出现图中的相应位置,这样出现图就无需对每一个新数据包都进行清零。
ExB加密算法算法可分为预处理和搜索两个阶段。预处理阶段的时间复杂度与数据包负载的大小成线性关系,搜索阶段的时间复杂度与所有模式中的长度和成线性关系。由于在多数数据集中,入侵数据包毕竟是少数。另外,据统计仅有1.6%的数据包需要用标准的字符串匹配算法进一步确定该入侵特征串是否在数据包中,因此调用标准串匹配算法的概率很小,所以在实际应用中,该加密算法的效率高于其他应用于入侵检测中的匹配加密算法。
三、多模式加密算法性能测试和结果分析
测试环境:CPU是In-telPentiumE22002.2G,内存1G,硬盘160G,操作系统Win-dows2003,加密算法实现环境是VisualC++6.0。 利用入侵检测训练数据集,选取1天的流量数据(容量约160MB的Tcp-dump文件)作为测试数据集。入侵检测系统分别采用AC加密算法、WM加密算法和ExB加密算法作为模式匹配检测引擎,测试这3种情况下平均模式匹配时间与模式数目的变化关系,对比情况如表所示。
由上表可知,模式数小于20个时ExB加密算法最优,模式数在50~100时AC加密算法的匹配效率更好,当模式数大于100时,WM加密算法性能更好。
随着网络应用的发展和网络带宽的增加,必须提高网络入侵检测系统的处理性能。而目前的网络入侵检测系统多是基于特征匹配的系统,这类系统中的关键运算是模式匹配,因此提高模式匹配加密算法的效率是提高这类系统检测能力的关键。
小知识之Hash:
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。
助您决策!2025年受欢迎的内网安全软件排行
随着数字化进程的加速,内网安全已经成为企业不可忽视的重要环节。选择一款高效、可靠的内网安全软件,对于保障企业信息安全、提升运营效率至关重要。今天,我们就来聊聊几款在2025年备受推崇的内网安全软件,看看它们的技术特点和创新之处。一、域智盾:智能监控的佼佼者域智盾以其强大的实时监控能力脱颖而出。它能够同时追踪多台终端操作...
助力企业高效运营的电脑管控工具
企业想要在激烈的市场竞争中站稳脚跟,高效运营可是必不可少的关键。一说到高效运营,就不得不提那些在后台默默发力的电脑管控工具了。这些工具就好比企业的超级贴心助手,不仅让管理变得轻松许多,还能在不知不觉中提升工作效率,保证业务顺顺当当开展。今天,咱们就来聊聊这些神奇小帮手的技术亮点,看看它们是怎么用创新的法子助力企业向前冲...
掌握监控新趋势:局域网远程监控系统优势探秘
如今科技发展那叫一个日新月异,局域网远程监控系统在企业管理里的地位越来越重要。它就像企业的一双 “透视眼”,不仅能实时瞅着员工电脑的使用情况,还能帮着提升工作效率,把企业信息安全捂得严严实实。今儿咱就好好聊聊,这局域网远程监控系统到底有啥吸引人的技术特点,又能给企业带来哪些好处。一、局域网远程监控系统是什么?简单讲,就...
你了解终端准入系统的多重作用吗?
企业仿佛是一艘在数据海洋中破浪前行的巨轮,而终端准入系统,无疑就是那艘船上恪尽职守的 “守门员”。你或许会心生疑惑:这个 “守门员” 究竟有何神通,竟能助力企业在数据的汪洋里安稳航行?别着急,咱们这就一同深入探讨终端准入系统的多样妙用,以及它为何如此举足轻重。一、技术特点:精准识别,严格把控终端准入系统,本质上就是一道...
怎样设置电脑文件不能被拷贝呢?(技巧和方法详解)
《庄子·逍遥游》中的句子:“吾生也有涯,而知也无涯。”在当前的无纸化信息时代,数据虽然信息无穷,但安全的保护有其界限,需要人们警觉和措施,现代数据安全中,不应轻视今天的安全,应当即刻采取措施防止未来的风险。作为老板你希望的核心数据泄露吗?那我们应该怎样防范呢?下面跟着小编来学习一下禁止流程和方法:方法一:通过修改注册表...