“在开放的学术界中设计”“
”不受任何限制专利”
我很少看到RIPEMD用于商业软件,或针对软件开发人员的文献中提到过。 RIPEMD与SHA-x上的旧Stackoverflow.com线程并不能帮助我理解原因。具有相同摘要大小的哈希函数? RIPEMD为什么没有看到更广泛的商业采用?
#1 楼
最初是MD4,然后是MD5; MD5是后来设计的,但是两者都同时作为开放标准发布。之所以设计MD5是因为怀疑MD4中的弱点(这是非常真实的!)。因此,MD5是第一个(并且当时被认为是安全的)具有公开可读规范的高效哈希函数。 MD5立即受到广泛欢迎。最初的RIPEMD是MD4的变体。实际上是两个并行的MD4实例,在某些地方交换数据元素。 RIPEMD的效率略低于MD5。另外,由于它基于MD4,因此存在一些与MD4相同的缺点(Wang在2004年与原始RIPEMD发生了碰撞)。最后但并非最不重要的一点是,原始RIPEMD没有公开的免费规范(在科学大会上发布,但是该文章在网络上免费提供;当我为sphlib实现RIPEMD时,我必须获得一个副本来自函数作者之一Antoon Bosselaers)。因此RIPEMD仅取得了有限的成功。
NIST看到了MD5,并得出结论说有些事情令他们不满意。特别是128位输出,就计算机计算性能的不断提高而言,它必将变得“脆弱”。因此,他们设计了具有160位输出的“ SHA”,不久将其修改为SHA-1(旧的SHA俗称“ SHA-0”)。在美国联邦政府的支持下,这是一个强大的动力,而NIST用清晰,免费的规范以及详细的测试向量,做得很好。因此SHA-1取得了成功。
RIPEMD的作者在MD5中看到了与NIST相同的问题,并对RIPEMD-160(以及简化版本的RIPEMD-128)的设计做出了反应。 RIPEMD-160似乎非常坚固。但是,它出现在SHA-1之后,并且比SHA-1慢,因此仅取得了有限的成功。 RIPEMD-160的最显着用途是在PGP中,它被设计为对政府机构普遍的蔑视姿态,因此使用RIPEMD-160而不是SHA-1是合理的。那么NIST在散列函数(和其他加密原语)定义中的领导作用仅得到加强,因此SHA-2很快被采用,而竞争的散列函数(例如RIPEMD-256,RIPEMD-的256位版本) 160,或者是Tiger或Whirlpool)也只能在小众产品中找到自己的路。
摘要:对于商业采用而言,对于首先到达的功能以及由NIST等标准化机构推动的功能而言,这是巨大的奖励。 。
关于使用RIPEMD-160还是RIPEMD-256是个好主意的问题:
RIPEMD-160得到了合理的选择曝光和分析的份额,并且看起来很稳健。但是就目前的方式而言,它的输出长度有点太小(如果您使用128位密钥加密,则出于一致性考虑,应该针对具有256位输出的哈希函数),并且性能也不是很好。通常的建议是坚持使用SHA-256,这是“标准”,并且可以使用更优化的实现方式。
RIPEMD-256是一个相对较新且晦涩的设计,即它没有像SHA- *,请谨慎使用。
所以我的建议是:使用SHA-256。通过使用RIPEMD-160或RIPEMD-256,您可能不会遇到实际的安全问题,但是至少,您必须证明您的非标准选择是合理的。
评论
$ \ begingroup $
好的答案。您知道在哪里可以找到RIPEMD(128位)的公共可读规范吗?我已经找到了C实现,但是很高兴看到一个规范。
$ \ endgroup $
–卢阁下。
18年9月3日在19:53
$ \ begingroup $
在以下位置提供支持:homes.esat.kuleuven.be/~bosselae/ripemd/rmd128.txt(开发者网站)
$ \ endgroup $
–卢阁下。
18/09/3在21:52
评论
强制性图表:valerieaurora.org/hash.html