当使用基于MD的哈希函数作为KDF时,我不想讨论它们的安全性问题。由于存在SHA3或Skein散列函数,因此可以使用它们作为密钥前缀KDF。
我使用密钥前缀KDF的意思是:在https://eprint.iacr.org/2010/264.pdf中,您可以找到它,或者简单地说:
KDF(x) =H(x,1)-x
H是哈希函数,x是种子,数字是计数器。虽然没有具体说明柜台是什么,但我有一个问题。计数器从1开始,到N。那个计数器是多少字节?是个单身拜德吗?
发布于 2016-10-25 12:04:21
我认为您遇到了学术论文和可实现的标准(如RFC或NIST特别出版物)之间的区别。
在学术背景下,像编码这样的细节很少重要。在这种情况下,使用uint8、uint16或普通旧int可以获得相同的安全性。因此,计数器可以被编码,无论你愿意。
但是,除非您预见到真正需要生成巨大的输出,否则我将使用单个字节,并确保如果请求的输出大于255*(散列长度),则返回错误。这将防止用户在不为其设计的应用程序中错误地使用KDF。
https://crypto.stackexchange.com/questions/40961
复制相似问题