簡(jiǎn)述RipeMD算法

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

RipeMD算法簡(jiǎn)介

和非加密散列函數(shù)MurmurHash算法不同,RipeMD算法是一種加密哈希函數(shù),是由COSIC 研究小組在1996年發(fā)布的。RipeMD是以MD4為基礎(chǔ)原則所設(shè)計(jì)的,所以其本質(zhì)上與MD4一樣。

RipeMD是針對(duì)MD4和MD5算法缺陷分析提出的算法,是設(shè)計(jì)給學(xué)術(shù)社群所使用的。它的處理的函數(shù)塊大小是512bit,因此可以作為輸入的消息應(yīng)該是512的倍數(shù),如果信息不是512bit的整數(shù)倍,則追加Padding補(bǔ)齊相對(duì)的位數(shù)。

RipeMD算法

RipeMD算法的分類

  • RipeMD-128:該算法是1996年首次發(fā)布的版本,其已經(jīng)被發(fā)現(xiàn)存在潛在的安全問(wèn)題。
  • RipeMD-160:該算法是RipeMD-128的改進(jìn)版,并且是RipeMD家族中最常見(jiàn)的版本。其設(shè)計(jì)原理是開(kāi)放的,具有不錯(cuò)的抗碰撞性,且能表現(xiàn)出理想的雪崩效應(yīng),其性能與SHA-1相似。
  • RipeMD-256和RipeMD-320:算法的設(shè)計(jì)者并沒(méi)有真正設(shè)計(jì)這兩種標(biāo)準(zhǔn),它們是在128位和160位的基礎(chǔ)上修改了初始參數(shù)和s-box來(lái)達(dá)到輸出為256和320位的目的。這只是減少碰撞發(fā)生的機(jī)率,但沒(méi)有提升安全等級(jí)。

RipeMD-160的運(yùn)算過(guò)程

由于RipeMD算法是建立在MD算法的基礎(chǔ)之上,所以其添加數(shù)據(jù)的方式和MD5完全一樣。RipeMD-160會(huì)先將信息分成512的倍數(shù),每個(gè)塊再分成16個(gè)詞,每個(gè)詞作為塊,每次輸入5個(gè)進(jìn)入一次哈希運(yùn)算,輸出一個(gè)哈希值位數(shù)為32的哈希值,所有的塊計(jì)算完后將獲得5個(gè)32位的哈希值,把它們連接起來(lái)就能夠獲得160位的哈希值,也就是最終的哈希值。

RipeMD-160

RipeMD算法的應(yīng)用

RipeMD算法目前使用最多的是RipeMD-160,它是在SHA-1之后產(chǎn)生的,但與SHA算法相比,它的應(yīng)用非常少,主要原因是RipeMD的設(shè)計(jì)出新是學(xué)術(shù)研究而非商業(yè)安全保密。

但由于RipeMD-160并沒(méi)有任何專利所限制,很多場(chǎng)景還是會(huì)選擇使用該算法。目前RipeMD-160被廣泛應(yīng)用于比特幣中,主要是用于在區(qū)塊鏈中生成比特幣的地址信息。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。