【问题标题】:Encrypting many buffers with same key使用相同的密钥加密多个缓冲区
【发布时间】:2018-11-12 19:06:39
【问题描述】:

我有一个由许多块组成的大型数据集(例如 1GB),有些大小约为 100 字节,有些大约 1 兆字节。每个块都由 AES-GCM 加密,使用 相同 128b 密钥(当然,IV 不同)。我有一个结构可以保留每个加密块的偏移量和长度,以及它的 IV 和 GCM 标签。

问题:如果我对结构进行加密(从而隐藏每个加密块的开头、长度和 IV/标签),它会使我的数据更安全吗?或者可以将所有数千个加密块公开,以便任何人查看每个块的开始和结束位置,以及它的 IV/标签是什么?块大小是相当标准的,并没有透露太多关于数据的信息。我担心的是对密钥和数据的直接攻击(有数千个可用的加密样本) - 或其他间接攻击。

【问题讨论】:

  • 你的数据集的目的是什么?块大小能否为您的数据提供线索?以视频加密为例,当运动发生时(可能是在更换保安人员时),视频会使用更多字节,因此这取决于您要保密的信息类型。
  • 好点。块大小是相当标准的,并没有透露太多关于数据的信息。我会将其添加到问题文本中。

标签: security encryption aes aes-gcm


【解决方案1】:

我相信您已经回答了大部分您自己的问题。如果问题是“我需要加密结构吗?”那么下一个问题(正如 YAHsaves 所指出的)是“结构本身是敏感信息吗?”如果答案是否定的,那么这就是你的答案。如果结构本身是敏感的,就应该受到保护。

如果您的密钥因重复使用唯一 IV 而受到攻击,则这表明 GCM 使用不正确,应予以解决。如果使用正确,GCM 旨在支持密钥重用。 NIST 在NIST 800-38d 中提供了关于如何设计 GCM 系统的良好而明确的指导。特别是,您想阅读第 8 节,尤其是关于推荐的 IV 构造的 8.2.1(如果您不使用推荐的 IV 构造,则阅读 8.3)。

NIST 的大部分指导可以概括为“确保 Key+IV 永远不会被重复使用,如果你不能 100% 保证它,那么保证它至少为 2^-31 (99.9999999%) ,不认真,我们不是在开玩笑,不要重复使用 Key+IV,一次也不行。”

【讨论】:

    【解决方案2】:

    看起来我找到了另一个答案here。它解决了一个不同的问题,但应用于我的问题,它意味着:是的,可以在开放视图中留下数千个块,用相同的密钥加密。实际上,在 AES-GCM 的随机和确定性 IV 模式下,最多 10 亿应该是可以的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 2010-10-10
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多