在哈希算中,除了大名鼎鼎的SHA家族和MD家族外,还有很多不算太出名的算法,比如我们之前了解的MurmurHash算法,再比如我们今天的主角RipeMD算法。

RipeMD算法简介

和非加密散列函数MurmurHash算法不同,RipeMD算法是一种加密哈希函数,是由COSIC 研究小组在1996年发布的。RipeMD是以MD4为基础原则所设计的,所以其本质上与MD4一样。

RipeMD是针对MD4和MD5算法缺陷分析提出的算法,是设计给学术社群所使用的。它的处理的函数块大小是512bit,因此可以作为输入的消息应该是512的倍数,如果信息不是512bit的整数倍,则追加Padding补齐相对的位数。

RipeMD算法

RipeMD算法的分类

  • RipeMD-128:该算法是1996年首次发布的版本,其已经被发现存在潜在的安全问题。
  • RipeMD-160:该算法是RipeMD-128的改进版,并且是RipeMD家族中最常见的版本。其设计原理是开放的,具有不错的抗碰撞性,且能表现出理想的雪崩效应,其性能与SHA-1相似。
  • RipeMD-256和RipeMD-320:算法的设计者并没有真正设计这两种标准,它们是在128位和160位的基础上修改了初始参数和s-box来达到输出为256和320位的目的。这只是减少碰撞发生的机率,但没有提升安全等级。

RipeMD-160的运算过程

由于RipeMD算法是建立在MD算法的基础之上,所以其添加数据的方式和MD5完全一样。RipeMD-160会先将信息分成512的倍数,每个块再分成16个词,每个词作为块,每次输入5个进入一次哈希运算,输出一个哈希值位数为32的哈希值,所有的块计算完后将获得5个32位的哈希值,把它们连接起来就能够获得160位的哈希值,也就是最终的哈希值。

RipeMD-160

RipeMD算法的应用

RipeMD算法目前使用最多的是RipeMD-160,它是在SHA-1之后产生的,但与SHA算法相比,它的应用非常少,主要原因是RipeMD的设计出新是学术研究而非商业安全保密。

但由于RipeMD-160并没有任何专利所限制,很多场景还是会选择使用该算法。目前RipeMD-160被广泛应用于比特币中,主要是用于在区块链中生成比特币的地址信息。

免责声明:素材源于网络,如有侵权,请联系删稿。