您好,我只是从维基百科的一段代码中了解到这一点。 问题是有太多的实现使用实心垫参数, 例如: ipad将是[0x36 * blocksize] opad将是[0x5c * blocksize]。
问题是:
为什么人们在代码中使用这两个实心垫?他们是最好的选择吗?
由于它很稳定,这个算法真的比H(H(密钥+ msg)+密钥)更安全吗?
顺便说一句,我必须说很多关于哈希和身份验证的文件真的太可怕了。
是因为国家安全局要求他们不清楚吗?
答案 0 :(得分:0)
首先,HMAC来自学术研究人员Bellare,Rogaway和Krawczyk。 NSA从未接触过HMAC,该标准与学术研究人员完全一致。
第14页的论文Keying Hash Functions for Message Authentication解释了选择ipad和opad的基本原理,但除非你是一名加密技师,否则你可能很难理解它。
在坚果壳中,这些特定值没有什么特别之处。任何常数都会有效。