簡述JH算法

在安全散列標(biāo)準(zhǔn)SHA-3的選拔中涌現(xiàn)了很多優(yōu)秀的哈希算法,包括Blake、Grostl、Keccak等。下面我們要了解的就是入選SHA-3最后一輪競爭的JH算法。

JH算法簡介

Hash函數(shù)的設(shè)計通常采用迭代結(jié)構(gòu),其迭代函數(shù)的設(shè)計又借鑒了很多分組密碼的思想。JH算法采用了新的壓縮函數(shù)結(jié)構(gòu),其核心壓縮函數(shù)就是一個分組密碼,該分組密碼的設(shè)計與美國高級加密標(biāo)準(zhǔn)AES類似,通過固定密鑰對消息加密,并將部分消息反饋以達(dá)到消息壓縮的目的。

JH算法

JH算法過程

JH算法主要由數(shù)據(jù)填充、數(shù)據(jù)分塊、設(shè)置哈希初值、計算哈希終值、獲取信息摘要等5個步驟構(gòu)成:

  1. 將長度為L的消息M進(jìn)行數(shù)據(jù)填充,得到的數(shù)據(jù)長度為512bit的倍數(shù)。
  2. 把消息M分割為N個512bit的數(shù)據(jù)M(i)作為壓縮函數(shù)F8的輸入。
  3. 進(jìn)行哈希初值H(0)的設(shè)置,它是由初始化值H(-1)及消息M(0)通過壓縮函數(shù)F8計算得出的。
  4. 通過壓縮函數(shù)F8計算得出哈希終值H(N),其中,壓縮函數(shù)F8的另一個輸入為哈希值H(i),它是指第i個512bit的消息M(i)通過壓縮函數(shù)F8計算出的哈希值。
  5. 通過截取哈希終值H(N)的高n位獲取消息摘要。

JH算法

JH算法的優(yōu)缺點

由于JH算法采用了“寬軌跡策略”來設(shè)計分組密碼,所以它的安全性比較優(yōu)秀,能夠抵抗已知的攻擊。另外,JH算法采用了明顯的擴散層,使得比特追蹤法很難適用于這類Hash函數(shù)的安全性分析。并且JH算法支持224bit、256bit、384bit和512bit四種長度的散列。

但JH算法在硬件實現(xiàn)中存在不足,在一些資源占用少、功耗要求低的應(yīng)用中很難做到低功耗運行,算法的吞吐率較低。

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