• Aucun résultat trouvé

III. 3.3 « Ou exclusif » simple

IV.2 Algorithme de cryptage DES

DES : (Data Encryption Standard) est un standard mondial dans le domaine de cryptologie, depuis plus de 20 ans. Le DES est un algorithme de chiffrement à clé secrète basé sur deux opérations de cryptage : la transposition et la substitution.

IV.2.1 Principes de base de l’algorithme de cryptage DES

Le DES est un système de chiffrement par blocs, qui chiffre les données par bloc de 64 bits. Le chiffrement et le déchiffrement utilisent tous les deux le même algorithme avec des différences uniquement dans le plan de génération des clés. La longueur de la clé est de 64 bits dont 8 bits sont ignorés après une permutation initiale pour générer une clé de 56 bits.

La clé peut être une combinaison de 8 caractères quelconques et peut être changée à tout moment. Toute la sécurité de l’algorithme réside dans la clé. Le principe du DES est basé sur

Thèse d’Etat (2007), Faculté des Sciences de Rabat 48/155 une ronde qui exécute deux opérations de cryptage : une substitution suivie d’une permutation appliquée au texte. Le DES opère 16 rondes comme il est illustré sur la figure IV.1. Le DES

manipule le texte en clair par bloc de 64 bits (8 octets). Après une permutation initiale, le bloc est divisé en deux parties : une partie droite et une partie gauche. Chacune des parties est de 32 bits. Après cela, 16 rondes d’opérations identiques sont appliquées à ces deux moitiés, appelées «fonction f ». Après la 16éme ronde, les parties droite et gauche sont rassemblées et une permutation finale (l’inverse de la permutation initiale) termine l’algorithme pour produire un texte chiffré de taille 64 bits. A chaque ronde les bits de la clé sont décalés puis les 48 bits sont sélectionnés parmi les 56 bits de la clé.

Figure IV.1 : Schéma de l’algorithme DES

La partie droite des données est étendue à 48 bits par une permutation expansive puis combinée avec les 48 bits de la clé décalée et permutée par un ou exclusif. Le résultat de 48 bits est remplacé par 32 nouveaux bits en appliquant un algorithme de substitution. Ensuite, le résultat de 32 bits de cette substitution subit une permutation P. La «fonction f » est constituée de ces quatre dernières opérations. La sortie de la fonction f est alors combinée avec la moitié

Texte en clair IP L0 R0 L1=R0 R1= L0 ⊕ƒ(R0 ,K1) L2=R1 R2= L1 ⊕ƒ(R1 ,K2) L15=R14 R 15= L14⊕ƒ(R14, ,K15) L16 = R15 R16= L15⊕ƒ(R15, ,K1) IP-1 Texte chiffré K16 K2 K1 f f f ⊕ ⊕

Thèse d’Etat (2007), Faculté des Sciences de Rabat 49/155 gauche du bloc de données par un ou exclusif. Le résultat de ces opérations devient la nouvelle moitié droite du bloc de données. L’ancienne moitié droite devient la nouvelle moitié gauche. Ces opérations sont répétées 16 fois, donnant ainsi le DES à 16 rondes (voir figure IV.2).

Figure IV.2 : Schéma d’une ronde DES

Li et Ri sont respectivement les moitiés gauche et droite de la ième itération et Ki est la clé de 48 bits. La ronde est décrite par les équations suivantes :

Li = Ri-1 et Ri = Li-1 ⊕ f ( Ri-1 , Ki ) (IV.1)

La clé K du DES est générée en prenant 64 bits (8 caractères quelconques). Ces 64 bits sont réduits à 56 bits en éliminant un bit sur huit tout en opérant une permutation de la clé sur les 64 bits. Cette suppression de 8 bits n’occasionne aucune perte de données puisque la clé n’est utilisée que pour le codage de données. Les 56 bits résultants seront subdivisés en deux moitiés de 28 bits et rassemblés dans un bloc après une opération de décalage. Ce bloc va, d’une part, subir une permutation compressive pour générer une clé Ki de 48 bits, et d’autre part il sera

utilisé pour la prochaine ronde pour produire la clé Ki+1 (voir figure IV.3).

Li-1 Ri-1 clé Ki de 48 bits Permutation P Ri Li Permutation expansive

Substitution par tables S

Thèse d’Etat (2007), Faculté des Sciences de Rabat 50/155

Figure IV.3 : Génération d'une clé Ki de 48 bits

Pour ce qui concerne le déchiffrement du DES, il est possible d’utiliser la même fonction pour chiffrer un bloc et pour le déchiffrer. La seule différence est que les clés doivent être utilisées dans l’ordre inverse. Si les clés de chiffrement des rondes sont : K1 K2……….K16,

alors les clés de déchiffrement sont respectivement : K16 K15………K1. En effet, une ronde de

déchiffrement est décrite par :

Ri+1 = Li et Li+1 = Ri⊕ f ( Li , Ki ) (IV.2)

IV.2.2 Cryptanalyse du DES

