使用两个或更多RSA密钥加密消息是否可以获得额外的安全性?
编辑:一些澄清:
我最感兴趣的情况是加密随机生成的对称密钥。
我不想限制问题只在连续加密两次的情况下讨论;目的是避免大型RSA密钥的高计算成本。应该考虑使用更少直接的策略,例如将消息分解为部分并分别加密。
应假定仅获取消息的一部分是可接受的。
如果您知道任何专家讨论此事的出版物或使用多个RSA密钥的算法,请贡献。
使用两个或更多RSA密钥加密消息是否可以获得额外的安全性?
编辑:一些澄清:
我最感兴趣的情况是加密随机生成的对称密钥。
我不想限制问题只在连续加密两次的情况下讨论;目的是避免大型RSA密钥的高计算成本。应该考虑使用更少直接的策略,例如将消息分解为部分并分别加密。
应假定仅获取消息的一部分是可接受的。
如果您知道任何专家讨论此事的出版物或使用多个RSA密钥的算法,请贡献。
不可以对密码学进行思想实验,这是不安全的。建议您只按照专家的经验保持狭窄的道路。
当专家想要更好地保护某些东西时,他们会使用更大的密钥长度(至少需要2048位,较小的证书不足以令人放心),或者使用椭圆曲线证书而不是RSA证书。
顺便提一下,您需要记住,消息正文通常使用对称密码和随机密钥加密,只有这个随机密钥才使用收件人的公钥进行加密。双重加密此秘密密钥不会使该秘密密钥变长,并且不会影响攻击者暴力破解该密钥的能力。
量子密码学 - 我之所以提到它,只是因为它很令人兴奋,您不需要将其纳入选择范围 - 对于密钥大小有着有趣的承诺:RSA密钥将被Shor算法摧毁,但对称密钥(Grover)将只被缩短一半(128位将相当于64位,因此可被破解)。当然,关于这样的量子机是否可以实现等等还存在争论 :)
不行。
如果密钥A被破解,那么使用A+B加密可以保护免受破解,但在除此特殊情况之外,您将获得任何额外的好处。
Key3
可以解密RSA(Key1, RSA(Key2, Message))
?否则,我很难相信没有“额外的好处”。 - Mike组合密码
假设您有一个加密函数E(M,K)
,其中M
是明文消息,K
是密钥。假设E
中不存在已知的漏洞。
您生成两个完全不相关的密钥K1
和K2
。
如果以E(E(M,K1),K2)
的形式组合它们,则保证无法通过这种方式实际上失去安全性。如果从加密E(M,K1)
开始可能会丢失安全性,无论使用K2
还是任何其他密钥,都会破坏密码,因为攻击者可以执行E(E(M,K1),KF)
,其中KF
是攻击者希望选择的任何密钥。
有关更多信息,请参见此处。
使用不同的密钥加密每个第二个块
这里的含义是显而易见的。假设您使用了适当构建的加密原语,其中包括加密函数:密钥
组合,如果您将每个第二个块使用来自两个密钥集中不同密钥的加密方式进行加密,则攻击者只能解密他拥有密钥的块。是的!
但不要使用原始加密。使用RSA加密方案。不要像重新使用第二个密钥重新加密加密消息一样,这可能会产生削弱效果(我不知道),而是使用共享秘密算法将您的秘密分成两部分。共享秘密算法使得可以将一个秘密分成n个部分,并确保如果攻击者设法获得n-1个部分,则他对秘密一无所知。因此,不要简单地将秘密分成两部分。
然后,您可以拥有多于2个RSA密钥。共享秘密算法的另一个强大属性是,可以将秘密分散在n个部分上,并仅要求恢复秘密的m个部分,其中m小于n。这使得秘密恢复更加鲁棒,可以抵御部分丢失。
在此处查看有关共享秘密的更多信息:http://en.wikipedia.org/wiki/Shared_secret