Chiffre de Feistel

Dans la cryptographie , un chiffre de Feistel de est un chiffre par bloc avec une structure symétrique, baptisée du nom de horst Feistel de cryptographe d'IBM ; on le connaît également généralement comme réseau de Feistel de . Une grande proportion d'utilisation des chiffres de bloc l'arrangement, y compris l'unité de chiffrement américaine (DES). La structure de Feistel a l'avantage qui le chiffrage et les opérations du déchiffrage sont très semblables, même identique dans certains cas, exigeant seulement une inversion du programme de clef de . Par conséquent la taille du code ou des circuits exigés pour mettre en application un tel chiffre est presque divisée en deux.

Les réseaux de Feistel et les constructions semblables sont les chiffrements produit et ainsi combiner les ronds multiples des opérations répétées, comme :
Peu-brouiller (souvent appelé boîtes ou les P-boîtes de permutation)
Fonctions non linéaires simples (souvent appelées la substitution de enferme dans une boîte ou boîtes de substitution)
Mélange linéaire (dans le sens de l'algèbre modulaire) using le XOR pour produire une fonction avec des grands nombres de quel Claude Shannon a décrit comme " ; " de confusion et de diffusion ;.

Brouiller mordu crée l'effet de diffusion de , alors que la substitution est employée pour la confusion.

Historique

Les réseaux de Feistel étaient des premiers vus commercialement dans le chiffre de Lucifer du d'IBM, conçu par Feistel et chaudronnier de cuivre de Don de . Les réseaux de Feistel ont gagné la respectabilité quand le gouvernement fédéral des USA a adopté le DES (un chiffre de basé sur Lucifer, avec des modifications apportées par le NSA ). Comme d'autres composants du DES, la nature itérative de la construction de Feistel facilite mettant en application le système cryptographique dans le matériel (en particulier sur le matériel disponible à l'heure de la conception du DES). Les choses ont changé par les décennies pendant que le matériel est devenu plus capable.

Travail théorique

Beaucoup de chiffres par bloc symétriques modernes sont basés sur des réseaux de Feistel, et la structure et les propriétés des chiffres de Feistel ont été intensivement explorées par les cryptographes spécifiquement, le Michael Luby et le Charles Rackoff ont analysé la construction de chiffre par bloc de Feistel, et ont montré que si la fonction ronde est une fonction pseudo-aléatoire cryptographiquement bloqué, avec Ki utilisé comme graine, alors 3 séries est suffisante pour faire au chiffre par bloc un la permutation pseudo-aléatoire , alors que 4 séries est suffisante pour lui faire un " ; strong" ; permutation pseudo-aléatoire (qui signifie qu'elle demeure pseudo-aléatoire même à un adversaire qui obtient l'accès de l'oracle à sa permutation inverse). En raison de ce résultat très important de Luby et de Rackoff, des chiffres de Feistel s'appellent parfois inexactement les chiffres par bloc de Luby-Rackoff. Davantage de travail théorique a généralisé la construction légèrement, et les limites plus précises données pour la sécurité.

Détails de construction

Laisser le {\ rm F} soit la fonction ronde et laisse K_0, K_1, \ ldots, K_ {n} soit les secondaire-clefs pour les ronds 0,1, \ ldots, n respectivement.

Alors l'opération de base est comme suit :

Couper le bloc de plaintext en deux morceaux égaux, (L_0, R_0)

Pour chaque, rond du i =0,1 \ pointille, n, calcul L_ de

{i+1} = R_i \, R_ {i+1} = L_i \ oplus {\ rm F} (R_i, K_i) .

Alors le texte chiffré est (R_n, L_n) . (Généralement les deux morceaux de R_n et L_n ne sont pas commutés après le bout rond.)

Le déchiffrage d'un de texte chiffré (R_n, L_n) est accompli par le calcul pour le i=n, n-1, \ ldots, 0

R_ {I} = L_ {i+1} \,
L_ {I} = R_ {i+1} \ oplus {\ rm F} (L_ {i+1}, K_ {I}) .

Alors le (L_0, R_0) est le plaintext encore.

Un avantage de ce modèle est que le rond de fonction {\ rm F} ne doit pas être inversible, et peut être très complexe.

Le diagramme illustre le chiffrage et le déchiffrage. Noter l'inversion de la commande de subkey pour le déchiffrage ; c'est la seule différence entre le chiffrage et le déchiffrage :

utilisation de des chiffres de Feistel déséquilibrée par de une structure modifiée où L_0 et R_0 ne sont pas des longueurs égales. L'algorithme de chiffrage de bonites est un exemple d'un tel chiffre. Le transpondeur de signature digitale de de Texas Instruments emploie un chiffre de Feistel déséquilibré par classe des propriétaires pour effectuer l'authentification de Contester-réponse de .

La construction de Feistel est également employée dans des algorithmes cryptographiques autres que des chiffres par bloc. Par exemple, l'arrangement asymétrique optimal de la remplissage (OAEP) de chiffrage de emploie un réseau simple de Feistel pour randomiser des textes chiffrés dans des arrangements principaux asymétriques du chiffrage de certain .

Liste de chiffres de Feistel

Feistel ou Feistel modifié : Blowfish , Camélia , CAST-128 , DES , LOYAL, GLACE , KASUMI , LOKI97 , Lucifer , MARS , MAGENTA, MISTY1 , RC5 , THÉ , DES triple , Twofish , XTEA , GOST_28147-89

Feistel généralisé : CAST-256 , MacGuffin , RC2 , RC6 , Bonites

.

Random links:Maghazi (camp) | Élection générale du Royaume-Uni, janvier 1910 | Haptics | Nord de Brant | Indiaman est Götheborg | Cifra_de_Feistel