SHA-3(Secure Hash Algorithm-3)過(guò)程簡(jiǎn)述

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

? ? ? ?

圖(一)

(圖一)Keccak過(guò)程:將需要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é)果長(zhǎng)度再通過(guò)函數(shù)f( )獲得多個(gè)輸出分組。

圖(二)

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

? ? ? ?

圖(三)

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

圖(四)

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

圖(五)

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

圖(六)

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

圖(七)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容