SHA-3(Secure Hash Algorithm-3)過程簡述

? ? ? ? 本文為對結(jié)城浩所著 《圖解密碼技術(shù)》一書中論述的SHA-3在2012年確定的標(biāo)準(zhǔn)算法Keccak用更簡潔的方式描述下,力求讓無專業(yè)數(shù)學(xué)的朋友們也能了解算法過程。

? ? ? ?

圖(一)

(圖一)Keccak過程:將需要Hash運(yùn)算的消息補(bǔ)全并分為r個(gè)bit的最小整數(shù)倍個(gè)輸入分組;用全0的r個(gè)bit與輸入分組進(jìn)行XOR異或操作,再補(bǔ)充c個(gè)干擾bit一起輸入函數(shù)f( )中進(jìn)行運(yùn)算;運(yùn)算結(jié)果繼續(xù)與后續(xù)分組進(jìn)行同樣處理。在輸入分組處理完后形成輸出分組,根據(jù)需要的Hash散列結(jié)果長度再通過函數(shù)f( )獲得多個(gè)輸出分組。

圖(二)

(圖三)至(圖七)為函數(shù)f( )算法。算法基本思想是用小正方體組成的長方體去裝載b個(gè)bit,每個(gè)小正方體里裝載一位bit。函數(shù)要對所裝載的這些bit循環(huán)處理24輪,每輪5個(gè)步驟。

? ? ? ?

圖(三)

圖(三)第一步驟:在(X,Y)切面,對每個(gè)bit,用與該點(diǎn)位置不同的兩列各自5個(gè)bit異或相加后,再與改bit異或運(yùn)算。

圖(四)

圖(四)第二步驟:各(Y,Z)切面中所有bit,沿Z軸進(jìn)行平行移動(dòng)。

圖(五)

圖(五)第三步驟:在(X,Y)切面,對所有bit進(jìn)行移位互換。

圖(六)

圖(六)第四步驟:對與X軸平行的每一行,將每一bit與另外兩個(gè)bit計(jì)算結(jié)果再進(jìn)行異或操作,得到新的行。

圖(七)

(圖七)第五步驟:亦即每輪最后,用一串常數(shù)對與Z軸平行的每道的所有bit進(jìn)行異或操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容