Fonction logique OU exclusif

opérateur logique de l'algèbre de Boole From Wikipedia, the free encyclopedia

La fonction logique OU exclusif (en anglais, XOR, pour eXclusive OR) est un opérateur logique, à deux opérandes booléens, de l'algèbre de Boole. Elle est utilisée couramment en électronique, en informatique et en cryptographie.

Diagramme de Venn de

OR sans AND donne XOR

Diagramme de Venn de

Cette fonction donne en retour la disjonction exclusive (le OU exclusif) des états logiques des deux entrés. Cette fonction peut être aussi nommée "est différent".

Description

La fonction logique OU exclusif est aussi appelée disjonction exclusive, dans l'algèbre de Boole. Elle peut être représentée par le sigle : «  » ou par le signe d'addition dans un cercle : «  »[1].

C'est un opérateur booléen, à deux opérandes. Cette fonction retourne la valeur VRAI si, et seulement si, un seul des deux opérandes a la valeur VRAI[1]. Il associe un résultat qui a lui-même la valeur VRAI seulement si les deux opérandes ont des valeurs distinctes[2]. Sinon, elle retourne la valeur FAUX. Les valeurs VRAI et FAUX peuvent être représenté par les valeurs binaires 1 et 0 (en anglais BIT pour Binary digit).

Davantage d’informations Opérande 1, Opérande 2 ...
Table de vérité de la fonction OU exclusif
Opérande 1 Opérande 2 Résultat Opérande 1 Opérande 2 Résultat
a b a b a b a ⊕ b
FAUX FAUX FAUX 0 0 0
FAUX VRAI VRAI 0 1 1
VRAI FAUX VRAI 1 0 1
VRAI VRAI FAUX 1 1 0
Fermer

En cryptographie, il est aussi appelé somme binaire, et est noté « + ». À noter que dans cette représentation 1 + 1 = 0 (il n'y a pas de retenue).[réf. souhaitée]

Il se différencie de l'opérateur OU inclusif, car il donne un résultat FAUX lorsque A et B ont simultanément la valeur VRAI.

En informatique, cet opérateur peut s'utiliser pour combiner deux bits, valant chacun 0 ou 1, en appliquant les règles définies par la table précédente, le résultat étant lui-même la valeur d'un bit.

Équivalence, introduction et élimination

La disjonction exclusive , ou Jpq, peut être exprimée en termes de conjonction et logique », ), disjonction ou logique », ), et de la négation logique () comme suit[3] :

La disjonction exclusive peut aussi être formulée de la façon suivante[3] :

Cette représentation de XOR peut être utile lors de la construction d'un circuit ou d'un réseau, car il n'a qu'une seule opération et un nombre réduit d'opérations et . Une preuve de cette identité est donnée ci-dessous:

Il est parfois utile de noter de la manière suivante:

ou:

Cette équivalence peut être établie en appliquant les lois de De Morgan deux fois à la quatrième ligne de la démonstration ci-dessus.

Le ou exclusif est également équivalent à la négation d'une équivalence logique, par les règles de l'implication matérielle.

En résumé, nous avons :