La cryptanalyse est l’étude des procédés de décryptage, ou plus généralement la science qui étudie la sécurité des procédés cryptographiques. La cryptanalyse tente de tester la résistance d’un algorithme de cryptographie en simulant les différents types d’attaques, ci-dessous on cite trois types.

• Cryptanalyse exhaustive : Consiste à estimer la clé en essayant toutes les clés possibles.

• Cryptanalyse différentielle : Consiste à traiter spécifiquement des paires de texte chiffrées dont les textes en clair présentent certaines différences particulières. Elle analyse l’évolution de ces différences en clair à travers les différentes rondes du DES quand ils sont chiffrées avec la même clé en vue de trouver la clé la plus probable.

• Cryptanalyse linéaire : C’est un autre type d’attaque crypto-analytique qui utilise des approximations linéaires pour décrire l’action d’un algorithme de chiffrement par bloc. En rassemblant des textes en clair et leurs textes chiffrés associés on peut deviner la valeur des bits de la clé.

En ce qui concerne le DES, trois types de cryptanalyse ont été testés :

Clé de 56 bits L0 (28 bits) R0 (28 bits) décalage Permutation compressive Clef de 56 bits décalage Clé à 48bits

Thèse d’Etat (2007), Faculté des Sciences de Rabat 51/155

• Contre attaque exhaustive : Comme la clé comporte 56 bits, il y a 256 possibilités (approximativement 7,2 1016). Avec un ordinateur capable de tester une clé par microsonde et travaillant 24 heures sur 24 heures il faudrait quelque 2285 années pour essayer toutes les clés. Une autre variante du DES utilise une sous clé différente pour chaque ronde, au lieu de les engendrer à partir d’une seule clé de 56 bits. Comme il faut 48 bits de clé à chacune des 16 rondes cela signifie que la longueur des clés est de 768 bits. Cette variante augmenterait radicalement la difficulté d’une attaque exhaustive contre l’algorithme DES.

• Contre attaque linéaire et différentielle : Les cryptanalyses différentielle et linéaire ne marchent que si on connaît la composition des huit tables de substitution. Afin de générer des tables résistantes à la fois aux cryptanalyses différentielle et linéaire, on exécute successivement les opérations suivantes (Bruce, 1995) :

 Réordonner les tables comme suit : 2,4,6,7,3,1,5,8

 Sélectionner 16 bits de la clé. Si le premier est 1, échanger les deux premières lignes de la 1ère table avec les deux dernières lignes de cette table. Si le deuxième bit est 1, échanger les huit premières colonnes de la 1ère table avec les huit dernières, et faire de mêmepour la 2ème table au niveau du troisième et du quatrième bits (et ainsi de suite pour les autres tables).

 Prendre les 32 bits restants et combiner les quatre premiers par ou exclusif avec chaque entrée de la 2ème table et ainsi de suite …

En conclusion, il est recommandé d’utiliser le DES avec des tables dépendantes de la clé puisqu’elle accroît la résistance de l’algorithme contre une attaque exhaustive et rend les cryptanalyses différentielle et linéaire plus difficiles.

IV.2.3 Conception d’un algorithme de cryptage DES hybride

En vue d’améliorer les performances de l’algorithme DES et de renforcer la sécurité de la clé secrète, on propose dans ce chapitre un algorithme DES hybride. Le concept de cet algorithme repose sur la force de chiffrement du corps de texte, la facilité de personnalisation et le faible coût de calcul de l’algorithme standard DES d’une part, et d’autre part sur l’introduction de la notion des clés publiques et privées via l’utilisation des réseaux de neurones (voir figure IV.4).

Thèse d’Etat (2007), Faculté des Sciences de Rabat 52/155

Figure IV.4 : Schéma de l’algorithme de cryptage DES hybride

L’architecture fonctionnelle de l’algorithme de cryptage DES hybride consiste à déterminer deux modèles neuronaux (public et privé) donc deux clés neuronales publiques. Les modèles neuronaux privé et public sont respectivement le modèle de réseau de neurones (MRN) et le modèle inverse de réseau de neurones (MRNI). Les modèle neuronaux MRN et MRNI sont obtenus par une modélisation neuronale de la dynamique des données à crypter. Cette modélisation associe une classe de réseau neuronal « réseau de neurones d’anticipation (RNA) ou réseau de neurones récurrent (RNR) » et un algorithme d’apprentissage rapide. Les clés neuronales publiques 1 et 2 sont respectivement les valeurs des poids des MRN et MRNI ajustés.

Le processus de détermination de MRN et MRNI est similaire au processus qui sera décrit dans le paragraphe IV.4 concernant le codage et la fusion à base du réseau de neurones. Le nombre des couches cachées et leurs nombres de neurones des MRN et MRNI sont des paramètres à personnaliser selon les applications et les données à crypter. Le MRN, MRNI, les clés neuronales publiques, les tables de substitution offrent une facilité de personnalisation de l’algorithme "DES hybride".