E(key1, E(key2, Message)) = E(key2, E(key1, Message))
显然,解密也是如此。
我怀疑这样的算法存在性较小,但还是想问一下。
谢谢。
使用相同模数的RSA可以实现这一点。先将其提高到a次幂,然后再提高到b次幂与先将其提高到b次幂再提高到a次幂是相同的。
但通常不会使用RSA来加密您的消息,而是使用它来加密密钥-RSA和大多数非对称加密非常耗时。
也许您需要一个具有该属性的对称算法?
有两种已知的加密系统可以满足以下条件:
E(key1, E(key2, Message)) = E(key2, E(key1, Message))
它们分别是Massey Omura加密系统和Shamir的三次握手协议。选择这两种方案的一个原因是其具有以下特性:即使攻击者能够访问密文E(key1,Message),E(key2,Message)和E(key1,E(key2,Message)),也无法找到明文。另一方面,基于RSA或流密码的解决方案在此假设下可能被破解。
假设攻击者可以访问上述所有密文是有意义的,因为可交换密码系统很可能用于将两个密钥保存在不同的系统上的场景中。否则,为什么需要反转解密顺序呢?
很抱歉打扰并回复晚了...
E(key1, E(key2, Message)) = E(key2, E(key1, Message))
这就是说 (key1 XOR message) XOR key2 == (key2 XOR message) XOR key1, 以便密钥可以按任意顺序用于加密或解密,但是必须使用两个密钥来解密因此加密的消息。
这些不等同。在异或提案下,有可能找到第三个密钥,key3,使得 (key3 XOR message) == ((key1 XOR message) XOR key2)。key3 将是 (key1 XOR key2)。我认为该属性不满足 OP 要求的条件。
回到我的密码学课程(如我所记),数学家们花费了一些时间证明 DES 在其操作下不是封闭的,因此不能使用 2 密钥三重 DES 和 3 密钥三重 DES 来快速恢复明文。即 E(key1, E(key2, Message)) != E(key3, message)。
Jeff