Aller au contenu

XOR : Exclusive OR, ou « ou exclusif »

Cryptographie

XOR compare deux valeurs position par position et produit 1 quand elles diffèrent, 0 quand elles sont identiques. En cryptographie, on l'utilise notamment pour combiner un nonce de base avec un compteur de séquence.

Principe : Pour chaque position, deux zéros ou deux uns donnent zéro, tandis qu'un zéro et un un donnent un. L'opération est réversible : appliquer le même XOR une seconde fois avec la même valeur retrouve la valeur de départ.

Nonce et séquence : Pour chaque message, le nonce peut être calculé en faisant un XOR entre un nonce de base et le compteur de séquence. Avec un même contexte et des compteurs distincts, les nonces obtenus restent distincts, sans coordination entre les parties.

Condition d'utilisation : XOR ne garantit pas l'unicité tout seul. Il faut éviter de réutiliser un même contexte pour deux flux indépendants, et ne jamais remettre un compteur à zéro dans un contexte déjà utilisé.

Ce que XOR ne fait pas : XOR est une opération de combinaison, pas un chiffrement complet. Utilisé seul, il ne fournit ni confidentialité ni authentification.

Ce qui arrive si on s'en passe

XOR n'est pas un mécanisme de protection mais un opérateur de combinaison : sa sûreté dépend entièrement de la couche qui produit le masque. Le contrôle d'entrée consiste à garantir l'unicité du couple clé/nonce avant tout chiffrement, en refusant l'émission plutôt qu'en réutilisant un compteur. La couche de détection surveille les compteurs qui régressent, les nonces répétés dans les journaux et les redémarrages de service susceptibles de réinitialiser un état de séquence. La couche de réponse traite toute réutilisation confirmée comme une compromission des messages concernés : rotation de clé, invalidation des sessions ouvertes, réémission sous nouveau matériel cryptographique. Un XOR seul n'authentifie rien : un contrôle d'intégrité distinct reste obligatoire, sans quoi un bit inversé dans le texte chiffré inverse silencieusement le bit correspondant du clair.

Comment le mettre en place

Monter un labo minimal : générer un flux pseudo-aléatoire de 64 octets, l'utiliser comme masque XOR pour chiffrer deux messages différents, puis XOR les deux textes chiffrés entre eux. Le masque disparaît et il ne reste que le XOR des deux clairs, qu'une analyse de fréquence ou un simple mot connu suffit à démêler. Répéter l'expérience en dérivant le masque d'un nonce combiné par XOR à un compteur, puis choisir deux nonces dont le XOR avec leurs compteurs respectifs collisionne : le même flux réapparaît. Cela prouve que XOR ne protège rien par lui-même et que toute la sécurité repose sur l'unicité stricte du masque.

Explication de la marmotte

Imagine deux rangées de petites cases, chacune contenant soit une lumière éteinte, soit une lumière allumée. On compare les cases deux par deux : la nouvelle lumière s'allume seulement si les deux anciennes sont différentes. Si elles sont pareilles, elle reste éteinte. En répétant cette règle, on fabrique une nouvelle suite de lumières. Pour donner un numéro différent à chaque message, on mélange ainsi un numéro de départ avec le numéro du message. Tant que le départ et les numéros ne sont pas réutilisés à tort, chaque résultat reste différent.

Où ce terme est utilisé

← Tout le glossaire