gpt4 book ai didi

encryption - 为什么随机 IV 适用于 AES-CBC 而不适用于 AES-GCM

转载 作者:行者123 更新时间:2023-12-04 02:31:26 27 4
gpt4 key购买 nike

我一直在使用 AES-CBC 进行加密,每次加密纯文本时我都使用随机 IV。据我所知,这是推荐的方法。

我一直在研究 AES-GCM/AES-CTR,主要是为了 AEAD。我还没有用这个实现任何东西,但是从我读过的所有内容来看,基本上随机数只是一个短路的 IV,并且有一个内部计数器用于每个加密调用。开发人员/需要确保在 32 位计数器循环之前更改随机数,否则相同的随机数 (IV) 可能与相同的 key 一起使用,这可能会加密相同的纯文本并泄漏加密 key 。

我真正不明白的是为什么 AES-CBC 可以用随机 IV 很好,但我读到的一些内容表明 AES-GCM 的随机随机数 (IV) 是一个坏主意。我唯一能想到的是 AES-CBC 的 IV 比 AES-GCM 的随机数长,因此 AES-GCM 的重复随机数的可能范围更大。

我需要加密从几个字节到 10 - 20 GB 的任何数据。我知道 AES-GCM 对它可以在计数器循环之前加密的数据大小(~60GB)有限制。我可以绕过这个限制,因为我的数据低于这个限制。

有人可以解释为什么不建议 AES-GCM 使用随机随机数吗?

最佳答案

GCM 基于 CTR 模式,如果使用相同的键 ( very nice example ) 重用随机数,则会继承多次填充(或两次填充)问题。如果在 CBC 模式下重用 IV,那么观察者唯一可以检测到的就是消息前缀的相等性。

观察者可以检测到先前发送的消息以 CBC 模式再次发送,这可能不会给他们太多,但 CTR 为他们提供了推断消息内容的能力,如果有关内容结构的一些信息是已知的。

AES-GCM 模式的随机数预计为 96 位长。如果您随机生成随机数,那么您应该在 2n/2=248 条消息后生成重复的随机数(请参阅生日问题)。也就是说,如果您使用相同的 key 生成 248 条加密消息,则生成重复随机数的概率为 50%。这是相当多的消息,但它可以更早地发生。

关于encryption - 为什么随机 IV 适用于 AES-CBC 而不适用于 AES-GCM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36760973/

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