使用 "Padded Key" 的 XOR 加密

XOR Encryption with "Padded Key"

我读到只要满足两个条件就可以认为异或加密是非常安全的。
1. key的长度与data
一样长(或更长) 2. key 没有遵循明显的模式(即,它是随机字符的混乱)

在那种情况下,如何:在 XOR 操作之前,您使用(短)key 生成一个 seed 随机数生成器。然后,您使用此 Generator 创建字符,这些字符将添加到您的密钥末尾,直到它与您要加密的 data 一样长。
然后使用这个新的 keydata 进行 XOR。

我已经对此进行了测试,它似乎没有按预期工作的问题(它可以在不损坏 数据 的情况下进行加密和解密)。
我的问题是 "secure" 这样的加密方式。有人估计 break/decrypt data 有多难吗?

正如其他人所说,您的想法是流密码。它不能完全安全,就像 One Time Pad 可以证明是安全的,因为您声明的第一个条件:

  1. 密钥的长度与数据一样长(或更长)

您正在使用 "short key" 为您的 RNG 播种。这是一个弱点,因为 "short key" 是整个系统的加密密钥。如果攻击者知道短密钥,她可以将其插入 RNG 的副本,生成整个密钥流并解密消息。如果密钥太短,她可以尝试所有可能的密钥并最终解密消息——暴力攻击。

你是对的,这避免了OTP的问题,但这样做失去了绝对的安全性。有安全流密码,请参阅 eSTREAM 了解一些示例,否则计数器模式下的块密码 运行 实际上是流密码。

你的想法是有道理的,不过之前也有人想过。对不起。