Cryptage d'un texte à l'aide d'un «ou exclusif» (xor)

Le changement d'échelle que constitue le passage du niveau de codage "caractère" au niveau de codage "bit" a permis de manipuler véritablement les nombres, en enrichissant la cryptographie de techniques mathématiques de brouillage non disponibles au niveau caractère.

La technique la plus simple est d'appliquer un « OU exclusif » (XOR) entre le texte à chiffrer et la clé. L'opération « OU exclusif », notée + en mathématiques, est une opération logique qui ne retourne la valeur 1 que si les deux bits comparés sont différents. C'est le « OU » de l'expression « fromage OU dessert » : l'un ou l'autre, mais pas les deux. C'est une opération classique sur les bits :

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0

On remarque les propriétés suivantes :

a + a = 0
a + b + b= a

L'algorithme du « OU exclusif » simple n'est en fait rien d'autre qu'un chiffre de Vigenere, c'est à dire une substitution polyalphabétique utilisant une clé. Il est donc facile à "casser" quand on dispose de moyens modernes. Cependant, cet algorithme reste très souvent utilisé dans des logiciels commerciaux, du moins dans le monde de la micro.

L'applet ci-contre est une implémentation très simple du cryptage par «OU exclusif». Notez que les caractéres non affichables sont remplacés par leur code en héxadécimal, avec la convention utilisée en Java : Par exemple, \u000D représente le caractère de code ASCII 13 (en décimal).

Notez également que le processus est réversible : si on rechiffre un texte déjà chiffré, avec la même clé, on obtient le texte en clair.

No Java Support.