我读到,只要满足两个条件,XOR加密就可以被认为是非常安全的 1. 键的长度与数据的长度(或更长)相同 2. 键没有遵循一个值得注意的模式(即它是一个随机混乱的字符)
在这种情况下,如何:在XOR操作之前,使用(短)键为随机数生成器生成种子 。然后,您可以使用此生成器创建添加到密钥末尾的字符,直到您要加密的数据为止。
然后使用此新密钥对数据进行异或。
我已对此进行了测试,似乎没有按预期工作的问题(它可以加密和解密而不会损坏数据)。
我的问题是"安全"这样的加密就是。任何人都估计打破/解密数据有多难?
答案 0 :(得分:2)
正如其他人所说,你的想法是一个流密码。它没有完全安全,因为One Time Pad可证明是安全的,因为你声明了第一个条件:
您正在使用“短键”为您的RNG播种。这是一个弱点,因为“短密钥”是整个系统的加密密钥。如果攻击者知道短密钥,她可以将其插入RNG的副本,生成整个密钥流并解密该消息。如果密钥太短,她可以尝试所有可能的密钥并最终解密消息 - 蛮力攻击。
你是对的,这可以避免OTP的问题,但这样做会失去绝对的安全性。有安全流密码,有些示例请参阅eSTREAM,否则以计数器模式运行的分组密码实际上是流密码。
你的想法是合理的,但它之前已被考虑过。遗憾。