RSA:使用多个密钥加密消息

时间:2010-06-09 05:23:43

标签: security encryption cryptography rsa encryption-asymmetric

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

编辑: 一些澄清:

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

我不想将问题限制为连续两次加密;目的是避免大型RSA密钥的高计算成本。使用不那么简单的策略,例如将消息分成多个部分并单独加密它们应该被视为一种选择。

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

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

5 个答案:

答案 0 :(得分:5)

<强> 没有

对密码学进行思考实验是不安全的。建议您严格遵守专家所踩的路径。

当专家想要更好地保护某些东西时,他们使用更大的密钥大小(需要至少2048位,更小的证书insufficient以便安心)或使用elliptic curve证书优先于RSA。

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

量子加密 - 我只是提到它只是令人兴奋的一面,你不需要将它考虑在你的选择中 - 承诺键盘有趣的东西:RSA键将被Shor的算法消灭,但是对称密钥(Grover)将只有半长(128位将等于64位,因此将是可破解的)。关于这些量子机器是否可以实现等问题当然存在争议:)

答案 1 :(得分:1)

没有

如果密钥A被泄露而不是使用A + B进行加密,则可以防止泄密,但在特殊情况之外,您无法获得额外的好处。

答案 2 :(得分:0)

是!

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

然后您可以拥有2个以上的RSA密钥。共享秘密算法的另一个强大特性是可以将秘密分布在n个片段上,并且只需要m个小于n的片段来恢复秘密。这使得秘密恢复对于丢失碎片更加健壮。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

撰写密码

假设您有加密函数E(M, K),其中M是明文消息,K是密钥。假设E中没有已知的漏洞。

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

如果您以E(E(M, K1), K2)的形式撰写,则无法以这种方式实际输掉安全性。如果 可能会因加密E(M, K1)而失去安全性,无论是K2还是其他任何密钥,都会被破解,因为攻击者只能{{1} } E(E(M, K1), KF)是攻击者希望选择的任何密钥。

有关详细信息,请参阅here

使用其他密钥加密每隔一个块

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