XOR
The XOR (Exclusive OR) operator is a logical operation that takes two binary inputs and returns a single binary output.
In cryptography, XOR is often used as a simple method for combining two values into a single value or for separating a single value into two parts.
How it works ?
XOR is a bitwise operator which returns 0
if the bits are the same, and 1
otherwise. In textbooks the XOR operator is denoted by β
, but in most programming languages you will see the char^
used instead.
0
0
0
0
1
1
1
1
0
1
0
1
For longer binary inputs, the XOR operation is done bit by bit : 1010 ^ 0111 = 1101
. If the two operand haven't the same size, then the shorter padded with non-significant 0
:
1010 ^ 01 = 1010 ^ 0001 = 1011
Properties
Like other standard mathematical objects, xor has some specific properties :
Commutative : A β B = B β A
Associative : A β B β C = A β (B β C) = (A β B) β C
Identity : A β 0 = A
Self-Inverse : A β A = 0
These properties are very interesting cause it permit the following :
Python
from pwn import *
A = "someData"
B = "OtherData"
xored = xor(A,B)
Resources
Last updated