Quelques méthodes de cryptage à clé secrète



Le chiffrement de César

Cette méthode de cryptage extrêmement simple est attribuée à Jules César. Il s'agit d'un cryptage par substitution, où chaque lettre de l'alphabet est remplacée par une autre lettre de l'alphabet.

Par exemple en remplaçant chaque lettre par la lettre se trouvant 3 places plus loin dans l'alphabet. A la fin de l'alphabet, on recommence au début ainsi x est remplacé par a, y par b et z par c:

Alphabet du texte en clair:  a b c d e f g h i j k l m n o p q r s t u v w x y z
Alphabet du texte crypté:    d e f g h i j k l m n o p q r s t u v w x y z a b c

Le décalage introduit est la clé de chiffrage. Il est possible d'introduire n'importe quelle valeur entre 1 et 25 comme clé de chiffrage.

En utilisant un décalage de 3, le message en clair "london calling moscow" est crypté comme suit:

Texte en clair: london calling moscow
Texte crypté: orqgrqfdooljprvfrz

Supprimer les espaces dans le texte crypté rend le décryptage plus difficile. Il serait en effet relativement facile de trouver le décalage en analysant les mots courts.

Pour convertir le message crypté en texte en clair, il suffit d'inverser le processus de cryptage. Pour la clé de cryptage n, simplement remplacer chaque lettre du texte crypté par la lettre se trouvant n positions avant dans l'alphababet.

La clé n = 13 présente la particularité de permettre un décryptage par décalage en "amont" ou en "aval" de 13 positions dans l'alphabet, de par sa position au milieu de l'alphabet. Il en ressort que la procédure de cryptage est la même que celle de décryptage (par ex. décalage en "amont" de 13 lettres), ce qui entraîne une utilisation assez fréquente de cette valeur de clé.

Faiblesses

Même si la clé est inconnue, il n'est pas difficile de décrypter un texte crypté selon la méthode du chiffre de César. Le plus simple est d'essayer les 25 possibilités de décalage jusqu'à ce que le texte trouvé ait un sens.

L'analyse de fréquence d'occurrence des lettres peut également être utilisée pour trouver la clé. Sachant que la lettre apparaissant le plus fréquemment dans un texte français est le "e", si la lettre survenant le plus fréquemment dans le texte crypté est un "r", il est probable que la clé est 13.

N.B. l'analyse de fréquence d'occurrence nécessite un texte d'une certaine longueur pour être applicable.

 


Le chiffrement de Vigenère

Ce cryptage, de manière analogue à celui de César, remplace chaque lettre du texte en clair par une lettre décalée de n positions plus loin dans l'alphabet. La différence réside dans le fait que la valeur n du décalage varie pour chaque lettre du texte original en clair. Les valeurs successives de décalage n sont déterminées par une clé de chiffrement. En prenant "vigenere" comme exemple de mot-clé, cela nous donne la clé de chiffrement " 22 9 7 5 14 5 18 5 " (en faisant correspondre les lettres du mot-clé à leur position dans l'alphabet a=1, b=2, etc.). Si en décalant une lettre du texte en clair, on arrive à la fin de l'alphabet, on recommence à " a ", par exemple la lettre " w " du texte en clair cryptée par la lettre clé " f " (décalage = 6) aura comme lettre cryptée correspondante " c ".

Pour crypter le texte en clair, la première lettre est décalée de 22 positions, la seconde de 9, la troisième de 7, etc. Lorsque la fin de la clé de chiffrement est atteinte, on recommence au début, ainsi la 9e lettre du texte en clair sera décalée de 22 positions, la 10e de 9, la 11e de 7, etc.

Ci-après un exemple où le texte en clair "London calling Moscow" est crypté au moyen de la clé "vigenere"

texte en clair:   l  o  n  d  o  n  c  a  l  l  i  n  g  m  o  s  c  o  w
clé:              v  i  g  e  n  e  r  e  v  i  g  e  n  e  r  e  v  i  g  
décalage:         22 9  7  5  14 5  18 5  22 9  7  5  14 5  18 5  22 9  7  
texte crypté:     h  x  u  i  c  s  u  f  h  u  p  s  u  r  g  x  y  w  d

 

