温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
面向
网页
篡改
检测
混沌
MD5
算法
研究
马佳芸
工业控制计算机2023年第36卷第2期*上海市科委重点项目(19DZ1205802)资助随着互联网应用不断普及,网站已成为互联网应用的重要组成 部 分,然而各 类网 页篡改事 件严重 威 胁 了 网 站 安 全。CNCERT(国家互联网应急中心)2021年上半年的监测数据显示,中国境内遭篡改的网站高达3.4万个1,网页篡改检测成为研究人员关注的重点问题。现有的网页篡改检测技术主要包括网页相似度检测、数字水印校验以及Hash函数校验等。网页相似度检测技术2是通过计算两个网页版本的相似度来判断网页的篡改情况,若计算结果不在安全阈值范围内,则认为网页被篡改。该技术的缺点在于当篡改程度比较轻微时,可能会出现漏报的情况。数字水印校验技术3是指在不影响网页显示效果的前提下,事先在网页中嵌入水印信息,检测时通过水印提取算法获得网页中隐藏的水印信息进行对比。Hash函数校验技术是指利用Hash函数的抗碰撞性,将网页内容映射为唯一的Hash值后进行对比。相较于数字水印算法,Hash函数的运算速度更快,更适用于实时性要求较高的网页篡改检测任务。此外,无论明文的改动多么细微,经Hash函数计算后所生成的Hash值都会发生巨大变化,因此Hash函数校验具有更高的准确率。MD系列和SHA系列函数是最为典型的两类Hash函数,均采用经典的Merkle-Damgard结构,具有许多共同的设计准则。由于SHA系列算法生成的Hash值长度较长,运算速度相对较慢,因此通常采用MD5算法进行网页内容一致性校验。然而,MD5算法已经被证实无法抵御碰撞攻击4,网页内容篡改前后的Hash值存在相同的概率,导致无法发现网页篡改行为。目前,学者们通常采用多次加密或加盐的方式对MD5算法进行改进,例如,文献5提出了一种基于二次加密的加盐MD5算法,将乱序的明文内容与固定盐值结合后进行多次MD5加密。然而,上述改进算法仅被证明能够抵抗现有的MD5碰撞,是否真正增强了Hash值的安全强度仍有待证实6。近年来,由于混沌系统的初值敏感性、随机性以及单向性等特点符合Hash函数的设计要求,学者们通过利用混沌动力学特性加强消息的混淆与扩散7-8,从而构造更加安全的Hash函数。为了更好地抵御针对MD5算法的碰撞攻击,本文提出了一种基于整数帐篷映射的动态MD5算法,利用动态参数模型和混沌系统增强算法的抗碰撞性。1Hash碰撞问题分析在网页篡改检测时,Hash函数将网页内容映射为Hash值后进行比较,若两个Hash值不相同,则认为发生了网页篡改行为。由于MD5算法的本质是一个压缩函数,是将无限的明文空间压缩为有限的密文空间,因此必然存在两个不同的明文消息对应的Hash值是相同的,这种现象叫做Hash碰撞现象。由此可知,被篡改网页的Hash值与正确网页的Hash值存在一定的碰撞概率。当Hash碰撞现象发生时,就无法通过Hash函数校验检测出网页篡改行为。目前,学者们已经能够通过多种碰撞攻击方法生成两个Hash值相同的明文。2004年,王小云教授使用模差分攻击算法将碰撞尝试减少至242次。文献9在王小云教授的研究基础上,使用构造前缀碰撞法进行攻击,并且根据研究成果编写了一个“快速MD5碰撞生成器”,能够在短时间内面向网页篡改检测的混沌 MD5 算法的研究*Research on Chaotic MD5 Algorithm for Webpage Tampering Detection马佳芸付婷婷沈嘉诚徐佳立(上海大学通信与信息工程学院,上海200444)摘要:随着网页篡改问题的日趋严峻,网页篡改检测技术成为近年来的研究热点。Hash函数校验是目前网页篡改检测任务中常用的一种方法,其中,MD5算法是应用最为广泛的Hash检验函数。然而,在使用MD5算法对网页内容进行校验时,网页内容篡改前后所对应的Hash值存在一定的碰撞问题。针对上述问题,提出了一种面向网页篡改检测的混沌MD5算法,通过基于明文分组的动态参数模型对传统MD5算法的静态参数进行优化,并采用整数帐篷映射对明文分组进行多次迭代,增强算法的抗碰撞性。实验表明,和传统MD5算法相比,混沌MD5算法的Hash值绝对距离与理想值的偏差率减小了0.6047,有效降低了网页篡改检测过程中的Hash值碰撞概率。关键词:网页篡改;MD5算法;碰撞攻击;帐篷映射Abstract:With the increasing seriousness of webpage tampering problem,webpage tampering detection technology hasbecome a hot research topic in recent years.Hash function verification is a commonly used method in webpage tamperingdetection tasks.Among them,the MD5 algorithm is the most widely used Hash verification function.However,when theMD5 algorithm is used to verify the webpage content,there is a certain collision problem between the corresponding Hashvalues before and after the webpage content is tampered with.Aiming at the above problems,this paper proposes achaotic MD5 algorithm for webpage tampering detection.The static parameters of the traditional MD5 algorithm are opti-mized through the dynamic parameter model based on plaintext grouping,and the integer tent mapping is used to performmultiple iterations on the plaintext grouping to enhance the collision resistance of the algorithm.Experiments show that,compared with the traditional MD5 algorithm,the deviation rate between the absolute distance of the hash value generatedby the chaotic MD5 algorithm and the ideal value is reduced by 0.6047,which effectively reduces the collision probabilityof the hash value in the process of webpage tampering detection.Keywords:webpage tampering,MD5 algorithm,collision attack,tent map107面向网页篡改检测的混沌MD5算法的研究生成两个内容不同但Hash值相同的文件。文件“1.txt”和“2.txt”是由碰撞生成器生成的两个文件,其内容存在多处差异。为便于显示,此处用十六进制形式表示文件内容的二进制比特流,如图1所示:图1文件“1.txt”和“2.txt”的内容然而,使用MD5算法分别对两个比特流进行运算后所生成的Hash值却完全相同,如图2所示:图2文件“1.txt”和“2.txt”的Hash值在网页篡改检测时,无论校验内容是网页源码,还是网页图片,MD5算法都将其转换为二进制比特流进行计算。因此,当攻击者用一个与正确网页的Hash值相同的比特流替换原网页内容时,将导致Hash函数校验失效。因此,在网页篡改检测任务中,直接使用传统MD5算法对网页内容进行校验存在一定的安全风险,需要进一步提升算法的抗碰撞性。2混沌MD5算法的设计2.1 MD5算法Hash算法又称散列算法,它能把任意长度的输入经过转换变成固定长度的输出,该输出被称为Hash值,计算公式如公式(1)所示:h=H(M)(1)式中,H()表示散列函数,M表示任意长度的明文,h表示固定长度的Hash值。MD5算法能够将一个任意长度的明文消息转化为一个128 bit的Hash值,算法实现的具体过程描述如下:填充附加位:首先对明文消息进行填充,使其比特位数对512取余为448。填充时先在消息末尾填充一个1,再填充若干个0,直至消息长度满足条件。填充明文消息长度:将原明文消息长度用64 bit表示并填充在消息末尾。若明文消息长度超过64 bit,则取低64位进行填充。消息分组:将填充后的消息以512 bit为单位分成N组,每组又可表示为1632 bit。链接变量初始化:MD5算法采用串行方式对分组消息进行处理,使用4个32 bit的寄存器存放中间Hash值。计算开始前先对4个链接变量进行初始化,分别将A、B、C、D赋值给四个寄 存 器a、b、c、d。其 中A=0 x67452301,B=0 xefcdab89,C=0 x98badcfe,D=0 x10325476。分组处理:MD5算法的主流程执行4轮循环,如图3所示:图3MD5算法的主流程4轮循环的区别在于每轮使用的非线性函数P不同,如公式(2)所示:P=F(X,Y,Z)=(X&Y)|(X)&Z)第1轮G(X,Y,Z)=(X&Z)|(Y&(Z)第2轮H(X,Y,Z)=XYZ第3轮I(X,Y,Z)=Y(X&(Z)第4轮(2)式中,&表示按位与,/表示按位或,表示异或,表示按位取非,X、Y、Z表示比特流数据。每一轮循环使用不同的非线性函数对消息分组Mi(0iN-1)进行16次迭代,迭代公式如公式(3)所示:a=b+(a+P(b,c,d)+mj+tk)sk)(3)式中,mj(0j15)表示第j个32位子分组,tk(0k63)表示一个常数,sk表示循环左移sk位。此处的tk和sk都是一组给定的常数。结果输出:当分组处理完成后,将第四轮输出的a、b、c、d分别加上A、B、C、D,组成一个128 bit的散列值,即为最后的Hash值。2.2帐篷映射帐篷映射(Tent Map)是一种典型的混沌系统,具有良好的均匀分布特性,其定义如公式(4)所示:F:xi+1=xixi0,)1-xi1-xi,1(4)式中,控制参数(0,1),状态变量xi0,1。由定义可知,帐篷映射会产生大量浮点数运算,严重影响MD5算法的运算速度,因此文献10提出了整数帐篷映射,将公式(4)由实数域运算转换为整数域运算,如公式(5)所示:G:xn+1=2xn+1xn0,2-1)2(2-1-xn)xn2-1,2-1(5)式中,参数限制了整数帐篷映射的映射空间,映射G服从0,2-1上的均匀分布。整数帐篷映射依然拥有实数域帐篷映射的伸长和折叠特性。其中,伸长特性导致了相邻点的指数分离,保证了初值敏感性,而折叠特性则保证了生成序列的有界性。2.3基于整数帐篷映射的动态MD5算法设计为了进一步提高MD5算法的抗碰撞性,本文将MD5函数与帐篷映射相结合,提出了一种基于整数帐篷映射的动态MD5算法(Integer Tent Map Based Dynamic MD5 Algorithm,TMD5),分别从连接变量初始化和分组处理两方面对原算法进行优化。TMD5算法首先引入了基于明文分组的动态参数模型,使用非线性函数对明文分组进行运算,增强了参数项与明文的关联度。同时,TMD5算法在分组处理过程中,使用整数帐篷映射对消息子分组进行预处理,通过多次迭代加快消息的混淆与扩散。(