Quelques propriétés mathématiques

  • [1] (on le vérifie facilement sur la table pour les 2 valeurs possibles de A)
  • [1]
  • [1]
  • [1]
  • Commutativité
  • Associativité
  • et est la fonction coïncidence.
  • si et seulement si (dans un sens, c'est immédiat, dans l'autre, utilisation de la propriété d'associativité et de la propriété : )
  • On déduit de cette propriété : ou même encore : et même encore :
  • alors et
  • (Conséquence des deux premières propriétés et de l'associativité — utile en cryptographie (voir ci-dessous))
  • L'ensemble {0;1} muni des deux lois de composition interne OU exclusif et ET est un corps fini.

Illustration

L'illustration suivante explique la fonction logique OU exclusif[1].

Les deux opérandes booléens, « a » et « b » et la fonction OU exclusif, sont simulés par des doubles interrupteurs de type NO (normalement ouvert)/NF (normalement fermé). Le résultat de la fonction est simulé par une lampe.

Une lampe s'allume (résultat VRAI) si l'on appuie (ferme le circuit) sur « a » (valeur VRAI) OU sur « b » (valeurVRAI), mais pas quand on appuit sur les deux en même temps.

Simulation de la fonction logique OU exclusif (montage électrique d'interrupteurs va-et-vient)
Chronogramme de la fonction logique OU exclusif

Symbole

Symbole européen

[1]

Symbole ANSI

[1]

Exemple d'utilisation

La fonction XOR est un exemple de fonction parité.[réf. souhaitée]

Application en électronique

Exemple d'utilisation : le circuit intégré 7486 TTL ou le circuit intégré CMOS 4070 intègre quatre portes logiques du type OU exclusif[4].

Applications en informatique

Outre les utilisations liées à la cryptographie, la fonction logique OU exclusif permet de remettre rapidement la valeur d'une variable (souvent un registre) à zéro[5].

Le code en assembleur qui utilise le OU exclusif pour remettre la valeur du registre eax à zéro :

xor eax, eax

Sur les processeurs de type x86, cette instruction est plus courte (en nombre d'octets) que le code intuitif suivant :

mov eax, 0

Elle permet aussi la mise à zéro d'une variable lorsque les conditions ne permettent pas l'octet 0x00 dans le binaire (shellcode)[réf. souhaitée].

On peut également utiliser le OU exclusif pour échanger deux variables sans utiliser de variable temporaire.

Application en électricité domestique

Une application utilisée de l'opérateur logique OU exclusif en électricité domestique est dans les salles où une ampoule peut être allumée ou éteinte par deux interrupteurs placés près de deux entrées. Chacun des deux interrupteurs peut soit allumer ou éteindre l'ampoule quelle que soit la position de l'autre interrupteur. Pour obtenir une telle fonctionnalité, on doit brancher les deux interrupteurs afin de former un opérateur XOR. C'est le montage dit « va-et-vient »[1].

Exemple d'utilisation en cryptographie

Théorie

Considérons un document numérique à chiffrer, il consiste en une suite de bits. Dans la méthode de chiffrement par flot, on doit disposer par ailleurs d'une suite de bits de même longueur, aléatoire, que l'on appelle clé de chiffrement. On traite un à un les bits du document en clair, en le combinant avec le bit de même rang de la clé de chiffrement[6].

Si nous Appelons A un bit en clair et B le bit de même rang de la suite aléatoire, le chiffrement consiste à calculer le bit C par :

C = AB .

On peut dire que : C est le chiffré de A.

Pour déchiffrer C, on utilise à nouveau le bit B de la suite aléatoire et on calcule :

A = CB.

Le résultat donne A, le bit en clair, car (en utilisant les deux premières propriétés ci-dessus) :

CB = (AB) ⊕ B = A(BB) = A0 = A.

Cette méthode est l'une des manières d'effectuer un chiffrement symétrique, où la même clé sert à chiffrer et déchiffrer.

Ce système, bien que très simple dans son principe, peut s'avérer inviolable si la suite de bits de la clé est vraiment aléatoire. Cette dernière ne doit en outre être utilisée qu'une seule fois (on parle de masque jetable, ou encore de « one-time pad »). Dans cette phrase, c'est surtout le mot « aléatoire » qui s'avère être le plus difficile à mettre en œuvre. Mais lorsque la clé est vraiment aléatoire (techniquement, qu'elle est tirée selon la distribution uniforme parmi toutes les suites possibles de cette longueur), ce système est parfaitement sûr[6], en un sens rigoureusement défini par Claude Shannon, en 1949, dans un article fondateur « Communications theory of secrecy systems ». Il convient d'ajouter que c'est le seul chiffrement aboutissant à une sécurité absolue, en théorie.

Illustration

Voici un exemple numérique de la méthode précédente[6],[7] :

1. Texte en clair à transmettre : "HELLO"

– Transposition en binaire du texte codée en ASCII (8 bits) : 01001000 01000101 01001100 01001100 01001111

2. Utilisation d'un masque aléatoire, coté transmetteur (à garder secret, bien sûr).

– 10101010 11001100 11110000 00001111 10101010

3. Chiffrement (OU exclusif bit à bit, du message avec le flux aléatoire) :

Message initiale 01001000 01000101 01001100 01001100 01001111
Flux aléatoire 10101010 11001100 11110000 00001111 10101010
Message chiffré 11100010 10001001 10111100 01000011 11100101

4. Transmission de ce message codé (non intelligible) :

– 11100010 10001001 10111100 01000011 11100101

5. Utilisation du même masque aléatoire, coté récepteur (qui est secret, bien sûr).

– 10101010 11001100 11110000 00001111 10101010

6. Déchiffrement (OU exclusif bit à bit, du message avec le flux aléatoire) :

Message chiffré 11100010 10001001 10111100 01000011 11100101
Flux aléatoire 10101010 11001100 11110000 00001111 10101010
Message déchiffré 01001000 01000101 01001100 01001100 01001111

7 - Message déchiffré :

Ainsi, le texte en clair original "HELLO" est récupéré : 01001000 01000101 01001100 01001100 01001111

Histoire

Ce système de chiffrement a été utilisé pour le téléphone rouge, en fait un télex, reliant directement le Kremlin à la Maison-Blanche, les clés transitant alors par valises diplomatiques[8].

Le système de masque jetable était également employé par les espions soviétiques. Certains masques furent utilisés plus d'une fois (parfois avec des années d'intervalle) ce qui permit aux services du chiffre anglais de déchiffrer certains messages.[réf. souhaitée]

Autres applications en cryptographie

La totalité des chiffreurs symétriques utilise l'opérateur XOR. L'algorithme de cryptographie haute sécurité symétrique AES (Rijndael) en particulier, en utilise un très grand nombre[9].

Notes et références

Voir aussi

Related Articles

Wikiwand AI