使用 PBKDF2 和 SHA256 生成 128 位 AES 密钥是否安全?

发布于 2024-08-03 05:56:37 字数 179 浏览 4 评论 0原文

我想使用 PBKDF2 和一些加密哈希函数来生成 128 位 AES 密钥。 SHA1 也是 128 位,所以我想将其与 PBKDF2 一起使用,但它已损坏,所以我选择使用 SHA256。这是否安全,或者散列大小和生成的密钥大小之间的差异是否会导致某种灾难性的静默截断,从而导致 AES 密钥变弱?我应该让它为 AES 生成 256 位密钥吗?

I want to use PBKDF2 with some cryptographic hash function to generate 128-bit AES keys. SHA1 is also 128-bit, so I thought of using that with PBKDF2, but it was broken, so I have opted to use SHA256 instead. Is this safe, or will the difference between the hash size and resulting key size cause some sort of disastrous silent truncation that will render the AES keys weak? Should I just have it generate 256-bit keys for AES instead?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨落成白 2024-08-10 05:56:38

虽然 SHA-1 已“损坏”,但大多数合理的系统仅使用 HMAC 版本,这是更强,可能还不错。也就是说,TLS 1.2 等较新的协议正在使用 伪随机函数 (PRF) 至少为 SHA-256

您应该可以将结果截断为您需要的大小(就像大多数 PRF 所做的那样)。一些先前的讨论可以在 这个问题

关于密钥长度,请参阅 keylength.com。您需要确保每个基元的使用方式保持一致。

While SHA-1 is "broken", most reasonable systems only use the HMAC version, which is stronger and probably still fine. That said, newer protocols like TLS 1.2, are using at least SHA-256 for their Pseudo-Random Function (PRF).

You should be ok truncating the result down to the size you need (as most PRFs do). Some prior discussion is available on this question.

In terms of key length, see keylength.com. You want to make sure you're consistent in the how you're using each primitive.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文