Le tableau de Vigenère

Il s'agit d'un instrument utile pour crypter un texte selon la méthode de Vigenère. La première ligne représente les lettres possibles du texte en clair. La première colonne représente les lettres possibles de la clé. L'intersection des lettres d'une colonne (lettre du texte en clair) et d'une ligne (lettre-clé) donne la lettre cryptée associée.

alphabet texte en clair: 
      a b c d e f g h i j k l m n o p q r s t u v w x y z
clé
a -   b c d e f g h i j k l m n o p q r s t u v w x y z a
b -   c d e f g h i j k l m n o p q r s t u v w x y z a b
c -   d e f g h i j k l m n o p q r s t u v w x y z a b c
d -   e f g h i j k l m n o p q r s t u v w x y z a b c d
e -   f g h i j k l m n o p q r s t u v w x y z a b c d e
f -   g h i j k l m n o p q r s t u v w x y z a b c d e f
g -   h i j k l m n o p q r s t u v w x y z a b c d e f g
h -   i j k l m n o p q r s t u v w x y z a b c d e f g h
i -   j k l m n o p q r s t u v w x y z a b c d e f g h i
j -   k l m n o p q r s t u v w x y z a b c d e f g h i j
k -   l m n o p q r s t u v w x y z a b c d e f g h i j k
l -   m n o p q r s t u v w x y z a b c d e f g h i j k l
m -   n o p q r s t u v w x y z a b c d e f g h i j k l m
n -   o p q r s t u v w x y z a b c d e f g h i j k l m n
o -   p q r s t u v w x y z a b c d e f g h i j k l m n o
p -   q r s t u v w x y z a b c d e f g h i j k l m n o p
q -   r s t u v w x y z a b c d e f g h i j k l m n o p q
r -   s t u v w x y z a b c d e f g h i j k l m n o p q r
s -   t u v w x y z a b c d e f g h i j k l m n o p q r s
t -   u v w x y z a b c d e f g h i j k l m n o p q r s t
u -   v w x y z a b c d e f g h i j k l m n o p q r s t u
v -   w x y z a b c d e f g h i j k l m n o p q r s t u v
w -   x y z a b c d e f g h i j k l m n o p q r s t u v w
x -   y z a b c d e f g h i j k l m n o p q r s t u v w x
y -   z a b c d e f g h i j k l m n o p q r s t u v w x y
z -   a b c d e f g h i j k l m n o p q r s t u v w x y z

Pour décrypter un message crypté avec le système de Vigenère, le processus est renversé, c'est-à-dire que chaque lettre de texte crypté est remplacée par la lettre n places avant elle dans l'alphabet, où n est déterminé à partir du mot-clé. En utilisant le tableau, on recherche la lettre cryptée dans la ligne correspondant à la lettre-clé. La colonne trouvée pour la lettre cryptée permet de déterminer la lettre du texte en clair sur la première ligne.

Faiblesses

L'utilisation du chiffre de Vigenère équivaut à utiliser une série de répétitions d'alphabets de substitution. L'utilisation de multiples alphabets de substitution détruit les correspondances de fréquence de lettres qui pourraient être employés pour déchiffrer le message si un alphabet simple de substitution avait été utilisé. En dépit de ceci, l'analyse de fréquence peut encore être employée pour casser un chiffrement de Vigenère. Si l'analyse de fréquence est effectuée pour chaque n ième lettre, la distribution de fréquence sera celle du langage du texte en clair si n est la longueur de la clé (ou un multiple de la longueur de la clé). Pour d'autres valeurs de n la distribution sera plus égale, ressemblant à celle d'une sélection aléatoire de lettres. Une fois que la longueur principale, n, a été trouvée, le texte crypté peut être décomposé en segments correspondant à chaque lettre de la clé et l'analyse de fréquence de chaque segment employé pour trouver chaque lettre de la clé. Pour que l'analyse de fréquence soit fiable, le texte doit être considérablement plus long que la clé. Une autre méthode, dite de force brute, pour casser le chiffrement de Vigenère consisterait à essayer chaque mot du dictionnaire comme clé jusqu'à ce que le message semble cohérent. Pénible à la main, mais tout à fait faisable avec un ordinateur.

 


