AccueilđŸ‡«đŸ‡·Chercher

RĂ©seau de Feistel

Un rĂ©seau de Feistel est une construction utilisĂ©e dans les algorithmes de chiffrement par bloc, nommĂ©e d'aprĂšs le cryptologue d'IBM, Horst Feistel. Elle a Ă©tĂ© utilisĂ©e pour la premiĂšre fois dans Lucifer et DES. Cette structure offre plusieurs avantages, le chiffrement et le dĂ©chiffrement ont une architecture similaire voire identique dans certains cas. L'implĂ©mentation matĂ©rielle est aussi plus facile avec un tel systĂšme mĂȘme si les choses ont passablement changĂ© depuis la fin des annĂ©es 1970. Un rĂ©seau de Feistel repose sur des principes simples dont des permutations, des substitutions, des Ă©changes de blocs de donnĂ©es et une fonction prenant en entrĂ©e une clĂ© intermĂ©diaire Ă  chaque Ă©tage.

Il est vraisemblable que Feistel ne soit pas le seul inventeur de cette architecture. Durant une conférence, Don Coppersmith a laissé entendre que Bill Notz et Lynn Smith (de l'équipe d'IBM travaillant sur DES) avaient été en grande partie à l'origine du réseau de Feistel tel que nous le connaissons.

Structure

Réseau de Feistel à n tours utilisant l'opérateur XOR

Un rĂ©seau de Feistel est subdivisĂ© en plusieurs tours ou Ă©tages. Dans sa version Ă©quilibrĂ©e, le rĂ©seau traite les donnĂ©es en deux parties de taille identique. À chaque tour, les deux blocs sont Ă©changĂ©s puis un des blocs est combinĂ© avec une version transformĂ©e de l'autre bloc. Pour simplifier, la moitiĂ© des donnĂ©es sont encodĂ©es avec la clef, puis le rĂ©sultat de cette opĂ©ration est ajoutĂ© grĂące Ă  un xor (ou exclusif) Ă  l'autre moitiĂ© des donnĂ©es. Puis au tour suivant, on inverse : c'est au tour de la derniĂšre moitiĂ© d'ĂȘtre chiffrĂ©e puis d'ĂȘtre ajoutĂ©e avec un xor Ă  la premiĂšre moitiĂ©, sauf qu'on utilise les donnĂ©es chiffrĂ©es prĂ©cĂ©demment (sinon ça ne servirait Ă  rien de faire plus de deux tours). Le schĂ©ma ci-contre montre le cheminement des donnĂ©es (le ⊕ reprĂ©sente le xor). Chaque tour utilise une clĂ© intermĂ©diaire, en gĂ©nĂ©ral tirĂ©e de la clĂ© principale via une gĂ©nĂ©ration appelĂ©e key schedule. Les opĂ©rations effectuĂ©es pendant le chiffrement avec ces clefs intermĂ©diaires sont spĂ©cifiques Ă  chaque algorithme.

Dans le cas de DES, le réseau de Feistel possÚde 16 tours, chacun avec une sous-clé. Ces différentes clés permettent d'améliorer la robustesse d'un algorithme face à la cryptanalyse.

Une variante, le réseau de Feistel non-équilibré coupe les données en deux parties de tailles différentes. Cette variante a été utilisée dans MacGuffin de Bruce Schneier, ou encore Skipjack, candidat pour AES.

DĂ©finition formelle

Une dĂ©finition formelle d'un rĂ©seau de Feistel peut ĂȘtre donnĂ©e sous plusieurs formes. Nous reprenons ici la notation utilisĂ©e par Knudsen dans Partial and Higher Order Differentials and Applications to DES.

et
et
  • l'exposant reprĂ©sente la sous-partie du bloc considĂ©rĂ©e (L Ă  gauche, R Ă  droite).
  • correspond au bloc de texte clair, correspond au bloc de gauche Ă  l'entrĂ©e du tour
  • correspond au bloc de texte chiffrĂ©, correspond au bloc de droite Ă  la sortie du tour
  • est la clĂ© du tour , elle est calculĂ©e grĂące Ă  un key schedule de la clĂ© principale
  • est le nombre de tours dans l'algorithme
  • est une opĂ©ration dans un groupe commutatif (souvent un XOR ou une addition)

Composition des tours

Chaque tour applique plusieurs transformations sur les données provenant du tour précédent :

On utilise les termes de confusion et diffusion pour décrire la propagation des informations dans la structure (termes utilisés par Claude Shannon). En effet, une modification d'un bit en entrée produira des variations trÚs importantes dans les étages intermédiaires et en sortie. Un terme plus récent pour décrire ce phénomÚne est l'effet avalanche. L'utilisation des permutations permet d'améliorer la diffusion alors que les substitutions ont pour effet d'augmenter la confusion.

Cryptanalyse

Les schémas de Feistel ont été largement analysés et examinés par les experts. Plusieurs attaques sont possibles mais les deux principales sont :

Ces méthodes ont fait leur preuve sur DES et sur d'autres algorithmes similaires. Mais cela ne signifie pas que l'utilisation d'un réseau de Feistel va obligatoirement entraßner des vulnérabilités significatives. Grùce à l'ajout de différentes techniques et avec une conception bien menée, on peut considérablement améliorer la résistance d'un algorithme basé sur Feistel. C'est le cas pour Blowfish qui est cryptographiquement sûr à la date de .

En gĂ©nĂ©ral, les cryptanalystes s'attaquent en premier Ă  des versions amoindries des chiffrements, c’est-Ă -dire comportant moins de tours.

Algorithmes

Un grand nombre d'algorithmes utilise des réseaux de Feistel, avec des variantes. Voici une liste non exhaustive :

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.