5

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

编辑: 一些澄清:

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

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

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

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

4

5 回答 5

5

没有

做关于密码学的思想实验是不安全的。建议您小心翼翼地走专家走过的路。

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

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

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

于 2010-06-09T05:40:39.673 回答
1

不。

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

于 2010-06-09T05:35:44.817 回答
1

组成密码

假设您有一个加密功能E(M, K)M明文消息在哪里,密钥在哪里K。假设E.

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

可以保证,如果您将它们组合成 form E(E(M, K1), K2),那么实际上不可能以这种方式失去安全性。如果加密可能会失去安全性,无论E(M, K1)使用K2密钥还是任何其他密钥,密码都会被破坏,因为攻击者可以E(E(M, K1), KF)KF攻击者希望选择的任何密钥的位置进行操作。

有关更多信息,请参见此处

使用不同的密钥加密每个第二个块

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

于 2010-06-20T19:32:19.943 回答
0

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

于 2010-06-09T23:31:03.927 回答
0

是的!

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

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

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

于 2010-06-09T06:27:17.330 回答