L'opération logique XOR (eXclusive OR) est un opérateur logique de l'algèbre de Boole. Cet opérateur compare deux bits et produit un bit de retour égal à 1 si les bits comparés sont différents, 0 s'ils sont identiques.
Le chiffrement XOR est utilisé dans de nombreux chiffres symétriques, notamment AES, où une même clé est utilisée pour l'encryption et la décryption. L'opérateur XOR est appliqué bit à bit entre le texte à chiffrer et la clé choisie.
Prenons l'exemple du mot "xor" que nous souhaitons chiffrer avec la clé "cle". En binaire, cela donne :
xor : 01111000 01101111 01110010 cle : 01100011 01101100 01100101 00011011 00000011 00010111
Pour revenir à l'entrée initiale ("xor" donc), il suffit de réappliquer l'opérateur XOR entre la sortie et la clé. La fonction XOR est commutative. Si la clé est plus courte que l'entrée, elle est simplement réappliquée à la chaîne.
Par exemple, pour chiffrer le mot "bonjour" avec la clé "cle", on répète simplement la clé :
plain : 01110000 01101100 01100001 01101001 01101110 clecl : 01100011 01101100 01100101 01100011 01101100
Vous pouvez constater que plus la clé est courte, plus il est facile de casser le chiffrement, car les attaques se basent souvent sur une analyse de fréquence.