假设密钥是一个长度为10的字符串,完全随机。
我们使用该密钥对大量长度为10的完全随机字符串进行异或运算。
如果加密字符串被破解,密钥能否恢复?
发布于 2012-02-19 13:07:29
不是的。
如果输入数据是完全随机的,那么通过异或应用完全随机的密钥不会产生任何有意义的模式。结果仍然是随机的,没有任何信息可以从随机性中收集到。
XOR不被用作加密机制的原因是众所周知的--明文攻击,它不适用于随机语料库。
发布于 2012-02-19 19:06:36
如果使用相同密钥的两个密文被异或在一起,那么所有密钥信息都被移除,并且可以恢复关于明文的信息。如果您的明文是随机的,那么这将不会很多,但其中一些将是可恢复的。如果明文是有意义的,那么更多的信息将是可恢复的。
C1 = P1异或K
C2 = P2异或K
C1异或C2 = (P1异或K)异或(P2异或K) = P1异或P2
这就是为什么One Time Pad必须是One Time Pad。使用相同的随机密钥两次会使其容易破解。在谷歌上搜索"Venona“可以找到一个真实的例子。
发布于 2012-02-19 13:19:54
是!
字符串可能是随机的,但它们仍将遵循某种形式的字符编码(ascii、utf、ebcdic等)。所以只有某些字节是有效的。
攻击者可以循环遍历可能的密钥,而不包括那些导致无效ascii(或w/e)的明文的密钥。这可以一次完成一个关键字符,所以它不是26^10,而是26*10 (对于26个字符的字母表)。
这是一个不安全的加密方案。
https://stackoverflow.com/questions/9346889
复制相似问题