Quelques algorithmes à substitutions.

a)CESAR :

ØIntroduction :

César est le premier système de cryptage connu. Selon la légende, Jules César l'aurait utilisé au cours de ses combats afin de transmettre des messages codés qui ne soient pas déchiffrables par ses adversaires.

ØDescription de l’algorithme :

Le mode de cryptage consiste à remplacer une lettre de l'alphabet par la lettre qui se situe n places plus loin dans l'alphabet (historiquement, Jules César utilisait un décalage de 3).

Par exemple, si on prend n=3, on aura les substitutions suivantes:

à D ; B à E ; C à F ; ... ; Y à B ; Z à C

ØAvantages et Inconvénients de cet algorithme :

Le seul avantage de cette méthode est sa simplicité. En effet, elle ne met en jeu aucun calcul ou permutation compliqué.

C'est aussi ce qui fait sa faiblesse: n'importe qui peut, sans avoir besoin d'une machine, déchiffrer un message codé en essayant tout simplement toute les clefs de 1 à 25. C'est pourquoi cette méthode est à proscrire dès que le veut vraiment rendre confidentiel un message.

b)VIGENERE :

ØIntroduction :

Vigenere a inventé son code au XVIème siècle selon un procédé voisin de celui de César. En effet, dans le cas du code de César nous sommes confrontés à un code à substitution simple; ici, Vigenere emploie un code à substitution polyalphabétique.

ØDescription de l’algorithme :

Le code de Vigenere étant un code à substitution polyalphabétique, l'algorithme consiste à substituer à chaque lettre de notre message une lettre de l'alphabet que nous calculons à partir d'une clef. Afin de calculer la nouvelle lettre de substitution, nous numérotons de 0 à 25 les lettres de l'alphabet, puis nous calculons les valeurs des lettres du message, et enfin nous ajoutons à cette valeur la valeur de la lettre de la clef qui correspond à la position de la lettre du message.

ØAvantages et Inconvénients de cet algorithme :

L'avantage de cet algorithme par rapport à César est qu'il est un peut plus compliqué à déchiffrer du fait de l'utilisation d'une clef secrète. Cependant, il reste néanmoins très facilement déchiffrable, pour peu que l'on ait plusieurs messages chiffrés, en utilisant des méthodes statistiques (i.e. on utilise le fait que certaine lettre de l'alphabet sont plus utilisées que d'autres dans la langue utilisée).

c)ENIGMA :

ØIntroduction :

Enigma est une machine à rotors allemande qui fut utilisée durant la seconde guerre mondiale. Le code que sa version de base engendrait a été "cassé" par le "Chiffre" polonais (regroupement militaire des cryptanalystes de Pologne) grâce à des renseignements des services secrets français. Malheureusement, entre temps, les allemands avaient fabriqué une machine plus performante que les polonais n'ont pas réussi à "casser". C'est pourquoi, ce sont les services du "Chiffre" britannique (comprenant Turing) qui s'en sont chargés (en utilisant la méthode du mot probable) grâce à une autre machine appelée alors "Bombe".

ØDescription de l’algorithme :

La machine Enigma utilisée par les allemands était composée de 5 éléments:

- Un tableau de connexions

- 3 rotors

- Un réflecteur.

Le tableau de connexions attribue à chaque lettre de l'alphabet une autre lettre de l'alphabet.

Les rotors établissent des connexions entre différentes lettres de l'alphabet et effectue des rotations (d'où le problème du décryptage si on ne connaît pas leur position d'origine). En effet, dès qu'une lettre a été codée, le premier rotor tourne d'un cran; le second rotor tourne d'un cran chaque fois que le premier a fait un tour et le troisième rotor avance d'un cran quand le deuxième a fait un tour. Ce qui, compte tenu du nombre de combinaisons, équivaut à un codage de Vigenere avec une clef d'une période de 17576 (26*26*26).

Le réflecteur, quant a lui effectue des permutations entre les lettres et renvoie la lettre à coder une nouvelle fois à travers les 3 rotors.

ØAvantages et Inconvénients de cet algorithme :

L'avantage principal de cette méthode est que, comme nous l'avons vu, elle est similaire à la méthode de Vigenere avec une clef d'une période de 17576. D'où la difficulté de déchiffrer. Cependant, il possède aussi la même faiblesse que la méthode de Vigenere, c'est à dire qu'il peut être vaincu par une "attaque statistique" (en supposant, comme c'était le cas pour le Chiffre polonais, que nous n'ignorons pas tout du fonctionnement de la machine).