如何获得SHA-224的初始哈希值(H(0))?

时间:2018-01-21 07:33:38

标签: hash sha

RFC 6234: US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)仅解释了如何获得SHA-256,SHA-384和SHA-512的初始哈希值( H (0) ) 。 SHA-224的 H (0) 是如何获得的?

  

§6.1。 SHA-224和SHA-256初始化

     

对于 SHA-224 ,初始哈希值H(0)由以下内容组成     十六进制的32位字:

H(0)0 = c1059ed8
H(0)1 = 367cd507
H(0)2 = 3070dd17
H(0)3 = f70e5939
H(0)4 = ffc00b31
H(0)5 = 68581511
H(0)6 = 64f98fa7
H(0)7 = befa4fa4
     

对于 SHA-256 ,初始哈希值H(0)由以下内容组成     八个32位字,十六进制。这些话是通过获得的     前32位的平方根的小数部分     前八个素数

H(0)0 = 6a09e667
H(0)1 = bb67ae85
H(0)2 = 3c6ef372
H(0)3 = a54ff53a
H(0)4 = 510e527f
H(0)5 = 9b05688c
H(0)6 = 1f83d9ab
H(0)7 = 5be0cd19
     

§6.3。 SHA-384和SHA-512初始化

     

对于 SHA-384 ,初始哈希值H(0)由   以下是八个64位字,十六进制。这些话是通过   取方形小数部分的前64位   第九至第十六个素数的根

H(0)0 = cbbb9d5dc1059ed8
H(0)1 = 629a292a367cd507
H(0)2 = 9159015a3070dd17
H(0)3 = 152fecd8f70e5939
H(0)4 = 67332667ffc00b31
H(0)5 = 8eb44a8768581511
H(0)6 = db0c2e0d64f98fa7
H(0)7 = 47b5481dbefa4fa4
     

对于 SHA-512 ,初始哈希值H(0)由   以下是八个64位字,十六进制。这些话是通过   取方形小数部分的前64位   前八个素数的根源

H(0)0 = 6a09e667f3bcc908
H(0)1 = bb67ae8584caa73b
H(0)2 = 3c6ef372fe94f82b
H(0)3 = a54ff53a5f1d36f1
H(0)4 = 510e527fade682d1
H(0)5 = 9b05688c2b3e6c1f
H(0)6 = 1f83d9abfb41bd6b
H(0)7 = 5be0cd19137e2179

1 个答案:

答案 0 :(得分:3)

这是SHA-224初始值的第一个组成部分:

H(0)0 = c1059ed8

这是SHA-384初始值的第一个组成部分

H(0)0 = cbbb9d5dc1059ed8

请注意,SHA-384的最后32位正好是SHA-224的值。