Hash函数MD5攻击技术研究(15)
时间:2025-07-11
时间:2025-07-11
Hash函数MD5攻击技术研究
12Hash函数MD5攻击技术研究
在MD5的运算中,第32位的位置既特殊又重要,其“+"和“.”在某种程度上是可以看成一致的。鉴于这一位的特殊性,可以将上面两个等式进行进一步扩展:
2k=2k+I.2k:2k+2_2k+1.2k=…=231.230.229一 .2k
=一(231+230+229+…+2k)式(2.6)
.2k=.2k+1+2k=.2k+2+2“1+2k=…=.231+230+229-...+2k
=(231+230+229一 +2k)式(2.7)
为了便于分析,符号差分可以简化为如下的表示方式:
【k】=【k+1,-k】=【k+2,一(k+1),-k】=…=In一1,-(n一2)…-k】
=【32,-31--',-k】=【一32,-31"-,-k】
【-k】=【-(k+1),k】=【-(k+2),(k+1),k】=…=【-(n一1),(n-2)…k】=【-32,31…,k】
=【32,31…,k】
另外,上面的差分扩展还可以将两个元素联合起来考虑:
【-@+2),k】=【-(k+2),(k+1),一k】=【-(k+1),-k】=【 (k+3),(k+2),(k+1),-k】
=【-(k+3),(k+2),k】=…
在模差分确定后,可以根据具体需要确定符号差分。
2.2.2循环左移的结果分析式(2-10)式(2—9)式(2-8)符号差分扩展在MD5差分路径的控制上有着至关重要的作用,一般情况下,
MD5算法在运算过程中有大量的左循环移位,所以在引入差分之后,符号差分的左循环移位会出现几种不同的情况,需要分别进行分析处理。
例如,文献【24】,设2。=【k+x, (1【+x-1),---,-k],其中1
数为s(用<<<s表示),分三种情况讨论移位后的结果:
当k+x+s<32,移位的结果为(2。<<<s)=2“。;sx≤32-k,,设循环左移的位
当k+x+s>32且k+x<32,移位的结果为(2。<<<s)=2m+1;
当k+x>32,移位的结果为(2。<<<s)=2。砝。
证明过程如下:
1.当k+x+ss32时,.
(2。<<<s)=【k+x,一(k+x一1),-(k+x一2,…),-k,】<<<s
=【k+x+s,.(k+x+s.1),…,-(k+s)】=2k+5mod(232)
2.当k+x+s>32且k+s<32时,式(2.11)
(2。<<<s)=【k+x,-(k+x一1),一(k+x 2,…),-k,】<<<s
=【-32,"--,-(k+x),k+x+s-32,一(k+x+s一32-1),…,一1]=【32,"-,-(k+x),k+x+s一32,一(k+x+s-32-1),…,一1]
上一篇:第二章_多项式练习