【问题标题】:Encryption key generation and app performance加密密钥生成和应用程序性能
【发布时间】:2014-02-09 11:35:18
【问题描述】:

密码学专家的问题。假设我们有一个概念性的 Notes.app

  • 有注释(标题|内容)存储为 AES-256 加密字符串
  • 应用程序必须在其主窗口的列表中显示所有笔记(标题)的列表
  • 每个标题|内容都使用密钥加密,由密码和盐生成
  • 假设密钥生成算法在移动设备上需要大约 80 毫秒来生成密钥

在以下条件下,解密 10 个音符标题几乎需要 1 秒。但是如果有很多笔记呢?

我在这个问题上的 2 便士:使用不同的初始化向量加密所有笔记,但也使用相同的盐。这将允许我只生成一次解密密钥并快速解密大量笔记。

问题:这样做我们最终会得到很多不同的笔记,用相同的密钥加密。这是否会以某种方式损害 AES 加密的安全性?是否有可能知道有一堆文件不仅密码相同,而且盐也相同,从而以某种方式破解加密?

感谢您的意见

【问题讨论】:

    标签: encryption aes


    【解决方案1】:

    AES-256 不要使用盐。但我猜你在 PBE 算法中使用盐和密码来生成密钥。通常这种 PBE 算法的计算成本很高 - 因此您在手机上看到的 80 毫秒。

    当加密不同的消息时,您可以不使用不同的盐来创建不同的密钥,而是使用不同的初始化向量 (IV) 但相同的密钥。不同的IV确保以相同块开头的消息加密为不同的消息。

    【讨论】:

    • 埃贝,感谢您的回答!但我只想澄清一件事:如果我有 N 个文件,用相同的密钥加密,但不同的 IV - 除了说“所有这些文件都具有相同的密码”之外,它是否以某种方式帮助了黑客?或者 IV 是否确保没有可以利用的统计弱点?我真的不在乎是否有人发现一堆文件具有相同的密钥,如果他们不能以某种方式比较这些文件来更容易地确定密码。
    • 使用同一个密钥进行多次加密是可以的。但是,如果没有 IV,相同的明文数据将始终提供相同的加密数据 - IV 计数器。
    • 非常感谢,这基本上就是我想知道的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2011-01-09
    相关资源
    最近更新 更多