![](https://csdnimg.cn/release/download_crawler_static/86873086/bg4.jpg)
/* 以 [abcd k s i]表示如下操作
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
/* 然后进行如下操作 */
A = A + AA
B = B + BB
C = C + CC
D = D + DD
end /* 结束对 I 的循环*/
(5) 输出结果
报文摘要的产生后的形式为:A,B,C,D。也就是低位字节 A 开始,高位字节 D
结束。
现在完成了对 MD5 的描述,在附录中给出了 C 形式的程序。
4 摘要
MD5 算法实现很容易,它提供了任意长度的信息的“指纹”(或称为报文摘要)。
据推测要实现
两个不同的报文产生相同的摘要需要 2^64 次的操作,要恢复给定摘要的报文则
需要 2^128 次操作。
为寻找缺陷,MD5 算法已经过非常细致的检查。最后的结论是还需要相关的更好
的算法和更进一步
的安全分析。
5 MD4 和 MD5 的区别
以下是 MD5 和 MD4 的不同点:
1. 加上了第四轮循环。
2. 每一步增加了一个唯一的常数值。
第二轮中的函数 g 从(XY v XZ v YZ)变成了(XZ v Y not(Z)),以减少 g 函数的
均衡性。
6 参考文献
[1] Rivest, R., "The MD4 Message Digest Algorithm", RFC 1320, MIT and RSA
Data Security,
Inc., April 1992.
[2] Rivest, R., "The MD4 message digest algorithm", in A.J. Menezes and
S.A. Vanstone,
editors, Advances in Cryptology - CRYPTO '90Proceedings, pages 303-311,
Springer-Verlag,
1991.
[3] CCITT Recommendation X.509 (1988), "The Directory -
Authentication
Framework."
7 附录 A-参考应用程序