evo真人(中国)

文章橫幅PC版
文章橫幅iPad版
文章橫幅手機版

摘要算法有哪些

TIME:2019-03-15 09:20  click: 406 次 來源: 未知

 

1.MD5

MD5是MD4的改進版,用512位分組來操作輸入的信息,產生128位散列值。

MD5算法的計算過程主要包括以下步驟。

(1)預填充

第一步,填充信息使它的位長對512求余的結果是448,即信息的位長被擴展至Nx512+448或N×64+56個字節(N是正整數)。填充的方法是在信息後填充一個1和多個0,直至達到上面的條件。然後,再附加一個64位二進制代表的填充之前信息的長度。顺利获得這兩步的處理,讓消息的長度剛好是512位的整數倍。

(2)主循環

主循環的次數是信息中512位分組的數目。MD5中需要4個32位的連結變量: A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。

每個主循環有4輪(MD4僅僅有3輪)每輪循環均非常近似。在主循環開始前,先將4個連結變量複製到另外4個變量中:A到a,B到b,C到c,D到d。第一輪進行16次操作。每次操作對a、b、c和d中的3個做一次非線性函數運算,然後把得出的結果加第4個變量、512位分組數據和一個常數。再把得到的結果向右環移一個不固定的數,並加上a、b、c、d中之一。最終用此結果代替a、b、c或d中之一。

每個主循環完成以後,將A、B、C、D分別加上a、b、c、d,然後用下一個512位分組數據繼續進行主循環運算,直到全部分組都完成主循環運算。

(3)輸出處理

把最後一個主循環生成的A、B、C、D這四個32位值進行級聯,生成一個128位的摘要值。

2. SHA1

SHA1是以512位分組來操作輸入信息的,得到160位散列值。

SHA1算法的計算過程與MD5類似,主要包括以下步驟。

(1)預填充

填充方法與MD5全部相同。

(2)主循環

主循環的次數是信息中512位分組的數目。SHA1中需要5個32位的連結變量:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476,E=0xc3d2e1f0。

每個主循環有4輪,每輪20次操作(MD5有4輪,每輪16次操作)。在主循環開始前,先將5個連結變量複製到另外5個變量中:A到a,B到b,C到c,D到d,E到e。每次操作對a、b、c、d、e中的3個進行一次非線性運算,然後進行與MD5中類似的移位運算和加運算。

每個主循環完成以後,將A、B、C、D、E分別加上a、b、c、d、e,然後用下一個512位分組數據繼續進行主循環運算,直至全部分組都完成主循環運算。

(3)輸出處理

把最後一個主循環生成的A、B、C、D、E這5個32位值進行級聯,生成一個160位的摘要值。

3.SM3

SM3算法是主要滿足電子認證服務系統等應用需求的摘要算法。

針對長度為l(l<264)比特的消息m,SM3算法顺利获得填充與疊代壓縮,得到雜湊值,其長度為256位。其中填充過程為:假設消息m的長度為l位。第一时间將位“1”添加到消息的末尾,再添加k個“0”,k是滿足l+1+k=448 mod 512的最小的非負整數;然後再加入一個64位的比特串,該比特串是長度l的二進制表示;填充後的消息m’的比特長度是512的倍數。

上一篇:ECC算法優點 下一篇:密碼工作模式有哪些