应用密码学:原理、分析与Python实现
上QQ阅读APP看书,第一时间看更新

1.3.2 异或运算

异或运算需要在二进制中进行,如果不是二进制数,就需要将该数字转换成二进制数,再进行计算。下面看看二进制中异或运算的结果:

1 XOR 1=0

0 XOR 0=0

1 XOR 0=1

0 XOR 1=1

为了书写方便,异或运算可以用表示,即。为了便于理解,可以想象一下现在有两块磁铁。假设规定磁铁互斥的值是0 ,互相吸引的值是1 。磁铁有南北两极,南极表示1 ,北极表示0 。两个磁铁的南极和南极放在一起会互斥,所以得到0 ,北极同理。但是将两个磁铁的南极和北极放在一起,就会吸引,所以是1。

异或运算还有许多有意思的性质。

归零律:

恒等律:

交换律:

结合律:

自反律:

自反律的证明非常简单,。自反律的作用非常强大,在某些密码算法中,可以运用自反律来跳过密钥并获得明文。