Les schémas de Feistel

  Les algorithmes à clé secrète réduite cherchent, bien sûr, à tendre vers la perfection. Et la perfection, en cryptographie, c'est l'aléatoire : il faut que le message codé paraisse aussi aléatoire que possible, pour limiter au minimum les risques d'une attaque par analyse du texte chiffré, de ses redondances, etc...

  Le problème est que, si l'on sait depuis longtemps construire des fonctions qui ont l'air aléatoire, on ne savait pas avant les travaux de Feistel construire des bijections aléatoires. La solution apportée par Feistel est très élégante : on suppose par exemple qu'on a une fonction f "presque aléatoire" qui prend comme argument un mot de n bits, et renvoie un mot de n bits (qui donne l'impression d'avoir été choisi au hasard). L'algorithme de chiffrement va procéder en chiffrant des blocs de 2n bits, qu'on partage en 2, partie gauche G, partie droite D. L'image du bloc (G,D) par le schéma de Feistel est le bloc (L,R), avec L=D, et R= G xor f(D). Cette transformation est cette fois bijective, car si on a un tel couple (L,R), on retrouve (G,D) par D=L et G=R xor f(L). Bien sûr, la partie droite n'a pas été transformée (juste envoyée à gauche). C'est pourquoi on répète le schéma de Feistel un certain nombre de fois (on parle de tours - le DES en comporte 16).

  La plupart des algorithmes à clé secrète de la fin du XXè s. était des schémas de Feistel. L'avénement de l'AES, qui n'en est plus un, marque la fin de la prédominance de tels algorithmes.

Et encore, dans la cryptographie expliquée...


Sommaire de la Cryptographie Expliquée - Plan du site - Retour à la BibM@th - Tous droits réservés - Frédéric Bayart -