Le chiffrement de Vigenère à propre clé

Ce chiffrement, dans lequel le message en clair agit en tant que sa propre clé, a également été développé par Vigenère. L'idée est d'employer un caractère graine pour commencer la clé et, comme avec un chiffrement ordinaire de Vigenère, la première lettre du texte en clair est remplacée par la lettre n places plus loin dans l'alphabet, où n est déterminé par le caractère graine. Si la graine est " d ", le décalage est 4 parce que "d" est la 4 ème lettre dans l'alphabet et le caractère " i " du texte en clair, par exemple, serait remplacé par " m " dans le texte crypté. Au lieu d'utiliser un deuxième caractère de clé comme avec le chiffrement de Vigenère pour chiffrer la deuxième lettre de plaintext, c'est le premier caractère du texte en clair qui sert pour la deuxième lettre de la clé et ainsi de suite pour le reste du texte en clair. En bref, la première lettre est cryptée en utilisant la graine, et chaque lettre successive du texte en clair est cryptée en utilisant la lettre du texte en clair la précédant.

Voici un exemple avec la lettre " j " comme graine:

texte en clair:    l  o  n  d  o  n  c  a  l  l  i  n  g  m  o  s  c  o  w   
clé:               j  l  o  n  d  o  n  c  a  l  l  i  n  g  m  o  s  c  o
décalage:          10 12 15 14 4  15 14 3  1  12 12 9  14 7  13 15 19 3  15
texte crypté:      v  a  c  r  s  c  q  d  m  x  u  w  u  t  b  h  v  r  l  

Tout ce qui est nécessaire pour décrypter le texte est le caractère graine. En décalant la première lettre du texte crypté du nombre de places dans l'alphabet correspondant au caractère graine, on obtient la première lettre du texte en clair qui est alors employée pour décrypter la deuxième lettre du texte crypté et ainsi de suite.

Faiblesses

Même si la clé est inconnue, il n'est pas difficile de décrypter un texte crypté selon la méthode du chiffrement de Vigenère à propre clé. En effet, une fois le caractère graine déterminé, les caractères suivants découlent automatiquement du texte crypté. Le plus simple est d'essayer les 25 possibilités de décalage pour le premier caractère du texte crypté et d'effectuer les décalages en découlant pour les caractères suivants jusqu'à ce que le texte trouvé ait un sens.

 


Le chiffrement d'Auguste

Ce chiffrement est étroitement lié au chiffrement de Vigenère et est attribué à l'empereur Auguste. On raconte qu'il avait l'habitude d'utiliser un passage d'Homère comme clé pour crypter ses messages. En effet, au lieu d'avoir un mot servant de clé et qui se répète, on recourt à un texte aussi long que le texte en clair à crypter qui sert de clé (on utilise simplement la longueur voulue du texte servant de base pour la clé).

Pour crypter la m ième lettre du texte en clair, on choisit la m ième lettre du texte servant de clé; la position de cette lettre dans l'alphabet détermine le décalage pour la lettre de texte en clair. En d'autres termes, si la m ième lettre du texte en clair est " o " et la m ième lettre du texte servant de clé est " c ", le décalage est 3 parce que " c " est la 3 ième lettre dans l'alphabet, et ainsi " o " est remplacé par " r " dans le texte crypté. Si en décalant une lettre du texte en clair, on arrive à la fin de l'alphabet, on recommence à " a ", par exemple la lettre " w " du texte en clair cryptée par la lettre clé " f " (décalage = 6) aura comme lettre cryptée correspondante " c ".

Voici un exemple de texte en clair " London calling Moscow with urgent message " crypté en utilisant les mots de Hamlet: "to be or not to be that is the question" comme clé:

