【问题标题】:RSA: Encrypting message using multiple keysRSA:使用多个密钥加密消息
【发布时间】:2011-03-01 12:03:59
【问题描述】:

是否可以通过使用 2 个或更多 RSA 密钥加密消息来获得额外的安全性?

编辑: 一些澄清:

我最感兴趣的上下文是加密一个随机生成的对称密钥。

我不想将问题限制为连续加密两次;目的是避免大型 RSA 密钥的高计算成本。应考虑使用不太直接的策略,例如将消息分成几部分并分别加密它们。

应该假设只获取部分消息是可以接受的。

如果您知道专家专门讨论此问题的任何出版物,或使用多个 RSA 密钥的算法,请提供。

【问题讨论】:

  • 我认为获得额外安全性的标准方法是使用更大的密钥。
  • 不,你认为用两个密钥加密消息会安全吗?
  • 即使假设没有什么更微妙的,用两个密钥加密你的消息会使解密的难度加倍 - 而用一个密钥加密它,原始长度的两倍,总共将使用相同数量的密钥位,但提供了许多数量级的难度。
  • 这样想。如果加密两次使攻击者的难度增加一倍,您可以通过在第一个加密密钥中添加一个位来完全获得相同的难度增加。希望对您有所帮助。

标签: security encryption cryptography rsa encryption-asymmetric


【解决方案1】:

组合密码

假设您有一个加密函数E(M, K),其中M 是明文消息,K 是密钥。假设E 中不存在已知漏洞。

您生成两个完全不相关的K1K2

可以保证,如果您以E(E(M, K1), K2) 的形式编写它们,则实际上不可能以这种方式失去安全性。如果加密E(M, K1) 可能会失去安全性,无论是使用K2 还是任何其他密钥,密码都会被破坏,因为攻击者可以只使用E(E(M, K1), KF),其中KF 是攻击者希望选择的任何密钥。

欲了解更多信息,请参阅here

每隔一个区块使用不同的密钥加密

这里的含义是显而易见的。假设您使用具有两个encryption function:key 组合的正确组合的加密原语,如果您使用两个密钥集中的不同密钥加密每个第二个块,则攻击者只能解密他拥有密钥的块。

【讨论】:

    【解决方案2】:

    除了给出的答案之外,除非您进行一些修补,否则它也根本不起作用。很简单,其中一个模量必须大于另一个。如果您先执行 RSA mod 较大的模数,然后 mod 较小的最后您会丢失信息并且不能保证成功解密。显而易见的补丁是始终首先使用较小的模数进行加密。当然,您必须以相反的顺序执行解密。另一个简单的补丁是选择大小非常接近的模数,这样您遇到无法唯一解密的密文的概率就会非常小。

    【讨论】:

      【解决方案3】:

      是的!

      但不要使用原始加密。使用 RSA 加密模式。不要使用可能会削弱效果(我不知道)的第二个密钥重新加密加密消息,而是使用共享密钥算法将您的秘密分成两部分。共享秘密算法可以将秘密分成 n 份,并确保如果攻击者设法获得 n-1 份,他对秘密一无所知。所以不要简单地将秘密一分为二。

      然后您可以拥有超过 2 个 RSA 密钥。共享秘密算法的另一个强大特性是可以将秘密传播到 n 块上,并且只需要 m 块(其中 m 小于 n)来恢复秘密。这使得秘密恢复对丢失片段更加稳健。

      在此处查看有关共享密钥的更多信息:http://en.wikipedia.org/wiki/Shared_secret

      【讨论】:

        【解决方案4】:

        没有

        进行有关密码学的思想实验是不安全的。建议您谨慎走专家走过的路。

        当专家想要更好地保护某些东西时,他们会使用更大的密钥大小(至少需要 2048 位,更小的证书是 insufficient 以使您安心)或使用 elliptic curve 证书而不是 RSA .

        顺便提一下,您的消息正文通常使用对称密码和随机密钥进行加密,并且只有这个随机密钥是使用收件人的公钥加密的。双重加密此密钥不会使此密钥更长,也不会影响攻击者的暴力破解能力。

        量子密码学——我提到它只是作为一个令人兴奋的话题,你不需要把它考虑到你的选择中——为密钥大小承诺有趣的事情:RSA 密钥将被Shor 的算法清除,但对称密钥(Grover's) 将只有一半长度(128 位相当于 64 位,因此可以破解)。当然,关于这种量子机器是否可以实现等问题存在争议:)

        【讨论】:

          【解决方案5】:

          没有。

          如果密钥 A 被泄露,那么使用 A+B 加密可以防止泄露,但在这种特殊情况之外,您不会获得额外的好处。

          【讨论】:

          • 这是否意味着RSA(Key1, RSA(Key2, Message))可以被单个Key3解密?否则,我很难相信“没有额外的好处”。
          • @mike:我很确定 Key3 可能不存在,并且如果它存在,它与 Key1 和 Key2 之间存在痛苦(不可逆转?)的关系。但是,我不是密码学家。这是基于对多个收件人的消息进行加密的方式和使用多因素密钥系统的推测。不要在家里尝试这个,在内布拉斯加州提供空白。
          • 我很肯定 Key3 存在,但是这种关系是不可逆转的。最好的情况是,它就像试图破坏 RSA(Key1) 一样,其中损害 Key1 的一部分将无济于事。但是,Key3 的位数可能比 Key1 多。
          • @Joshua:肯定的?那么它是什么,或者至少你为什么是积极的?
          • GregS:因为 RSA 未能通过统一的零知识证明,所以 Key3 必须存在(注意 Key3 的算法不保证是 RSA)。 RSA 没有弱明文,因此增加更多深度不会让问题变得更容易。 QED。
          猜你喜欢
          • 1970-01-01
          • 2017-11-08
          • 1970-01-01
          • 2016-08-30
          • 1970-01-01
          • 1970-01-01
          • 2022-01-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多