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
答案 0 :(得分:3)
这是SHA-224初始值的第一个组成部分:
H(0)0 = c1059ed8
这是SHA-384初始值的第一个组成部分
H(0)0 = cbbb9d5dc1059ed8
请注意,SHA-384的最后32位正好是SHA-224的值。