Grøstl
Grøstl 是一款參與NIST散列函數競賽的加密散列函數。Grøstl入選比賽最後五強。 它與AES一樣使用相同的S盒結構。創造者聲稱在酷睿2處理器中其速度達到每字節21.4個周期。
根據提交的文件顯示,Grøstl之名從德語而來。該名稱原指一道奧地利菜,而該菜式的英語名稱則稱為哈希(中文稱之為乞食牛肉)。
像其他MD5/SHA家庭的散列函數,Grøstl將輸入資料分成資料塊,再重複計算 hi = f(hi-1, mi). 然而,Grøstl在每次計算後都保留至少相等於最終哈希值兩倍大小的數值(512位或1024位),直至計算完成再將尾端數值截尾。壓縮函數f 被定義為:
- f(h, m)= P(h ⊕ m)⊕ Q(m)⊕ h
P 和 Q之置換函數都基於Rijndael(AES)研發而成,但該函數分別處理8×8或8×16的字節組,而非4×4字節組。每次壓縮皆牽涉四個操作。
最後數值經由以下函數算出哈希值:Ω(h)= h ⊕ P(h),然後截斷至所需之長度。
Grøstl函數例子
編輯空字串的Grøstl值:
Grøstl-224("") 0x f2e180fb5947be964cd584e22e496242c6a329c577fc4ce8c36d34c3 Grøstl-256("") 0x 1a52d11d550039be16107f9c58db9ebcc417f16f736adb2502567119f0083467 Grøstl-384("") 0x ac353c1095ace21439251007862d6c62f829ddbe6de4f78e68d310a9205a736d8b11d99bffe448f57a1cfa2934f044a5 Grøstl-512("") 0x 6d3ad29d279110eef3adbd66de2a0345a77baede1557f5d099fce0c03d6dc2ba8e6d4a6633dfbd66053c20faa87d1a11f39a7fbe4a6c2f009801370308fc4ad8
即使字串發生小小的改變,雪崩效應會使哈希值大大改變。 例如:
Grøstl-256("The quick brown fox jumps over the lazy dog") 0x 8c7ad62eb26a21297bc39c2d7293b4bd4d3399fa8afab29e970471739e28b301 Grøstl-256("The quick brown fox jumps over the lazy dog.") 0x f48290b1bcacee406a0429b993adb8fb3d065f4b09cbcdb464a631d4a0080aaf