Réseau de Feistel
En cryptographie, un chiffrement Feistel est une structure symétrique utilisée dans la construction de chiffrement par blocs, du nom du cryptographe allemand d'IBM Horst Feistel ; il est également connu sous le nom de réseau Feistel. Un grand no…
En cryptographie, un chiffrement Feistel est une structure symétrique utilisée dans la construction de chiffrement par blocs, du nom du cryptographe allemand d'IBM Horst Feistel ; il est également connu sous le nom de réseau Feistel. Un grand nombre de chiffres par blocs utilisent ce schéma, notamment la norme de chiffrement des données
La structure Feistel présente l'avantage que les opérations de cryptage et de décryptage sont très similaires, voire identiques dans certains cas, ne nécessitant qu'une inversion du schéma des clés. Par conséquent, la taille du code ou du circuit nécessaire pour mettre en œuvre un tel chiffrement est presque réduite de moitié.
La construction de Feistel est de nature itérative, ce qui facilite la mise en œuvre du cryptosystème dans le matériel.
Les réseaux Feistel et les constructions similaires sont des chiffrages de produits, et combinent donc plusieurs séries d'opérations répétées, telles que
Le brassage des bits crée l'effet de diffusion, tandis que la substitution est utilisée pour la confusion.
Galerie d’images
1 ImageTravaux théoriques
De nombreux chiffres en bloc symétriques modernes utilisent les réseaux de Feistel, et la structure et les propriétés des chiffres de Feistel ont été largement explorées par les cryptographes. Plus précisément, Michael Luby et Charles Rackoff ont analysé la construction du chiffrement par blocs de Feistel, et ont prouvé que si la fonction de ronde est une fonction pseudo-aléatoire cryptographiquement sûre, avec Ki utilisé comme germe, alors 3 rondes sont suffisantes pour faire du chiffrement par blocs une permutation pseudo-aléatoire, tandis que 4 rondes sont suffisantes pour en faire une permutation pseudo-aléatoire "forte" (ce qui signifie qu'elle reste pseudo-aléatoire même pour un adversaire qui obtient un accès oracle à sa permutation inverse). En raison de ce résultat très important de Luby et Rackoff, les chiffres Feistel sont parfois appelés chiffres en bloc Luby-Rackoff. D'autres études théoriques ont généralisé la construction, et ont défini des limites plus précises pour la sécurité.
Construction
Soit F comme fonction de ronde et K 1 , K 2 , ... , K n comme K_{1},K_{2},\ldots ,K_{n}} comme
sous-clés pour les rondes 1 , 2 , ... , n comme 1,2,\ldots ,n}
respectivement.
Le fonctionnement de base est alors le suivant :
Séparez le bloc de texte en clair en deux parties égales, ( L 1 {\displaystyle L_{1}} , R 1 {\displaystyle R_{1}}
)
Pour chaque tour i = 1, 2, ..., n (style d'affichage i=1, 2, points, n) , calculer (calculer)
L i + 1 = R i (style d'affichage L_{i+1}=R_{i}\,}
R i + 1 = L i ⊕ F ( R i , K i ) {\displaystyle R_{i+1}=L_{i}\oplus {\rm {F}}(R_{i},K_{i})} .
Le texte chiffré est alors ( R n + 1 , L n + 1 )} . (En général, les deux pièces R n {\style d'affichage R_{n}}
et L n {\style d'affichage L_{n}}
ne sont pas interverties après le dernier tour).
Le décryptage d'un texte chiffré ( R n , L n ) est réalisé en calculant pour i = n , n - 1 , ... , 1 {\displaystyle i=n,n-1,\ldots ,1}
R i = L i + 1 {\displaystyle R_{i}=L_{i+1}\,}
L i = R i + 1 ⊕ F ( L i + 1 , K i ) {\displaystyle L_{i}=R_{i+1}\oplus {\rm {F}}(L_{i+1},K_{i})} .
Ensuite, ( L 1 , R 1 ) est à nouveau le texte en clair.
L'un des avantages de ce modèle est que la fonction ronde de type F ne doit pas nécessairement être inversible et peut être très complexe.
Le schéma illustre le processus de cryptage. Le décryptage ne nécessite que l'inversion de l'ordre de la sous-clé K n , K n - 1 , ... , K 1 {\displaystyle K_{n},K_{n-1},\ldots ,K_{1}} en utilisant le même processus ; c'est la seule différence entre le cryptage et le décryptage :
Les chiffres Feistel non équilibrés utilisent une structure modifiée où L 1 {\displaystyle L_{1}} et R 1 {\displaystyle R_{1}} ne
sont pas de longueurs égales. Le chiffrement MacGuffin est un exemple expérimental de ce type de chiffrement.
La construction Feistel est également utilisée dans des algorithmes cryptographiques autres que les chiffrages par blocs. Par exemple, le schéma OAEP (Optimal Asymmetric Encryption Padding) utilise un simple réseau Feistel pour randomiser les cryptogrammes dans certains schémas de chiffrement à clé asymétrique.
Liste des chiffres Feistel
Feistel ou Feistel modifié : Blowfish, Camellia, CAST-128, DES, FEAL, ICE, KASUMI, LOKI97, Lucifer, MARS, MAGENTA, MISTY1, RC5, TEA, Triple DES, Twofish, XTEA, GOST 28147-89
Feistel généralisé : CAST-256, MacGuffin, RC2, RC6, Skipjack
Questions et réponses
Q : Qu'est-ce qu'un chiffre Feistel ?
R : Un chiffrement de Feistel est une structure symétrique utilisée dans la construction de chiffrement par blocs, nommée d'après le cryptographe allemand d'IBM, Horst Feistel. Il est également connu sous le nom de réseau Feistel.
Q : Quels sont les avantages de l'utilisation d'une structure Feistel ?
R : Le principal avantage de l'utilisation d'une structure Feistel est que les opérations de cryptage et de décryptage sont très similaires, voire identiques dans certains cas, ne nécessitant qu'une inversion du calendrier des clés. Cela réduit de près de moitié la taille du code ou du circuit nécessaire à la mise en œuvre d'un tel chiffrement. En outre, sa nature itérative facilite la mise en œuvre du cryptosystème dans le matériel.
Q : Comment Claude Shannon décrit-il "la confusion et la diffusion" ?
R : Claude Shannon décrit la "confusion et la diffusion" comme la présence de grandes quantités de ces deux éléments afin de rendre difficile le déchiffrage d'un message crypté par un attaquant.
Q : Quelles techniques sont utilisées pour créer la confusion et la diffusion ?
R : La confusion et la diffusion sont créées par le brassage de bits (souvent appelé boîtes de permutation ou boîtes P) et des fonctions non linéaires simples (souvent appelées boîtes de substitution ou boîtes S), ainsi que par le mélange linéaire (au sens de l'algèbre modulaire) à l'aide de XOR. Le mélange de bits crée l'effet de diffusion, tandis que la substitution est utilisée pour la confusion.
Q : Quel type de chiffrement est un réseau de Feistel ?
R : Un réseau de Feistel est un type de produit de chiffrement qui combine plusieurs tours d'opérations répétées afin de chiffrer des données en toute sécurité.
Q : Qui a développé ce type de cryptographie ?
R : La structure Feistel a été développée par Horst Feistel, cryptographe allemand d'IBM.
Q : La norme Data Encryption Standard est-elle basée sur ce type de cryptographie ?
R : Oui, Data Encryption Standard utilise ce type de cryptographie qui utilise les mêmes principes décrits ci-dessus pour créer la confusion et la diffusion au sein d'un message crypté.
Articles liés
Auteur
AlegsaOnline.com Réseau de Feistel Leandro Alegsa
URL: https://fr.alegsaonline.com/art/33900
