在实践中使用多个哈希算法的输出而不是单个算法的输出是否更安全(假设输出大小相同)?
在这种情况下,我所说的安全是指防止碰撞和功能可逆性。
一个特定的示例是使用来自 SHA-512 的 128 位加上来自 MD5 的 128 位,而不是使用来自 SHA-512 的 256 位。
我的直觉是,从理论上讲,这会削弱函数,因为已知的针对 MD5 的攻击会有效地减少组合函数的输出大小。然而,在实践中,是否更难同时找到两种算法的碰撞/反转-因为它会涉及额外的理论工作,而不是使用现有(或即将发布的)已发布的?
编辑:
澄清一下,我只是询问不可逆性和抗碰撞性的基本属性——而不是关于哈希函数的任何特定用途,例如从密码中派生密钥(在其他问题中有很好的介绍)或使用输出作为唯一标识符.
另一种表达方式是“将哈希函数定义为其他两个哈希函数的串联是否比那些更好?”。另外,我(有点)意识到,理论上的信息,它不可能。