我想使用带有一些加密哈希函数的 PBKDF2 来生成 128 位 AES 密钥。SHA1 也是 128 位的,所以我想将它与 PBKDF2 一起使用,但它被破坏了,所以我选择使用 SHA256。这是安全的,还是散列大小和生成的密钥大小之间的差异会导致某种灾难性的静默截断,从而使 AES 密钥变弱?我应该让它为 AES 生成 256 位密钥吗?
greg
问问题
2437 次
1 回答
3
虽然 SHA-1 已“损坏”,但大多数合理的系统只使用HMAC版本,它更强大,可能还可以。也就是说,像TLS 1.2这样的较新协议至少使用SHA-256作为其伪随机函数 (PRF)。
您应该可以将结果截断为您需要的大小(就像大多数 PRF 一样)。关于这个问题有一些先前的讨论。
关于密钥长度,请参阅keylength.com。您要确保在使用每个原语的方式上保持一致。
于 2009-08-29T14:12:22.500 回答