Masque jetable - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Le masque jetable, également appelé chiffre de Vernam est un algorithme de cryptographie en décalage circulaire inventé par Gilbert Vernam en 1917 et perfectionné par Joseph O. Mauborgne, qui rajouta la notion de clé aléatoire. Bien que simple, facile et rapide, tant pour le codage que pour le décodage, ce chiffrement est le seul qui soit théoriquement impossible à casser, même s'il présente d'importantes difficultés de mise en œuvre pratique.

Exemple de codage à masque jetable.
Joseph Mauborgne.

Principe

Le chiffrement par la méthode du masque jetable consiste à combiner le message en clair avec une clé présentant les caractéristiques très particulières suivantes :

  • La clé doit être une suite de caractères au moins aussi longue que le message à chiffrer.
  • Les caractères composant la clé doivent être choisis de façon totalement aléatoire.
  • Chaque clé, ou « masque », ne doit être utilisée qu'une seule fois (d'où le nom de masque jetable).

La méthode de combinaison entre le clair et la clé est simple et sera décrite ci-dessous.

L'intérêt considérable de cette méthode de chiffrement, c'est que si les trois règles ci-dessus sont respectées strictement, le système offre une sécurité théorique absolue, comme l'a prouvé Claude Shannon en 1949 (cf lien externe ci-dessous).

L'argument théorique est le suivant, dans son principe : si on ne connaît que le texte chiffré, et que toutes les clés sont équiprobables alors tous les textes clairs sont possibles et avec la même probabilité puisqu'il y a bijection, une fois le chiffré fixé, entre clés et textes clairs. Même une attaque par force brute aidée par la connaissance des caractéristiques statistiques du langage utilisé ne donnera aucune information.

Ce type d'impossibilité, appelé sécurité sémantique, ne repose pas sur la difficulté du calcul, comme c'est le cas avec les autres systèmes de chiffrement en usage. Autrement dit, le système du masque jetable est inconditionnellement sûr.

En pratique, la méthode de chiffrement n'est pas compliquée, comme le montre l'exemple suivant traitant « à la main » un court message. Elle devient extrêmement simple quand, avec l'informatique, on traite les données sous forme binaire (voir le paragraphe qui suit).

Chiffrement et déchiffrement à la main

Le chiffrement à la main par la méthode du masque jetable fut notamment utilisée par Che Guevara pour communiquer avec Fidel Castro (voir lien externe ci-dessous). Décrivons-le dans le cas d'un message long de 5 caractères.

Supposons que la clé aléatoire retenue, ou "masque", soit :

         X M C K L      

Cette clé est choisie à l'avance entre les deux personnes souhaitant communiquer. Elle n'est connue que d'eux.

On veut chiffrer le message « HELLO ». Pour cela, on attribue un nombre à chaque lettre, par exemple le rang dans l'alphabet, de 0 à 25. Ensuite on additionne la valeur de chaque lettre avec la valeur correspondante dans le masque; enfin si le résultat est supérieur à 25 on soustrait 26 (calcul dit "modulo 26") :

            7 (H)   4 (E)  11 (L)  11 (L)  14 (O) message         + 23 (X)  12 (M)   2 (C)  10 (K)  11 (L) masque         = 30      16      13      21      25     masque + message         =  4 (E)  16 (Q)  13 (N)  21 (V)  25 (Z) masque + message  modulo 26      

Le texte reçu par le destinataire est « EQNVZ ».

Le déchiffrement s'effectue de manière similaire, sauf que l'on soustrait le masque au texte chiffré au lieu de l'additionner. Ici encore on ajoute éventuellement 26 au résultat pour obtenir des nombres compris entre 0 et 25 :

             4 (E)  16 (Q)  13 (N)  21 (V)  25 (Z) message chiffré         -  23 (X)  12 (M)   2 (C)  10 (K)  11 (L) masque         = -19       4      11      11      14     message chiffré - masque         =   7 (H)   4 (E)  11 (L)  11 (L)  14 (O) message chiffré - masque modulo 26      

On retrouve bien le message initial « HELLO ».


Remarquons juste que, lors d'un cas réel, il y a plus de 26 caractères, pour les espaces, la ponctuation...

Méthode informatisée de chiffrement et déchiffrement

Lorsque les données sont informatisées, donc mises sous forme binaire, la méthode se réduit à un calcul particulièrement simple, donc très rapide en pratique.

Le message en clair, à chiffrer, se présente comme une suite de bits. La clé est une autre suite de bits, de même longueur.

On traite un à un les bits du clair, en combinant chacun avec le bit de même rang dans la clé.

Appelons A un bit du clair et B le bit de même rang de la clé.

Le chiffrement consiste à calculer un bit C en effectuant sur A et B l'opération appelée "XOR". Celle-ci est définie par le tableau suivant, qui indique pour toutes les valeurs possibles de A et B la valeur du résultat, que l'on note A ⊕ B :

Opération XOR
A B AB
0 0 0
0 1 1
1 0 1
1 1 0


Pour chiffrer on calcule donc C = A ⊕ B. Le résultat C est le chiffré de A. L'opération est effectuée pour chaque bit du clair avec le bit correspondant de la clé.

Le déchiffrement s'effectue en combinant le chiffré C avec le bit de clé B par la simple opération : C ⊕ B. Il se trouve qu'elle fait retrouver le clair A, comme nous allons le montrer.

Remarquons que l'opération XOR possède les deux propriétés suivantes :

AA = 0
A0 = A

ce qu'on vérifie facilement avec le tableau ci-dessus, en considérant les deux valeurs possibles de A, qui sont 0 ou 1.

Le calcul de déchiffrement peut donc s'écrire :

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

Il fait bien retrouver le bit de clair A.

L'application de l'opération XOR étant simple en informatique, ces traitements peuvent s'effectuer à très grande vitesse.

On veillera juste à la conformité des clés et des messages en les accompagnant de signature numérique ou par bit de parité.

Interception et tentative de décryptage.

Si un ennemi découvre le message codé, sans la clé, il verra une suite aléatoire, dont chaque caractère est décalé d'un rang inconnu, qui est celui du message. Or le hasard décalé avec le modulo reste aléatoire. Cela revient à tenter de lire un texte dont l'analyse statistique ne donnera qu'un charabia aléatoire incompréhensible.

Page générée en 0.093 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise