密码学之Reused Key Attack
文章目錄
#reused key attack
参考《白帽子讲web安全》第11章 加密算法和随机数。
流密码加密算法的使用中,最常见的错误是使用同一个密钥进行多次加解密。流密码的加密是基于异或(XOR)操作进行的。XOR操作规则如下:
1 xor 1=0
1 xor 0=1
0 xor 1=1
0 xor 0=0
假设有密钥C,明文A,明文B,那么XOR加密可以表示为:
E(A) = A xor C
E(B) = B xor C
密文是公开的,所以很容易计算
E(A) xor E(B)
根据异或的规则,如果两个数相同,则xor运算的结果为0。
E(A) xor E(B) = (A xor C) xor (B xor C) = A xor C xor B xor C = A xor B
所以E(A),E(B),A,B四个数据中只要知道3个就可以推算出剩下的一个。这个过程完全不需要密钥C的参与。