texte en clair:    l  o  n  d  o  n  c  a  l  l  i  n  g  m  o  s  c  o    
clé:               t  o  b  e  o  r  n  o  t  t  o  b  e  t  h  a  t  i
décalage:          20 15 2  5  15 18 14 15 20 20 15 2  5  20 8  1  20 9 
texte crypté:      f  d  p  i  d  f  q  p  f  f  x  p  l  g  w  t  w  x

texte en clair:    w  w  i  t  h  u  r  g  e  n  t  m  e  s  s  a  g  e  
clé:               s  t  h  e  q  u  e  s  t  i  o  n  w  h  e  t  h  e
décalage:          19 20 8  5  17 21 5  19 20 9  15 14 23 8  5  20 8  5
texte crypté:      p  q  q  y  y  p  w  z  y  w  i  a  b  a  x  u  o  j

 

Ce qui nous donne le texte crypté suivant: "fdoidfqpffxolgwtwxpqqyypwzywiabaxuoj"

Le tableau de Vignere peut être employé pour crypter des lettres comme dans le chiffrement de Vigenère. La différence étant dans ce cas que l'ordre des alphabets substitués ne se répète pas mais est déterminé par le texte servant de clé. Le décryptage du texte codé s'obtient en renversant le processus décrit ci-dessus. Par exemple, pour la première lettre du texte crypté montré ci-dessus, " f ", la première lettre de la clé, " t ", détermine un décalage de 20 positions. Cette lettre du texte crypté est alors remplacée par la lettre 20 positions avant elle dans l'alphabet, soit " l ", et ainsi de suite pour le reste du message.

Faiblesses

Puisque l'ordre des alphabets ne répète pas, l'analyse de fréquence des lettres ne peut pas être employée pour aider à casser ce chiffrement. Cependant, puisque la clé est constituée de mots figurant dans le dictionnaire, on peut essayer de trouver le mot clé mot par mot. En effet, une fois que l'on a quelques mots, il se peut que l'on reconnaisse le texte qui a été utilisé comme clé, accélérant ainsi le processus. Un problème pratique est lié à la clé qui est aussi longue que le texte en clair et qui rend quasi indispensable un traitement informatique.

 


Le chiffrement d'Auguste à clé aléatoire (One-Time)

Comme nous l'avons vu avec le chiffrement d'Auguste, l'allongement de la clé augmente passablement le niveau de sécurité et rend quasi impossible un décryptage manuel. Mais les progrès de l'informatique rendent un tel décryptage possible. Une variante du chiffrement d'Auguste nous donne cependant un chiffrement totalement indécryptable: la clé doit avoir la longueur du texte en clair à crypter ET la suite des lettres la constituant totalement aléatoire.

Voici un exemple de texte en clair " London calling Moscow " crypté en utilisant la clé aléatoire "acfozjklhbcztaylpuc":

texte en clair:    l  o  n  d  o  n  c  a  l  l  i  n  g  m  o  s  c  o  w 
clé:               a  c  f  o  z  j  k  l  h  b  c  z  t  a  y  l  p  u  c
décalage:          1  3  6  15 26 10 11 12 8  2  3  26 20 1  25 12 16 21 3
texte crypté:      b  r  t  s  o  x  n  m  t  n  l  n  a  n  n  e  s  j  z

Le texte crypté est totalement indécryptable car n'importe quel texte en clair peut donner le même texte crypté moyennant l'emploi de la clé appropriée. 

Faiblesses

Si vous utilisez la même clé deux fois sur deux messages différents vous rendez les messages beaucoup plus vulnérables à l'attaque. Votre ennemi peut établir une relation entre les deux textes cryptés qui est identique à celle existant entre les deux messages initiaux des textes en clair. Cela revient à posséder une copie de l'un ou l'autre message crypté par une clé non aléatoire et ramène le problème à celui de casser le chiffrement d'Auguste. Mais si une clé n'est utilisée qu'une fois, le texte crypté reste théoriquement incassable (d'où le nom One-Time). Un problème pratique est lié à la clé qui est aussi longue que le texte en clair et dont la suite aléatoire des caractères rend quasi indispensable un traitement informatique.

 


 

NS 13.11.98

 

1