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