如果我有一个高熵密钥(ECDHE共享秘密),我应该使用哪种类型的散列来将其格式化为AES-256密钥?Sha256或Sha3_256是否足以维持熵,还是需要在握手时使用KDF (Scrypt / Argon2)并交换盐??
发布于 2019-10-17 09:43:14
我似乎还记得,共享密钥在用作加密密钥之前应该进行散列(一些简短的讨论,这里)。
如果您的密钥已经是高熵,那么使用SHA256散列就可以了。如果您计划从原始共享秘密生成多个密钥(即加密和HMAC),那么香港发展基金是一个很好的选择。这是一个基于密钥的KDF。
Scrypt和Argon2是基于密码的KDF,并不合适--它们是为低熵输入(例如密码)而设计的。
https://crypto.stackexchange.com/questions/75133
相似问题