我正在寻找满足以下规则的加密算法:
E(key1,E(key2,Message))= E(key2,E(key1,Message))
对于解密来说显然也是一样。
这可能是一个很长的镜头,因为我怀疑这样的算法存在,但认为值得问。
由于
答案 0 :(得分:7)
具有相同模数的RSA将执行此操作。升高到功率a然后功率b与升高功率b相同然后a。
但是你通常不会使用RSA加密你的消息,你用它来加密一个密钥 - RSA和大多数非对称密码是非常耗时的。
也许你正在使用该属性的对称算法?
答案 1 :(得分:3)
本文中有一些参考文献:http://www.cs.ucla.edu/wing/publication/papers/Yang.VTC04.pdf
其中一个是本文:http://icsd.i2r.a-star.edu.sg/publications/BaoFeng_21190190.pdf
当然,所有基于XOR的流密码都具有此属性。
答案 2 :(得分:3)
两个已知的满足
的密码系统E(key1,E(key2,Message))= E(key2, E(key1,Message))
是Massey Omura crytosystem和Shamir的三通协议。更喜欢这两种方案的一个原因是以下属性:访问密文E(key1,Message),E(key2,Message)和E(key1,E(key2,Message))的攻击者无法找到该消息。另一方面,基于RSA或流密码的解决方案可以在此假设下打破。
假设攻击者可以访问上述所有密文,确实有意义,因为交换密码系统最有可能用于两个密钥保存在不同系统上的情况。为什么还需要反转解密的顺序呢?
答案 3 :(得分:1)
如果E只是密钥(或其密码生成的扩展)与文本(密码或普通文本)之间的异或函数,则它将显示您指示的属性。
即(key1 XOR消息)XOR key2 ==(key2 XOR消息)XOR key1,以便可以按加密或解密的顺序应用密钥,但是需要两个密钥来解密由此加密的消息
我可以想象这用于加密需要两个具有单独密钥的参与者的文档。但是这个方案不起作用,因为给定了密文,明文和任意一个密钥,另一个密钥可能会被轻易恢复。
答案 4 :(得分:1)
对于驳船和迟到的回复感到抱歉....
E(key1,E(key2,Message))= E(key2,E(key1,Message))
...即(key1 XOR消息)XOR key2 ==(key2 XOR消息)XOR key1, 以便密钥可以按任何顺序应用于加密或 解密,但两个密钥都需要解密消息 因此加密了。
这些不等同。在XOR提议下,可以找到第三个密钥key3,使得(key3 XOR消息)==((key1 XOR消息)XOR key2)。 key3将是(key1 XOR key2)。我相信该物业不符合OP的要求。
回到我的密码学课程(和IIRC),数学家花了一些时间来证明DES在其操作下没有关闭,因此使用2键三重设备和3没有简短的恢复纯文本-key triple des。也就是说,E(key1,E(key2,Message))!= E(key3,message)。
杰夫