为什么hmac使用两个实心垫参数?

时间:2013-10-05 08:59:58

标签: hmac

您好,我只是从维基百科的一段代码中了解到这一点。 问题是有太多的实现使用实心垫参数, 例如:   ipad将是[0x36 * blocksize]   opad将是[0x5c * blocksize]。

问题是:

为什么人们在代码中使用这两个实心垫?他们是最好的选择吗?
由于它很稳定,这个算法真的比H(H(密钥+ msg)+密钥)更安全吗?

顺便说一句,我必须说很多关于哈希和身份验证的文件真的太可怕了。
是因为国家安全局要求他们不清楚吗?

1 个答案:

答案 0 :(得分:0)

首先,HMAC来自学术研究人员Bellare,Rogaway和Krawczyk。 NSA从未接触过HMAC,该标准与学术研究人员完全一致。

第14页的论文Keying Hash Functions for Message Authentication解释了选择ipad和opad的基本原理,但除非你是一名加密技师,否则你可能很难理解它。

在坚果壳中,这些特定值没有什么特别之处。任何常数都会有效。