我正在研究三种共享秘密消息身份验证代码的选项:
选项1是最标准的选择。我正在考虑选项2,因为它在64位CPU上更快。我正在考虑选项3,因为SHA-512在编程语言库中比SHA-512/256更广泛可用。
备选方案2和3适合于MACs吗?是否有任何与安全有关的理由来选择一个而另一个呢?
澄清:我意识到一个好的HMAC-SHA-256的实现并不比SHA-256慢得多.我正在考虑选项2和3,因为SHA-512比64位计算机(链接)上的SHA-256更快。
背景:一些密码散列函数(如SHA-256和SHA-512)是“可扩展的长度”。这不一定是一个问题,因为正确使用哈希函数不应该受到该属性的影响。但是不能像MAC那样直接使用这种散列函数,因为在这种情况下,签名和输入都来自不受信任的源(长度扩展攻击)。
SHA-512/256是一个基于SHA-512的散列函数,不能扩展长度。(这类似于运行SHA-512,并且只使用前256位的输出,这也是不可扩展的。)我的问题是,这两个哈希函数是否可以直接用作MACs。
发布于 2018-06-13 02:24:20
https://crypto.stackexchange.com/questions/59997
复制相似问题