簡述SHA-1安全散列算法

在之前的文章中,我們已經(jīng)了解了不少加密算法,今天我們來聊一個安全散列算法——SHA-1安全散列算法,它的全稱為“Secure Hash Algorithm 1”,中文名為“安全散列算法1”,是一種密碼散列函數(shù),由美國國家安全局設(shè)計,并由美國國家標(biāo)準(zhǔn)技術(shù)研究所發(fā)布。

SHA-1安全散列算法

SHA-1算法原理

對于長度小于2^64位的消息,SHA-1會產(chǎn)生一個160位的消息摘要。當(dāng)接收到消息的時候,這個消息摘要可以用來驗證數(shù)據(jù)的完整性。在傳輸?shù)倪^程中,數(shù)據(jù)很可能會發(fā)生變化,那么這時候就會產(chǎn)生不同的消息摘要。

SHA-1算法流程

步驟 1:對輸入的數(shù)據(jù)進行填充,使得數(shù)據(jù)位長度對512求余的結(jié)果為448。填充比特串的最高位補一個 1,其余位補0。附加填充總是要進行的,即使消息的長度滿足所要求的長度。

步驟 2:將64比特加在報文后表示報文的原始長度,使報文長度為512比特的倍數(shù)。

步驟 3:一個160位MD緩存用以保存中間和最終的散列函數(shù)的結(jié)果。它可以表示為32位寄存器(A,B,C,D,E)。初始化為 A=67452301,B=EFCDAB89,C=98BADCFE, D=10325476,E=C3D2E1F0。前四個是與MD5相同的,但存儲為big-endian format,即將高序字節(jié)存儲在起始地址。

步驟 4: 以512比特(16個字)分組處理消息。此算法的核心就是稱為壓縮算法(compression function)的模塊。這個模塊包括4次循環(huán),每次循環(huán)又包含20個處理步驟。4次循環(huán)具有相似的結(jié)構(gòu),但每次循環(huán)使用不同的基本邏輯函數(shù),稱為 f1,f2,f3,f4。

步驟 5:全部L個512位數(shù)據(jù)塊處理完畢后,輸出160位消息摘要。

SHA-1安全散列算法

  • 看到這是不是覺得還是挺熟悉的,沒錯,SHA-1對任意長度明文的預(yù)處理和MD5的過程是一樣的,即預(yù)處理完后的明文長度是512位的整數(shù)倍,但是有一點不同,那就是SHA-1的原始報文長度不能超過2的64次方,然后SHA-1生成160位的報文摘要。因此SHA-1算法簡單而且緊湊,更容易在計算機上實現(xiàn)。

差異

SHA-1安全散列算法

  1. 安全性:SHA-1所產(chǎn)生的摘要比MD5長32位。若兩種散列函數(shù)在結(jié)構(gòu)上沒有任何問題的話,SHA-1比MD5更安全。
  2. 速度:兩種方法都是主要考慮以32位處理器為基礎(chǔ)的系統(tǒng)結(jié)構(gòu)。但SHA-1的運算步驟比MD5多了16步,而且SHA-1記錄單元的長度比MD5多了32位。因此若是以硬件來實現(xiàn)SHA-1,其速度大約比MD5慢了25%。
  3. 簡易性:兩種方法都是相當(dāng)?shù)暮唵?,在實現(xiàn)上不需要很復(fù)雜的程序或是大量存儲空間。然而總體上來講,SHA-1對每一步驟的操作描述比MD5簡單。

SHA-1在許多安全協(xié)定中廣為使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,但SHA-1的安全性卻被密碼學(xué)家嚴(yán)重質(zhì)疑,于是就出現(xiàn)了SHA-2,作為SHA-1的升級版,安全性自然有所提高,小編會在之后的文章中繼續(xù)為大家講解,敬請期待。

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