7

我在某处听说使用 XOR 是不可逆的(他们谈到了加密),但我不明白它是什么意思?AFAIK 即使使用 OR 操作,您也无法找出这两位中的哪一位是 1。请知道这意味着什么的人可以向我解释一下吗?谢谢

4

4 回答 4

12

如果你这样做

z = x XOR y

然后

x = z XOR y

所以是的,它是可逆的

于 2010-02-24T14:18:02.017 回答
8

我认为您可能稍微错误地引用了它们。

他们可能意味着使用一次性密码本是牢不可破的,因为除非您拥有一次性密码本的副本,否则密文中绝对没有可用于恢复明文的信息。您不能使用统计分析甚至是蛮力搜索,因为所有输入都可能以相等的概率给出输出,并且无法知道哪个输入是正确的。

一次性填充通常使用 XOR 实现,但不可逆性是因为它是一次性填充,而不是因为 XOR 操作。

于 2010-02-24T14:19:40.887 回答
5

您可能的意思是“没有密钥, XOR 加密是牢不可破的”

如果密钥是随机的并且与消息一样长(因此它永远不会重复),则 XOR 密码更安全。密钥流由伪随机数生成器生成,结果是流密码。使用真正随机的密钥,结果是一次性的,即使在理论上也是牢不可破的。

于 2010-02-24T14:21:26.393 回答
4

它们可能意味着 XOR可逆的,与 AND 或 OR 不同。对于加密,这主要与 Vernam 密码有关——密码产生密钥流,然后与数据流进行异或。在接收端,您可以将加密的流与相同的密钥流进行异或,并取回明文。

从密码分析的角度来看,这也很有趣。例如,如果使用相同的密钥流对两个流进行加密,则将它们相互异或会为您提供两个明文流的异或,并删除密钥流的所有影响。此时,您可以使用“滑动窗口”技术:对您认为可能在一条消息中的不同点与该流进行异或运算,如果存在,结果将是另一条消息的可理解文本。

于 2010-02-24T14:24:33.330 回答