异或(XOR)加密的安全性

时间:2010-10-18 11:52:01

标签: security encryption private-key computability

众所周知,XOR加密非常弱。但是,如果我有一个由不同(理想的素数)长度的多个键组成的键,它们组合成一个更长的键是多么微弱。例如,我有一个长度为5,9和11的文本键。如果我只是使用XOR加密应用第一个键,那么它应该很容易打破,因为加密字节将每5个字节重复一次。然而,如果我'叠加'这些键中的3个,我得到一个有效的非重复长度为5 * 9 * 11 = 495.这听起来对我非常强烈。如果我使用每一行的几首诗作为关键词,那么我的非重复长度将比大多数文件大。这有多强(提供密钥仍然是秘密的!:)

3 个答案:

答案 0 :(得分:7)

XOR加密与密钥流完全一样强。如果您使用“一次性填充”进行异或 - 一系列物理生成的随机数,您只使用一次,那么您的加密在理论上是牢不可破的。但是你确实遇到了隐藏和分发密钥的问题。

所以你的问题归结为 - “三个文本字符串组成的密钥流有多安全/随机?”答案是“根本不太安全”。可能足以让你的妹妹离开,但不一定如果你有一个像我一样聪明的小妹妹。

答案 1 :(得分:4)

“已知明文”攻击怎么办?如果您知道相同字符串的加密版本和明文版本,则可以检索密钥。

http://en.wikipedia.org/wiki/XOR_cipher

http://en.wikipedia.org/wiki/Known-plaintext_attack

http://en.wikipedia.org/wiki/Stream_cipher_attack

答案 2 :(得分:2)

如果P和Q是两种独立的加密方法,复合加密函数P(Q(x))将不会弱于P(x)或Q(x)的强度,但它不一定也要有意义地强大。为了使复合密码函数获得任何强度,包含它的操作必须满足某些标准。任意组合弱密码,无论使用多少,都不太可能产生强密码。