Chiffre par bloc de Feistel
Feistel Cipher n'est pas un schéma spécifique de chiffrement par blocs. Il s'agit d'un modèle de conception à partir duquel de nombreux chiffrements par blocs différents sont dérivés. DES n'est qu'un exemple de chiffre de Feistel. Un système cryptographique basé sur la structure de chiffrement Feistel utilise le même algorithme pour le chiffrement et le déchiffrement.
Processus de cryptage
Le processus de chiffrement utilise la structure Feistel consistant en plusieurs cycles de traitement du texte en clair, chaque cycle consistant en une étape de «substitution» suivie d'une étape de permutation.
La structure Feistel est illustrée ci-dessous -
Le bloc d'entrée de chaque tour est divisé en deux moitiés qui peuvent être désignées par L et R pour la moitié gauche et la moitié droite.
À chaque tour, la moitié droite du bloc, R, passe inchangée. Mais la moitié gauche, L, passe par une opération qui dépend de R et de la clé de cryptage. Tout d'abord, nous appliquons une fonction de cryptage «f» qui prend deux entrées - la clé K et R. La fonction produit la sortie f (R, K). Ensuite, nous XOR la sortie de la fonction mathématique avec L.
Dans la mise en œuvre réelle du chiffrement Feistel, tel que DES, au lieu d'utiliser la clé de chiffrement entière à chaque tour, une clé dépendante du tour (une sous-clé) est dérivée de la clé de chiffrement. Cela signifie que chaque tour utilise une clé différente, bien que toutes ces sous-clés soient liées à la clé d'origine.
L'étape de permutation à la fin de chaque tour permute le L modifié et le R. non modifié. Par conséquent, le L pour le tour suivant serait R du tour en cours. Et R pour le prochain tour est la sortie L du tour en cours.
Les étapes de substitution et de permutation ci-dessus forment un «rond». Le nombre de tours est spécifié par la conception de l'algorithme.
Une fois le dernier tour terminé, les deux sous-blocs, «R» et «L» sont concaténés dans cet ordre pour former le bloc de texte chiffré.
La partie difficile de la conception d'un chiffre de Feistel est la sélection de la fonction ronde «f». Pour être un schéma incassable, cette fonction doit avoir plusieurs propriétés importantes qui sortent du cadre de notre discussion.
Processus de décryptage
Le processus de décryptage dans le chiffrement Feistel est presque similaire. Au lieu de commencer par un bloc de texte en clair, le bloc de texte chiffré est introduit dans le début de la structure Feistel et ensuite le processus est exactement le même que celui décrit dans l'illustration donnée.
On dit que le processus est presque similaire et pas exactement le même. Dans le cas du décryptage, la seule différence est que les sous-clés utilisées dans le cryptage sont utilisées dans l'ordre inverse.
L'échange final de «L» et «R» dans la dernière étape du chiffre de Feistel est essentiel. Si ceux-ci ne sont pas échangés, le texte chiffré résultant ne peut pas être déchiffré en utilisant le même algorithme.
Nombre de tours
Le nombre de tours utilisés dans un chiffre Feistel dépend de la sécurité souhaitée du système. Un plus grand nombre de tours fournit un système plus sécurisé. Mais en même temps, plus de cycles signifient des processus de chiffrement et de déchiffrement lents et inefficaces. Le nombre de tours dans les systèmes dépend donc du compromis efficacité-sécurité.