我在某处听说使用 XOR 是不可逆的(他们谈到了加密),但我不明白它是什么意思?AFAIK 即使使用 OR 操作,您也无法找出这两位中的哪一位是 1。请知道这意味着什么的人可以向我解释一下吗?谢谢
4 回答
如果你这样做
z = x XOR y
然后
x = z XOR y
所以是的,它是可逆的
我认为您可能稍微错误地引用了它们。
他们可能意味着使用一次性密码本是牢不可破的,因为除非您拥有一次性密码本的副本,否则密文中绝对没有可用于恢复明文的信息。您不能使用统计分析甚至是蛮力搜索,因为所有输入都可能以相等的概率给出输出,并且无法知道哪个输入是正确的。
一次性填充通常使用 XOR 实现,但不可逆性是因为它是一次性填充,而不是因为 XOR 操作。
您可能的意思是“没有密钥, XOR 加密是牢不可破的”
如果密钥是随机的并且与消息一样长(因此它永远不会重复),则 XOR 密码更安全。密钥流由伪随机数生成器生成,结果是流密码。使用真正随机的密钥,结果是一次性的,即使在理论上也是牢不可破的。
它们可能意味着 XOR是可逆的,与 AND 或 OR 不同。对于加密,这主要与 Vernam 密码有关——密码产生密钥流,然后与数据流进行异或。在接收端,您可以将加密的流与相同的密钥流进行异或,并取回明文。
从密码分析的角度来看,这也很有趣。例如,如果使用相同的密钥流对两个流进行加密,则将它们相互异或会为您提供两个明文流的异或,并删除密钥流的所有影响。此时,您可以使用“滑动窗口”技术:对您认为可能在一条消息中的不同点与该流进行异或运算,如果存在,结果将是另一条消息的可理解文本。