信息来源:Cnsea N xFocus
https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=39807
http://www.cnsea.org/forum/viewtopic.php?t=945
watercloud
国际密码协会最新消息。
Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD.
睡了一觉,醒来世界就不一样了!
pdf 4 down:
https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=39807
Auril
MD5加密算法简介
一、算法实现(转载自绿色兵团)
1、MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果
是448。
即数据扩展至K*512+448位。即K*64+56个字节,K为整数。
具体补位操作:补一个1,然后补0至满足上述要求
2、补数据长度:
用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数据
就被填
补成长度为512位的倍数。
3. 初始化MD5参数
四个32位整数 (A,B,C,D) 用来计算信息摘要,初始化使用的是十六进制表示
的数字
A=0X01234567
B=0X89abcdef
C=0Xfedcba98
D=0X76543210
4、处理位操作函数
X,Y,Z为32位整数。
F(X,Y,Z) = X&Y|NOT(X)&Z
G(X,Y,Z) = X&Z|Y¬(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X|not(Z))
5、主要变换过程:
使用常数组T[1 ... 64], T为32位整数用16进制表示,数据用16个32位的
整
数数组M[]表示。
具体过程如下:
/* 处理数据原文 */
For i = 0 to N/16-1 do
/*每一次,把数据原文存放在16个元素的数组X中. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end /结束对J的循环
/* Save A as AA, B as BB, C as CC, and D as DD. */
AA = A
BB = B
CC = C
DD = D
/* 第1轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + F(b,c,d) + X[k] + T) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* 第2轮* */
/* 以 [abcd k s i]表示如下操作
a = b + ((a + G(b,c,d) + X[k] + T) <<< s). */
/* Do the following 16 operations. */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
/* 第3轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + H(b,c,d) + X[k] + T) <<< s). */
/* Do the following 16 operations. */
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/* 第4轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + I(b,c,d) + X[k] + T) <<< 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的循环*/
6、输出结果。
以上代码来自: 源代码数据库(SourceDataBase)
当前版本: 1.0.423
作者: Shawls
个人主页:
Http://Shawls.Yeah.Net
E-Mail:
ShawFile@163.Net
QQ: 9181729
leaf_
原文的大意是
-------
MD5是一种HASH函数,是MD4的加强版本。1933年BERT DEN BOER和ANTOON BOSSELAERS发现MD5的伪冲突,同样一个信息来自两个不同的初始值。H.DOBBERTIN发现一个自由起始的冲突包含两个不同的512位的信息(来自于一个选定的初始值IV’)
我们的攻击能找到许多真冲突,它们有两个1024位的信息组成(与IV0进行MD5运算前的原文有关系)
IV0:
A0=ox67452301,B0=oxefcdab89,
C0=0x98badcfe,D0=0x10325476
M'=M+C1,C1=(0,0,0,0,2^31,..,2^15,..,2^31,0)
Ni'=Ni+C2,C2=(0,0,0,0,2^31,..,-2^15,..,2^31,0)
(4,11,t 14 位为非零)
由此可得
MD5(M,NI)=MD5(M',NI')
在IBM P690主机上,大约需要一小时来获得这样的M和M',之后只需要15秒至5分钟就能解出Ni和Ni',这样(M,Ni)和(M',Ni')能产生同样的HASH值。此外,我们的攻击对任何给定的初始值均有效。
下面是两对1024位信息产生的冲突,这两个实例有着相同第一部分的一半512位
。。。。。。。。。。。略。
------------
我的理解是并没有通过什么MD5逆运算得到原文,只是说发现了不同的原文可以得到相同的HASH值(原文称为冲突)。而利用冲突HASH可以通过某种运算(可能是某种算法高明的猜解),能得出两对1024位的信息组(即M,N和M',N')M,N为原文,M',N'为可以和原文产生相同HASH(冲突)的信息。得出M对应的M'需要1小时左右。而后只需要15秒至5分钟就能得出N和N'。文章只能两组1024位的信息做了论证,并宣称对于任意长度的信息均可破解。
呵呵 至于这么快的算法和算法实现的代码是有了,可是一般人是看不到喽。。
不知我的理解是否有误??
IBM P690
-----------------
1.9GHz Power4+处理器的pSeries 690服务器。IBM还计划推出一款新存储器卡,使这种高端系统可以支持的内存数量翻一番。
p690是IBM pSeries系列Unix服务器的最高机型,配置8~32颗处理器。目前它支持高达512GB内存。6月25日IBM将推出新的128GB DIMM存储器卡,把最高内存数量提高到1TB。
另讯 IBM eServer p690服务器在其最新的TPC-C基准测试中,以每分钟可完成1025486次事务处理创造了新的性能纪录。这台运行DB2通用数据库v8.1的IBM eServer p690服务器拥有32个Power4+微处理器,从而使这台p690系统的性价比一举达到了5.43美元/tpmC。
-------
穷人还是玩不起这种游戏地。。
denglu
3 Collisions for MD4
MD4 is designed by R. L. Rivest[8] . Attack of H. Dobbertin in Eurocrypto'96[2] can find collision with
probability 1/222. Our attack can find collision with hand calculation, such that
) 0 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 2 , 2 , 0 ( , 16 31 28 31 C C M M
and ) ( 4 ) ( 4 M MD M MD .
M1
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9
M1
4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9
H 5f5c1a0d 71b36046 1b5435da 9b0d807a
M2
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 f713c240 a7b8cf69
M2
4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 f713c240 a7b8cf69
H e0f76122 c429c56c ebb5e256 b809793
Table 3 Two pairs of collisions for MD4
我翻译一下关于MD4冲突的部分
MD4的冲突
MD4是被R. L. Rivest[8] . Attack of H. Dobbertin所设计的,发表在Eurocrypto'96[2] ,
按照这个算法发现冲突的可能性是 1/2^22 我们的攻击能手动计算的发现冲突
如下:
M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )
注:这里他是按照 4*8=32 作为一个单元来处理
下面是例子
M1的消息内容是(16进制表示)
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9
那么按照上面的计算得到的M1'是
4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9
那么比较一下你会发现就是上面的 0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0
算MD4的时候,你会发现
MD4(M1)=MD4(M1')=5f5c1a0d 71b36046 1b5435da 9b0d807a
他妈的,真牛!!!
MD5(M,NI)=MD5(M',NI')
这个好像是那个论文里面的,把1024切割成为2块,每个512
robur
上边有人提到了p690的配置,真是。。。。现在手上能像我这样有双志强机器的人都很少,何况这么变态的配置,要是拿p4处理器,得算多长时间啊?
不过两个原文可以运算成一个密文很正常,像这种消息摘要试的函数,不可能逃离这个规律的。有冲突又有什么用呢?伪造?
打个比方,假设你得到一个用户的口令的MD5值(例如e10adc3949ba59abbe56e057f20f883e,这个值应该对应123456),然后你去运算。不知算了多久,终于找到了一个通过MD5函数后,散列值是e10adc3949ba59abbe56e057f20f883e的一个我也不知道是什么的字符串(反正不是123456,先这样叫吧)。然后你把这个字符串复制到密码框里,填好用户名,点击“登录”。可谁知道服务器端的asp是这样写的:
pwd=Request.Form("pwd")
pwd=Replace(pwd,"'","")
if Not IsNumeric(request("pwd")) then
response.write "提交参数非法!"
response.end
end if
回头一看,注册页面上写着:“请使用数字作为密码,否则不能注册!”
举个例子,当然不是真的。
denglu
如下:
M'=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )
这里我写错了
实际是
M'=M+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )
这里的M是原消息
M'是新的消息
另外关于MD5他那个我不是很明白,后来查了查,感觉原因是对于
Dobbertin[3] found a free-start collision which consists of two different 512-bit
messages with a chosen initial value 0 V I .
的不理解
那个H.DOBBERTIN的论文
关于这个论文,提一下最后的部分
The computation of such a collision takes about 10 hours on a Pentium PC
也就是说,这个冲突大概经过pentium 10个小时的计算就可以发现了
关于p690 ,的确差不多是除了Z系列以外IBM的性能最好的(如果错了,欢迎指正)
但是p690跑一个小时的,并不是说我们PC就要跑1年了:)
leaf_
M'=M+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )
这里的M是原消息
M'是新的消息
--------------------------
我明白你的意思。我的意思是得到M'后可以再套这个公式M''=M'+C C=(0,2^31,-2^28+2^31, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,-2^16,0,0,0 )
得到M''这样反复叠代不就有N个与M产生冲突的信息了吗?(M'',M''',M''''..............)
算法是死的,生成的摘要也是死的。不可能由已知摘要生成任意信息,依然没有利用价值。
MD5依然很强。。
---------------
free-start collision which consists of two different 512-bit
messages with a chosen initial value 0 V I .
我的理解是 对于任意起始产生冲突的信息来说 它总是由两个不同的512位信息伴随一个选定的初始值0VI组成/由两个512位信息组成,与原文IV0有关。
bingle
问题是md5摘要是128位,那么也就是说最后的摘要共有2^128种可能,可输入的数据呢?不只这么多把,我们就以这2^128种摘要结果作为输入,假设他们没有冲突,恰好一一对应。我要是再来任何一个非128位的输入,那么结果是什么?不论是什么也必然和前边的2^128种之一重复,也就是冲突。
其他摘要也是一样呀,所以定长摘要没有冲突是不可能的呀,不明白什么样才能满足:"(2) It must be essentially impossible to find find a "collision", that is, to find two different data values that have the same digest."
不懂加密,乱说的,只是想不明白而已。
Thinkahead
引用 (bingle @ 2004-08-23 14:05)
问题是md5摘要是128位,那么也就是说最后的摘要共有2^128种可能,可输入的数据呢?不只这么多把,我们就以这2^128种摘要结果作为输入,假设他们没有冲突,恰好一一对应。我要是再来任何一个非128位的输入,那么结果是什么?不论是什么也必然和前边的2^128种之一重复,也就是冲突。
其他摘要也是一样呀,所以定长摘要没有冲突是不可能的呀,不明白什么样才能满足:"(2) It must be essentially impossible to find find a "collision", that is, to find two different data values that have the same digest."
不懂加密,乱说的,只是想不明白而已。
这里并不是说我们的算法要避免冲突,正如你所说,这是不可能的!
而是说,即使我们知道一定会有许多的输入数据会生成同样的摘要值,
但是算法能够做到我们“几乎不可能”找到这样的两个值出来!
这在过去看是几乎不可能的事情,需要2^128次运算,耗费几百万年的时间。
现在可能了!能够降到2^40次运算,耗费几天的时间而已!
我也没有仔细研究,现在暂时的理解是这样。
watercloud
第二点说的几乎不可能出现两个不同数据摘要相同,
当然不是完全没有这种可能性,而是发生几率极小,
如100万年可能出现几次。
安全算法定义的标准参考于数据计算量导致的不可计算性。
当有人想伪造签名需要动用全球所有计算机,并考虑
计算机计算能力2年翻番的效应也需要计算几万年,那么
这个签名算法也是安全的。
但现在的问题是MD4/MD5,已知摘要情况下仅仅需要几小时
就能获得一个冲突串!!!这证明了该算法非安全性。
而在此之前大家都认为此算法是安全的,并得到了政府/商业/军事
的应用,因此影响非常大!
生活中论坛/操作系统中都大量的使用了该算法!
128不是指可输入的数据长度,而是算法每轮处理输入的长度。
如何利用?
如果能快速得到一个冲突串的话,一个简单的利用就是:
Linux的口令文件存放的是MD5,不需要像以前那样
需要john等工具根据字典来暴力破解UNIX口令文件了。
直接得到一个冲突串就可以用来登陆了!
我大致读了一下他的文章,感觉没那么严重
她的意思不是说所有的M,N都能找到碰撞的M‘,N’
而是一些特殊的薄弱的M,N可以找到
不过这些特殊的M、N相对分布比较广泛,使用她说的那机器可以在1个小时内穷举找到这样的M、N,而对应碰撞的M‘与N’是与M、N有一个固定算法来计算出来的,否则就难以理解要1个小时的时间来计算是如何的
她的“与初始值无关”就是说穷举从任意的M、N开始,都大概可以在1个小时左右找到符合碰撞的值,也就是说这些碰撞是均态分析的。
因此我觉得这个对目前使用MD5算法的系统影响还是比较小的
但是使用MD5做签名的会受到冲击,因为理论上的唯一性是被证明失效了,可能产生的M,N是可以被别人伪造的
但决大部分的的M,N还是安全的
wetu
论文可在
http://eprint.iacr.org/2004/199.pdf找到。
http://www.freedom-to-tinker.com/archives/000664.html也有一些相关的讨论。
国外的新闻有时候也喜欢会把严肃的学术讨论加上耸人听闻的标题。例如以前有人做的SSH keystroke timing analysis方面的研究,也被说成是SSH被攻破了。
个人同意flashsky兄分析。虽然collision的问题肯定会对MD5和其它算法的应用和发展造成很大的影响,但需要澄清是这种“攻破”并不是“对任一串数据,都可以找到和它有同样HASH的另一串数据”。
WinEggDrop
对于MD5会出现Collision的问题,国外很多资料也有提过的,
在MD5CRACK那个破解程序的文档中也有提及过。对于这个
问题我的理解是这样的:
1。MD5(6位长度的串) = MD5(17位长度的串) = MD5(20位长度的串) = ........... = X
2.MD5(16位长度的串) = MD5(24位长度的串) = MD5(30位长度的串) = ........... = Y
在例子1中,如果要破一个MD5值为X的密码,那么可以很容易
在6位长度的串中穷举得到,时间可以很短,因为在6位长度的
串中,存在一个Collision。但在例子2中,如果要破一个MD5值
为Y的密码,最短字符串的Collision是在16位长度的串中,这可
不可能在短时间中得到结果。
以上理解都是基于国外关于MD5的Collision的资料,因为我在
网吧无法看到这个PDF。如果有错误,请指出。
现时有一种方法可以更快的破解出在15位长度以内的MD5的密码。众所周知,传统的破解MD5密码的程序都是使用穷举的方法
,都是先穷举所有组合,然后将组合到的串生成MD5的值,然后
和要破的那个MD5值比较。将组合到的串生成MD5的值这部分
占据了破解的大部分时间,于是有人就将15位长度以内大小写
字母,数字和符号的全部组合和它的MD5值都写入一个可索引的
文件中(文件是大约26G大小),这样破解时就省却很多很多
时间,一般在10来分钟内就能得到结果。
还有是加拿大一所大学正在研制一种比现时快1000多倍的CPU
蕊片,如果成功的话,破解MD5和其它算法,不再是一件遥不
可及的事,而且相信到那里,很多算法都要被重写。
martin
--------------------------------------------------------------------------------
http://www.cryptography.com/cnews/hash.html
hash collision Q&A
Cryptography Research has received many inquiries about the hash collision attacks that were recently announced at the CRYPTO 2004 conference. This document attempts to address these questions.
Q: What hash functions are now broken?
A: Collisions were announced in SHA-0, MD4, MD5, HAVAL-128, and RIPEMD. Antoine Joux presented the collision in SHA-0. The other collisions were found by the Chinese researcher Xiaoyun Wang with co-authors Dengguo Feng, Xuejia Lai, and Hongbo Yu. (See
http://eprint.iacr.org/2004/199.pdf.)
Q: What is a collision attack and a preimage attack?
A: A preimage attack would enable someone to find an input message that causes a hash function to produce a particular output. In contrast, a collision attack finds two messages with the same hash, but the attacker can't pick what the hash will be. The attacks announced at CRYPTO 2004 are collision attacks, not preimage attacks.
Q: What is the connection between digital signatures and hash functions?
A: All major digital signature signing techniques (including DSA and RSA) involve first hashing the data then signing the hash. Raw message data is not signed because of both performance and security reasons.
Q: How might an attacker exploit a collision attack?
A: To exploit a collision attack, an adversary would typically begin by constructing two messages with the same hash where one message appears legitimate or innocuous. For example, suppose the attacker (Charlie) discovers that the message "I, Bob, agree to pay Charlie $ 5000.00 on 4/12/2005." has the same hash as "I, Bob, agree to pay Charlie $18542841.54 on 9/27/2012." Charlie could then try to get Bob (the victim) to digitally sign the first message (e.g., by purchasing $5000 of goods). Charlie would then claim that Bob actually signed the second message, and "prove" this assertion by showing that Bob's signature matches the second message.
Q: What are the implications of collision attacks for code signing systems?
A: Collisions can be a problem for systems that involve signed code. In particular, a collision attack can enable adversaries to construct an innocuous program and a malicious program with the same hash. For example, a trusted compiler/verifier might accept and sign the innocuous program, which could then be substituted for the malicious one. Collision attacks do not allow tampering with arbitrary programs; this would require a preimage attack. (Note: Java accepts MD5 hashes in signatures on JAR files, e.g. see
http://www.hmug.org/man/1/jarsigner.html.)
Q: What are the implications for certificate authorities, such as those issuing SSL web server certificates containing MD5 hashes?
A: Collision attacks do not enable tampering with existing certificates. There is, however, a concern that an adversary might be able to construct a valid certificate request that had a corresponding hash collision with a certificate conferring greater or different powers. For example, a devastating attack would be one that enabled adversaries to obtain a legitimate server certificate with a collision to one containing a wildcard for the domain name and an expiration date far in the future. The use of unpredictable serial numbers early in the certificate data structure may prevent such attacks, but further research is required. From a cryptographic perspective, the best solution to this problem is to transition away from MD5, but this is difficult since many CAs and software programs currently support MD5.
Q: Are all hash functions broken?
A: No. The new attacks affect specific hash functions which happen to share a related class of vulnerabilities. In particular, these attacks are all based on the neutral bit technique of Biham and Chen (see
http://eprint.iacr.org/2004/146.ps). There is no evidence suggesting that strong hash functions cannot be constructed.
Q: Is SHA-1 broken?
A: No. Eli Biham described attacks that work against simplified versions of SHA-1, but there is no suggestion that any known attack technique can be extended to break the full SHA-1. (The attacks presented against SHA-0 are also effective against a 36-round reduced variant of SHA-1, but the standard version of SHA-1 uses a full 80 rounds and has not been compromised.) Although there has been speculation that SHA-1 will fall soon, extending the current results to the full SHA-1 appears to be an extremely difficult problem and we do not anticipate such an attack in the immediate future. Nevertheless, the new results certainly do merit a full re-evaluation of all hash functions.
Q: What is the best known attack against SHA-1?
A: At this point, the best known collision attack against SHA-1 is still a brute-force search. This requires computing on the order of 2^80 (or 1,208,925,819,614,629,174,706,176) arbitrary hashes until two messages happen to hash to the same value.
Q: Do these attacks break HMAC using MD5?
A: No. Because of the way hash functions are used in the HMAC construction, the techniques used in these recent attacks do not apply.
Q: Do these attacks allow somebody to break tools that use MD5 to check for malicious binaries?
A: Not usually, as this would require a preimage attack. It would, however, be possible for someone to construct an innocuous program and a malicious program with the same hash. If this adversary could get the innocuous version on the "good" list (e.g. by having a trusted authority sign the hash value), the malicious program would also be accepted.
Q: What is the difference between SHA-0 and SHA-1? Is SHA-0 widely used?
A: SHA-0 was initially proposed in FIPS 180 (May 1993) as hashing standard by the U.S. government, but was replaced by SHA-1 in FIPS 180-1 (April 1995). SHA-1 adds an additional circular shift operation that appears to have been specifically intended to address the weaknesses found in SHA-0. SHA-0 is not widely used and should not be used in new systems.
Q: Do systems designed by Cryptography Research use any of the hash functions that were broken?
A: No. We normally use AES, triple DES, RSA, and SHA-1 unless there is a reason to use different algorithms. (See the following question for information about SSL.)
Q: Is SSL 3.0/TLS affected by these results?
A: The SSL 3.0 protocol (which was co-authored by Cryptography Research President & Chief Scientist Paul Kocher) uses MD5 and SHA-1 in a redundant fashion in the handshake protocol and also supports MD5 HMAC. Neither use is affected by these attacks. While there is also some concern that signing authorities could be affected (see the question above on certificate authorities), certificate formats and procedures are beyond the scope of the SSL/TLS protocol.
Q: Can the problem be solved by updating hash function implementations to detect the messages that produce collisions?
A: No. The attack methods are general and enable the construction of additional collisions.