gpt4 book ai didi

c# - AES 合法 key 大小真的是限制吗?

转载 作者:太空狗 更新时间:2023-10-29 17:51:56 28 4
gpt4 key购买 nike

AesCryptoServiceProvider.LegalKeySizes 字段显示允许的位大小。

但是我不明白的是,如果这些都是真的,我如何才能成功利用 2048 位 key 长度(256 字节)?

我想我真正的问题是,我的 key 是否生成为请求的大小(大于最大 32 字节),但实际上只有前 32 字节(256 位)在加密/解密过程中被采用,呈现更大的 key 大小会浪费空间吗?

我不知道是否有一种方法可以从 API 中公开的内容中实际判断...

有什么想法吗?也许我以错误的方式看待这个问题?

最佳答案

AES 可用于 3 种 key 大小:128、192 和 256 位 key 。基本上,如果您能够使用大于 256 位的 key ,那么该库就是“对您撒谎”,即较大 key 的某些位会以某种方式被丢弃或压缩。例如,PHP mcrypt 只是将 key 的大小缩减到可能的最大大小。

较大的 key “种子”在密码学领域相当普遍。例如 Diffie-Hellman——一种 key 协商算法——通常生成的 secret 大于所需的 key 大小。因此,提取(集中) key 中的熵量的问题经常出现。如果位被截断,则这些位中的熵将被丢弃。

所以现代密码学中实际使用的是 KDF,即 key 派生函数。如果输入 - 种子 - 是密码,您应该使用 PBKDF(基于密码的 KDF)。现代 PBKDF 是 PBKDF2、bcrypt、scrypt 和 Argon2。

如果输入已经是一个键 - 如果将数据放在一起可以提供足够的熵(随机性) - 您应该使用 KBKDF(基于键的 KDF)。一个现代的 KBKDF 是例如 HKDF。请注意,这些算法需要额外的输入,因此如果没有提供额外的数据,很可能会简单地忽略额外的 key 位。

AES-128 的加密强度当然是 128 位并且保持不变。只要攻击者无法将这些位与随机位区分开来,AES-128 should provide enough security for practical needs .如果您担心量子密码学的突破,可以使用 AES-256。


那么对于答案:“AES 合法 key 大小真的是限制吗?”答案是响亮的。 2048 位 key 大小更常见于非对称算法,例如 RSA/DSA。对于 RSA 和 DSA, key 大小实际上相当小,尽管实际攻击仍然无法达到。也许密文是使用 hybrid encryption 加密的.

关于c# - AES 合法 key 大小真的是限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23256642/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com