Résumé
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. vignette|438x438px|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.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (3)
COM-401: Cryptography and security
This course introduces the basics of cryptography. We review several types of cryptographic primitives, when it is safe to use them and how to select the appropriate security parameters. We detail how
COM-501: Advanced cryptography
This course reviews some failure cases in public-key cryptography. It introduces some cryptanalysis techniques. It also presents fundamentals in cryptography such as interactive proofs. Finally, it pr
COM-301: Computer security and privacy
This is an introductory course to computer security and privacy. Its goal is to provide students with means to reason about security and privacy problems, and provide them with tools to confront them.
Concepts associés (16)
Twofish
Twofish est un algorithme de chiffrement symétrique par bloc inventé et analysé par Bruce Schneier, Niels Ferguson, John Kelsey, Doug Whiting, David Wagner et Chris Hall. Twofish chiffre des blocs de 128 bits avec une clé de 128, 192 ou 256 bits. Il reprend en partie des concepts présents dans le populaire Blowfish, du même auteur. Il était l'un des cinq finalistes du concours AES. mais il n'a pas été sélectionné pour le standard.
Taille de bloc (cryptographie)
En cryptologie moderne, la cryptographie symétrique se divise en deux catégories : le chiffrement par bloc et le chiffrement par flot. Les chiffrements par bloc travaillent sur des blocs de bits dont la longueur est fixe. La taille de bloc se réfère au nombre de bits présents dans le bloc traité par l'algorithme. Le bloc en clair est transmis à l'algorithme de chiffrement qui va produire un bloc de même taille mais chiffré. La sortie ne peut pas être plus courte que l'entrée puisque le système doit être inversé lors du déchiffrement (contrairement aux fonctions de hachage).
Key schedule
vignette|Key schedule dans l'algorithme DES: 16 sous-clés de 48 bits sont créées. En cryptographie, le key schedule (préparation des clés) consiste à créer des sous-clés à partir de la clé principale pour un algorithme de chiffrement par bloc. Le terme est également employé dans le cadre des fonctions de hachage cryptographiques même si la notion de clé est ici différente (la clé provenant en général du message à hacher). Certains chiffrements ont des algorithmes de préparation relativement simples.
Afficher plus