0% ont trouvé ce document utile (0 vote)
457 vues28 pages

Algorithmes de Chiffrement Symétrique

Ce document présente plusieurs algorithmes de chiffrement symétrique tels que DES, IDEA, AES, Rijndael, Blowfish et Twofish. Il décrit leur fonctionnement et domaines d'application.

Transféré par

DIOUF
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
457 vues28 pages

Algorithmes de Chiffrement Symétrique

Ce document présente plusieurs algorithmes de chiffrement symétrique tels que DES, IDEA, AES, Rijndael, Blowfish et Twofish. Il décrit leur fonctionnement et domaines d'application.

Transféré par

DIOUF
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

ECOLE SUPERIEURE POLYTECHNIQUE


DEPARTEMENT GENIE INFORMATIQUE

CRYPTOGRAPHIE : ALGORITHMES DE CHIFFREMENT


SYMETRIQUE

Professeur : G.MENDY|Prsent par : Dame NIANG Thiyacine DIOUF IBARA ETOUMBA Grace de dieu Ousmane SAMBOU Amina mint MOHAMED MAHMOUD

PLAN

INTRODUCTION I. Chiffrement symtrique


a. Principe b. Types de chiffrement symtrique

II.

Algorithmes de chiffrement
a. Algorithme de DES b. Algorithme de IDEA c. Algorithme de AES d. Algorithme de Rijindeal e. Algorithme de Blowfish f. Algorithme de Twofish

III.

Domaines dapplication

IV. Comparaison des diffrents algorithmes de chiffrement symtrique CONCLUSION

INTRODUCTION
La cryptologie est une science mathmatique qui comporte deux branches : la cryptographie et la cryptanalyse. La cryptographie est une des disciplines de la cryptologie s'attachant protger des messages (assurant confidentialit, authenticit et intgrit) en s'aidant souvent de secrets ou cls. La cryptographie traditionnelle est ltude des mthodes permettant de transmettre des donnes de manire confidentielle. Afin de protger le message, on lui applique une transformation qui le rend incomprhensible ; cest ce quon appelle le chiffrement, qui, partir dun texte en clair, donne un texte chiffr ou cryptogramme. Inversement, le dchiffrement est laction qui permet de reconstruire le texte en clair partir du texte chiffr. Dans la cryptographie moderne, les transformations mathmatiques, appeles en question sont des fonctions

algorithmes cryptographiques, qui dpendent dun

paramtre appel clef. La cryptanalyse, linverse, est ltude des procds cryptographiques dans le but de trouver des faiblesses et, en particulier, de pouvoir dcrypter des textes chiffrs. Le dcryptement est laction consistant retrouver le texte en clair sans connatre la clef de dchiffrement. La confidentialit est historiquement le premier problme pos la cryptographie. Il se rsout par la notion de chiffrement mentionn plus haut. Il existe deux grandes familles dalgorithmes cryptographiques base de clefs : les algorithmes clef secrte ou algorithmes symtriques et les algorithmes clef publique ou algorithmes asymtriques. Nous nous intressons dans cette tude aux algorithmes de chiffrement symtrique leurs principes de fonctionnement et domaines dutilisations. I.

Chiffrement Symtrique a. Principe

Le procd de chiffrement est dit symtrique lorsque les clefs de chiffrement et de

dchiffrement sont identiques : cest la clef secrte, qui doit tre connue des tiers communiquants et deux seuls.

b. Types de chiffrement symtrique


Chiffrement par blocs Le chiffrement par bloc (block cipher) est une des grandes catgories de chiffrements modernes en cryptographie symtrique. Dans un systme par blocs, chaque texte clair est dcoup en blocs de mme longueur et chiffr bloc par bloc. La longueur l des cls doit tre suffisante pour que lattaque exhaustive consistant dchiffrer le chiffr avec toutes les cls possibles jusqu lobtention du clair, soit irraliste (l 128). Le principe gnral dun chiffrement itratif par blocs est le suivant : pour chaque bloc, on itre r fois une fonction interne F ; chacun des r tours, la fonction F est paramtre par une clef Ki (1 i r ), et la fonction du tour i peut tre note FKi . Comme on veut que le chiffrement soit inversible (pour pouvoir dchiffrer), il faut que les fonctions FKi soient bijectives.

Chiffrement de flux Les algorithmes de chiffrement de flux (Stream ciphers) peuvent tre dfinis comme tant des algorithmes de chiffrement par blocs, o le bloc a une dimension unitaire (1 bit, 1 octet, etc.) ou relativement petite. Leurs avantages principaux viennent du fait que la transformation (mthode de chiffrement) peut tre change chaque symbole du texte clair et du fait qu'ils soient extrmement rapides. De plus, ils sont utiles dans un environnement o les erreurs sont frquentes car ils ont l'avantage de ne pas propager les erreurs (diffusion). Ils sont aussi utiliss lorsque l'information ne peut tre traite qu'avec de petites quantits de symboles la fois, comme par exemple si l'quipement n'a pas de mmoire physique ou une mmoire tampon trs limite.

II.

Algorithmes de Chiffrement a. Algorithme de DES

HISTORIQUE LE L'ALGORITHME DES


L'algorithme DES, Data Encryption Standard, a t cr dans les laboratoires de la firme IBM Corp. Il est devenu le standard du NIST en 1976 et a t adopt par le gouvernement en 1977. C'est un chiffrement qui transforme des blocs de 64 bits avec une cl secrte de 56 bits au moyen de permutations et de substitutions. Le DES est considr comme tant raisonnablement scuritaire. Le DES est officiellement dfini dans la publication FIPS 46-3 et il est public. La cl est en fait constitue de 64 bits, dont 56 bits sont gnrs alatoirement et utiliss dans l'algorithme. Les huit autres bits peuvent tre utiliss pour la dtection d'erreurs (dans une transmission par exemple). Chacun des huit bits est utilis comme bit de parit des sept groupes de 8 bits. Comme blowfish, le DES est un chiffrement Feistel. Il utilise les transformations de substitution et de transposition (chiffrement par produit). Il est aussi appel Data Encryption Algorithm (DEA).
PRINCIPE DE FONCTIONNEMENT

Il s'agit d'un systme de chiffrement symtrique par blocs de 64 bits, dont 8 bits (un octet) servent de test de parit (pour vrifier l'intgrit de la cl). Chaque bit de parit de la cl (1 tous les 8 bits) sert tester un des octets de la cl par parit impaire, c'est-

-dire que chacun des bits de parit est ajust de faon avoir un nombre impair de '1' dans l'octet qui il appartient. La cl possde donc une longueur utile de 56 bits, ce qui signifie que seuls 56 bits servent rellement dans l'algorithme. L'algorithme consiste effectuer des combinaisons, des substitutions et des permutations entre le texte chiffrer et la cl, en faisant en sorte que les oprations puissent se faire dans les deux sens (pour le dchiffrement). La combinaison entre substitutions et permutations est appele code produit. La cl est code sur 64 bits et forme de 16 blocs de 4 bits, gnralement nots k1 k16. Etant donn que seuls 56 bits servent effectivement chiffrer, il peut exister 256 (soit 7.2*1016) cls diffrentes ! Les chiffres substitution et transposition sont faciles raliser en matriels: -Les boites de transposition (P-BOX) Exemple pour 8 bits (solution matrielle)

-Les boites de substitution

Dtail des boites de substitution

Caractristiques du DES Deux modes de cryptages : -Cryptage par blocs de 64 bits -Cryptage la vole Stream octets par octets avec des registres Utilisation dune cl de 56 bits En effet 8 fois 7 bits avec une parit (initialement 128 bits) 19 tages de logiques combinatoires Appliquent des transpositions et des substitutions sur des blocs de 2X32 bits - 1 tage en amont, 2 tages en aval sont des substitutions simples fixs. - 16 tages intermdiaires dpendant de la cl de faon complexe

dcalages)

Architecture gnral du DES

Principe de ralisation dun tage

Dtail de la fonction principale dun tage

Mthode de calcul des cls

10

DES utilisation la vole

11

Un circuit DES de cryptage par blocs de 64 bits est utilis octets par octets au moyen de registre dcalage (octets) d'entre et de sortie. - Performances Excellentes - cryptage la vole dbits potentiellement trs levs (dizaine/ centaine de Mgabits/seconde). - Utilisation multiples Transmission de donnes informatiques Cryptage de chanes de tlvision page. Problme de longueur des cls - Initialement dfini avec une cl de 112 bits le DES a t finalement dot par les autorits amricaines d'une cl de 56 bits. => Le DES 56 est trs probablement attaquable par des moyens informatiques plus ou moins lourds la porte des tats. Des puces spciales permettant l'essai de 106 cls par seconde ont t construites Elles peuvent tre organises en processeurs spciaux massivement parallles. Problme du choix des substitutions - Les principes de choix des S-box n'ont jamais t rendu public. Officiellement elles sont conues pour rsister une attaque particulire (la cryptanalyse diffrentielle). Personne n'a jamais rien trouv concernant d'ventuelles proprits caches des boites de substitution. Amlioration de la scurit du DES - Utilisation du DES en cascade

12

Premire Proposition Avec deux cls K1, K2 (128 bits) Moins bon qu'un DES 128 bits

Seconde Proposition Avec trois cls K1, K2, K3

b. Algorithme dIDEA
Historique de lAlgorithme dIDEA IDEA (International Data Encryption Algorithm) est un des algorithmes de chiffrement de donnes par blocs proposs ces afin de remplacer DES. Xuiejia Lai et James Massey deux chercheurs de lcole Polytechnique Fdral de Zurich ont conu une premire version appele PES (Proposed Encryption Standard), en 1990.Suite aux travaux de Biham et Shamir concernat la cryptanalyse diffrentielle, ils ont renforc leur systme contre attaques et lont baptis IPES (Improved Proposed Encryption Standard) puis IDEA en 1992.

Principe de fonctionnement Huit tages de calcul et un tage final constituent le systme de chiffrement. Trois types doprations interviennent dans le processus de cryptage : OU exclusif bit bit de deux mots de 16 bits, laddition entire de 16 bits modulo 216 et la

13

multiplication entire 16 bits modulo 216 +1. Un mot X de 64 bits est partitionn en quatre sou-blocs X1, X2, X3 et X4 de 16 bits chacun. Ces derniers sont ensuite transforms quatre sou-blocs crypts Y1, Y2, Y3 et Y4 en fonction de 52 sous clefs de 16 bits dtermines partir dune clef de 128 bits. Le cryptage se droule de manire analogue. Entre chaque ronde, le deuxime et le troisime sous-bloc sont changs. Enfin, les quatre sous-blocs sont combins avec les quatre sous-chefs dans une transformation finale. A chaque ronde, la squence d'vnements est la suivante: 1. multipliez X1 et la premire sous-chef 2. additionnez X2 et la deuxime sous-chef 3. additionnez X3 et la troisime sous-chef 4. multipliez X4 et la quatrime sous-chef 5. combinez par OU exclusif les rsultats des tapes (1) et (3) 6. combinez par OU exclusif les rsultats des tapes (2) et (4) 7. multipliez le rsultat de l'tape (5) avec la cinquime sous-chef 8. additionnez les rsultats des tapes (6) et (7) 9. multipliez le rsultat de l'tape (8) par la sixime sous-chef 10. additionnez les rsultats des tapes (7) et (9) 11. combinez par OU exclusif les rsultats des tapes (1) et (9) 12. combinez par OU exclusif les rsultats des tapes (3) et (9) 13. combinez par OU exclusif les rsultats des tapes (2) et (10) 14. combinez par OU exclusif les rsultats des tapes (4) et (10) Aprs la huitime ronde, il y a une transformation finale: 1. 2. 3. 4. multipliez X1 et la premire sous-chef additionnez X2 et la deuxime sous-chef additionnez X3 et la troisime sous-chef multipliez X4 et la quatrime sous-chef

Enfin les 4 sous-blocs sont rassembls pour former le texte chiffr.

Architecture dIDEA

14

Dtails de la fonction principale dune ronde (tage)

15

c. Algorithme dAES

L'AES (Advanced Encryption Standard) est, comme son nom l'indique, un standard de cryptage symtrique (c.f. fiche sur les algorithmes symtriques) destin remplacer le DES (Data Encryption Standard) qui est devenu trop faible au regard des attaques actuelles.

Prsentation gnrale
Historiquement, le dveloppement de l'AES a t instigu par le NIST (National Institue of Standards and Technology) le 2 janvier 1997. L'algorithme a t choisi il y a peu de temps : il s'agit de l'algorithme Rijndael (prononcer "Raindal"). Cet algorithme suit les spcifications suivantes : l'AES est un standard, donc libre d'utilisation, sans restriction d'usage ni brevet. c'est un algorithme de type symtrique (comme le DES) c'est un algorithme de chiffrement par blocs (comme le DES) il supporte diffrentes combinaisons [longueur de cl]-[longueur de bloc] : 128128, 192-128 et 256-128 bits (en fait, Rijndael supporte galement des tailles de blocs variables, mais cela n'est pas retenu dans le standard). En termes dcimaux, ces diffrentes tailles possibles signifient concrtement que: 3.4 x 1038 cls de 128-bit possibles 6.2 x 1057 cls de 192-bit possibles 1.1 x 1077 cls de 256-bit possibles Pour avoir un ordre d'ide, les cls DES ont une longueur de 56 bits (64 bits au total dont 8 pour les controles de parit), ce qui signifie qu'il y a approximativement 7.2 x 1016 cls diffrentes possibles. Cela nous donne un ordre de 1021 fois plus de cls 128 bits pour l'AES que de cls 56 bits pour le DES. En supposant que l'on puisse construire une machine qui pourrait cracker une cl DES en une seconde (donc qui puisse calculer 255 cls par seconde), alors cela prendrait encore 149 mille milliards d'annes pour cracker une cl AES. Pour donner un ordre d'ide plus concret, l'univers est vieux de 20 milliards d'annes au maximum. Pour conclure sur cet aspect, on voit que le standard AES rpond aux mmes exigences que le DES mais il est galement beaucoup plus sr et flexible que son prdcesseur.

16

Caractristiques et points forts de l'AES


Le choix de cet algorithme rpond de nombreux critres plus gnraux dont nous pouvons citer les suivants : scurit ou l'effort requis pour une ventuelle cryptanalyse. facilit de calcul : cela entraine une grande rapidit de traitement besoins en ressources et mmoire trs faibles flexibilit d'implmentation: cela inclut une grande varit de plateformes et d'applications ainsi que des tailles de cls et de blocs supplmentaires (c.f. cidessus). hardware et software : il est possible d'implmenter l'AES aussi bien sous forme logicielle que matrielle (cabl) simplicit : le design de l'AES est relativement simple Si l'on se rfre ces critres, on voit que l'AES est galement un candidat particulirement appropri pour les implmentations embarques qui suivent des rgles beaucoup plus strictes en matire de ressources, puissance de calcul, taille mmoire, etc... C'est sans doute cela qui a pouss le monde de la 3G (3me gnration de mobiles) adopter l'algorithme pour son schma d'authentification "Millenage".

Dtails techniques
L'AES opre sur des blocs de 128 bits (plaintext P) qu'il transforme en blocs crypts de 128 bits (C) par une squence de Nr oprations ou "rounds", partir d'une cl de 128, 192 ou 256 bits. Suivant la taille de celle-ci, le nombre de rounds diffre : respectivement 10, 12 et 14 rounds. Le schma suivant dcrit succinctement le droulement du chiffrement : BYTE_SUB (Byte Substitution) est une fonction non-linaire oprant indpendamment sur chaque bloc partir d'une table dite de substitution. SHIFT_ROW est une fonction oprant des dcalages (typiquement elle prend l'entre en 4 morceaux de 4 octets et opre des dcalages vers la gauche de 0, 1, 2 et 3 octets pour les morceaux 1, 2, 3 et 4 respectivement). MIX_COL est une fonction qui transforme chaque octet d'entre en une combinaison linaire d'octets d'entre et qui peut tre exprime mathmatiquement par un produit matriciel sur le corps de Galois (28). le + entour d'un cercle dsigne l'opration de OU exclusif (XOR). Ki est la ime sous-cl calcule par un algorithme partir de la cl principale K. Le dchiffrement consiste appliquer les oprations inverses, dans l'ordre inverse et avec des sous-cls galement dans l'ordre inverse.

17

18

d. Algorithme de Rijindeal
Algorithme Rijndael conu par deux chercheurs Belges Joan Daemen et Vincent Rijmen Face lobsolescence de DES le NIST organise un appel doffre pour adopter un nouveau standard. Cinq algorithmes seront reconnus fiables et Rijndael sera adopt comme nouveau standard en 2000 sous le nom Advanced Encryption Standard Caractristiques principale Cls de 128, 192, 256 bits sur blocs de 128, 192 ou 256 bits Libre dutilisation (standard)

Oprations sur des chanes de caractres


Dans cette partie nous allons voir comment chiffrer et dchiffrer des chanes de caractres avec AES - Rijndael. Chiffre une chane de caractre /// /// Chiffre une chane de caractre /// /// Texte clair chiffrer /// Cl de chiffrement /// Vecteur d'initialisation /// Retourne le texte chiffr private static string EncryptString(string clearText, string strKey, string strIv) { // Place le texte chiffrer dans un tableau d'octets byte[] plainText = Encoding.UTF8.GetBytes(clearText); // Place la cl de chiffrement dans un tableau d'octets byte[] key = Encoding.UTF8.GetBytes(strKey); // Place le vecteur d'initialisation dans un tableau d'octets byte[] iv = Encoding.UTF8.GetBytes(strIv);

RijndaelManaged rijndael = new RijndaelManaged(); // Dfinit le mode utilis rijndael.Mode = CipherMode.CBC;

19

// Cre le chiffreur AES - Rijndael ICryptoTransform aesEncryptor = rijndael.CreateEncryptor(key, iv); MemoryStream ms = new MemoryStream(); // Ecris les donnes chiffres dans le MemoryStream CryptoStream cs = new CryptoStream(ms, aesEncryptor, CryptoStreamMode.Write); cs.Write(plainText, 0, plainText.Length); cs.FlushFinalBlock();

// Place les donnes chiffres dans un tableau d'octet byte[] CipherBytes = ms.ToArray();

ms.Close(); cs.Close(); // Place les donnes chiffres dans une chaine encode en Base64 return Convert.ToBase64String(CipherBytes);

} Une petite remarque, vous voyez que l'on spcifie l'encodage utilis pour les diffrentes chaines (texte, cl, vecteur d'initialisation...), vous devez utiliser le plus adapt vos besoins. Prenez bien garde, l'encodage est un problme extrmement rcurrent et peut faire souvent perdre de longues heures de dbogage. Dchiffrer des chaines de caractres Aprs le chiffrement voici le dchiffrement. Comme d'habitude en C#, et en .Net plus gnralement, c'est extrmement simple : Dchiffrer une chaine de caractres /// <summary> /// Dchiffre une chane de caractre /// </summary> /// <param name="cipherText">Texte chiffr</param> /// <param name="strKey">Cl de dchiffrement</param> /// <param name="strIv">Vecteur d'initialisation</param> /// <returns></returns>

20

public static string DecryptString(string cipherText, string strKey, string strIv) { // Place le texte dchiffrer dans un tableau d'octets byte[] cipheredData = Convert.FromBase64String(cipherText); // Place la cl de dchiffrement dans un tableau d'octets byte[] key = Encoding.UTF8.GetBytes(strKey); // Place le vecteur d'initialisation dans un tableau d'octets byte[] iv = Encoding.UTF8.GetBytes(strIv); RijndaelManaged rijndael = new RijndaelManaged(); rijndael.Mode = CipherMode.CBC;

// Ecris les donnes dchiffres dans le MemoryStream ICryptoTransform decryptor = rijndael.CreateDecryptor(key, iv); MemoryStream ms = new MemoryStream(cipheredData); CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read); // Place les donnes dchiffres dans un tableau d'octet byte[] plainTextData = new byte[cipheredData.Length]; int decryptedByteCount = cs.Read(plainTextData, 0, plainTextData.Length); ms.Close(); cs.Close(); return Encoding.UTF8.GetString(plainTextData, 0, decryptedByteCount);

Oprations sur des fichiers Dans la partie prcdente nous chiffrions et dchiffrions des chanes de caractres, voyons maintenant comment procder avec des fichiers entiers. Le principe de base et toute la gestion du chiffrement restent les mmes, seules les mthodes d'accs au fichier et de traitement des flux en mmoire vont diffrer. Chiffrer des fichiers

21

Chiffrer un fichier va consister ouvrir ce fichier, le parcourir, chiffrer son contenu la vole et crire le rsultat dans un second fichier. Voici un bout de code permettant de raliser une telle opration sur un fichier texte :

Chiffrer un fichier public static void EncryptFile(string strKey, string strIv, string pathPlainTextFile, string pathCypheredTextFile) {

// Place la cl de dchiffrement dans un tableau d'octets byte[] key = Encoding.UTF8.GetBytes(strKey); // Place le vecteur d'initialisation dans un tableau d'octets byte[] iv = Encoding.UTF8.GetBytes(strIv); FileStream fsCypheredFile = new FileStream(pathCypheredTextFile, FileMode.Create); RijndaelManaged rijndael = new RijndaelManaged(); rijndael.Mode = CipherMode.CBC; rijndael.Key = key; rijndael.IV = iv; ICryptoTransform aesEncryptor = rijndael.CreateEncryptor ();

CryptoStream cs = new CryptoStream (fsCypheredFile, aesEncryptor, CryptoStreamMode.Write);

FileStream fsPlainTextFile = new FileStream(pathPlainTextFile, FileMode.OpenOrCreate); int data; while ((data = fsPlainTextFile.ReadByte()) != -1) { cs.WriteByte((byte)data);

22

} fsPlainTextFile.Close(); cs.Close(); fsCypheredFile.Close(); } Dchiffrer des fichiers Pour dchiffrer un fichier il suffit de procder de la mme faon que pour une chaine de caractres, la mcanique de l'ouverture et du parsing de fichier en plus. Voici comment procder : Dchiffrer un fichier

public static void DecryptFile(string strKey, string strIv, string pathCypheredTextFile, string pathPlainTextFile) { // Place la cl de dchiffrement dans un tableau d'octets byte[] key = Encoding.UTF8.GetBytes(strKey); // Place le vecteur d'initialisation dans un tableau d'octets byte[] iv = Encoding.UTF8.GetBytes(strIv); // Filestream of the new file that will be decrypted. FileStream fsCrypt = new FileStream(pathPlainTextFile, FileMode.Create); RijndaelManaged rijndael = new RijndaelManaged(); rijndael.Mode = CipherMode.CBC; rijndael.Key = key; rijndael.IV = iv; ICryptoTransform aesDecryptor = rijndael.CreateDecryptor(); CryptoStream cs = new CryptoStream(fsCrypt, aesDecryptor, CryptoStreamMode.Write);

23

// FileStream of the file that is currently encrypted. FileStream fsIn = new FileStream(pathCypheredTextFile, FileMode.OpenOrCreate); int data; while ((data = fsIn.ReadByte()) != -1) cs.WriteByte((byte)data); cs.Close(); fsIn.Close(); fsCrypt.Close(); }

e. Algorithme de Blowfish
Blowfish a t conu par Bruce Schneier en 1993 comme tant une alternative aux algorithmes existants, en tant rapide et gratuit. Blowfish est sensiblement plus rapide que le DES. Il est un chiffrement Feistel, utilisant itrativement une fonction de chiffrement 16 fois. La grandeur des blocs est de 64 bits. Il peut prendre une longueur de cl variant entre 32 bits et 448 bits. Depuis sa conception il a t grandement analys et est aujourd'hui considr comme tant un algorithme de chiffrement robuste. Il n'est pas brevet et ainsi son utilisation est libre et gratuite. Cet algorithme peut tre optimis dans les applications matrielles (puces), mais il est surtout utilis dans des logiciels. Il y a deux parties dans l'algorithme : une premire partie qui manipule l'expansion de la cl et une deuxime partie qui manipule le chiffrement des donnes.

Algorithme
Expansion de la cl La premire tape dans l'algorithme est de sparer la cl originale en un ensemble de sous-cls. Plus prcisment, une cl (qui ne doit pas avoir plus de 448 bits) est spare en plusieurs sous-cls totalisant 4168 octets. Il y a aussi l'initialisation d'un tableau P et de quatre S-Boxes de 32 bits chacune. Le tableau P contient 18 sous-cls de 32 bits, alors que chaque S-Box contient 256 entres.

24

Les tapes suivantes sont utilises pour calculer les sous-cls : Initialisation du tableau P et des S-Box avec une chane de caractres fixe (chiffres composant la constante PI). Opration XOR entre le tableau P (et ses 18 entres) et les bits de la cl : P[1] XOR (1er 32 bits de la cl), P[2] XOR (2e 32 bits de la cl), ... P[18] XOR (Ne 32 bits de la cl) Lorsque les bits de la cl sont puiss, on revient au premier 32 bits. Utilisation de l'algorithme blowfish pour chiffrer la chane de caractres all-zero (chane de caractres fixe) en utilisant les sous-cls. La sortie est maintenant P[1] et P[2]. Chiffrement des nouveaux P[1] et P[2] avec les sous-cls modifies. La sortie est maintenant P[3] et P[4]. Rpter 521 fois les deux dernires tapes afin de calculer les nouvelles sous-cls pour le tableau P et pour les quatre S-Box.

Chiffrement
Algorithme Note : l'entre de 64 bits de texte clair est note "x" et le tableau P est not Pi/P[i], o "i" est l'itration. Dbut chiffrement Divis x en 2 : xL et xR Pour i allant de 1 16 faire xL = xL XOR P[i] xR = F(xL) XOR xR Permuter xL et xR Fin Pour Permuter xL et xR xR = xR XOR P[17] xL = xL XOR P[18]

25

x = xL + xR Retourner x Fin chiffrement La fonction F( ) Dbut fonction F(Entre : xL : 32 bits de donnes) Divis xL en 4 : a, b, c, d Retourner ((S1,a + S2,b MOD 232) XOR S3,c) + S4,d MOD 232 Fin fonction F

Considrations Mettre en application l'algorithme de Blowfish semble une option pratique pour le chiffrement de donne tant donn qu'il est destin tre rapide, compact, simple et relativement scuritaire. Nanmoins, il convient mieux aux applications logicielles plutt qu'aux applications matrielles.

f. Algorithme de Twofish

Twofish est un algorithme de chiffrement symtrique par bloc invent et analys par Bruce Schneier, Niels Ferguson, John Kelsey, Doug Whiting, David Wagner et Chris Hall. Il chiffre des blocs de 128 bits avec une cl de 128, 192 ou 256 bits. Twofish tait l'un des cinq finalistes du concours AES mais il n'a pas t slectionn pour le standard. Il reprend en partie des concepts prsents dans le populaire Blowfish, du mme auteur. Twofish est lgrement plus lent que Rijndael mais plus rapide que les autres finalistes de AES. Twofish a t conu pour tre implment dans des smartcards et d'autres systmes embarqus. Sur un Pentium, une implmentation optimise en assembleur permet de chiffrer un bloc de 128 bits en 18 coups d'horloge (16.1 coups d'horloge sur un Pentium Pro).

26

En 2005, aucune attaque n'a pu tre applique sur la version complte de Twofish. La recherche exhaustive reste le seul moyen pour le casser. Il semble en tout cas plus rsistant que ce qui avait t initialement annonc durant le concours AES. De part sa complexit, la cryptanalyse de cet algorithme reste dlicate. Ses concepteurs ont eux-mmes publis des attaques sur des versions 6 et 7 rondes. Une attaque sur 5 rondes a une complexit de 251. Malgr ses atouts, il reste relativement peu utilis et a t supplant par le gagnant de AES, Rijndael. Il n'en demeure pas moins une alternative sduisante l'actuel AES si celui-ci devenait vulnrable.

III.

Domaines dapplication
modles Cisco1720 et1750

Les modles Cisco1720 et1750 constituant la gamme Cisco1700, sont des routeurs daccs modulaires, de pointe, pour petites et moyennes entreprise et petites succursales. Ils reprsentent une solution complte et intgre de routage, de parefeu et de fonctions VPN pour applications voix/donnes Internet. Associe au module VPN et au jeu de fonctions de Cisco IOS Firewall, la gamme Cisco1700 est la solution IPSec/VPN idale pour connecter des petites structures des entreprises distantes, des professionnels mobiles, des intranets de site central ou des extranets partenaires. Le module VPN, qui sinsre dans un emplacement du chssis du Cisco1720 ou1750, crypte les donnes laide des algorithmes DES (Data Encryption Standard) et 3DES des vitesses compatibles avec une connexion srieT1/E1 bidirectionnelle (4Mo/s pour des paquets de 1514octets). Combin la plate-forme, le module prend en charge jusqu 100tunnels crypts (400associations de scurit) pour des sessions concurrentes avec des utilisateurs mobiles ou dautres sites. DES et 3DES: les cryptages DES et 3DES sollicitent Enormment les processeurs. Lun de ces algorithmes est requis pour tous les paquets destins un tunnel IPSec. Le module VPN des routeurs de la gamme Cisco1700 crypte les donnes avec DES ou 3DES, une vitesse maximale de 4Mbits/s, tout en librant le processeur principal pour dautres tches.

27

Les cartes Gemalto (Solutions et services scuriss de billetterie


lectronique)

Dans un nombre croissant de villes de par le monde, les titres de transport magntiques sont remplacs par des solutions sans contact, apprcies par les usagers pour leur facilit dutilisation et leur fiabilit. Les technologies sans contact connaissent un vritable essor dans le secteur des transports publics, car elles permettent de rduire les cots de maintenance et dacquisition. la scurit des cartes Microprocesseur Calypso repose sur la notion de session scurise et de ratification : Ces mcanismes sont optimiss pour la billettique (rapidit combine la scurit), ils sont bass sur des algorithmes de cryptage DES, DES X et triple DES (suivant la carte). Ils permettent de : garantir lintgrit et lauthenticit des donnes lues et crites dans la carte. certifier lauthenticit du terminal et de la carte durant leurs changes. De faciliter le traitement en cas derreur de transmission aprs validation de la transaction dans la carte, et ce sans risque de pnalis lutilisateur par un deuxime prlvement.

IV.

Comparaison des diffrents algorithmes de chiffrement

Nous allons essayer de faire une tude comparative des diffrentes algorithmes symtriques les plus en vue. Dans le tableau suivant nous avons leurs spcifications suivant la date de cration, le type de chiffrement, taille des blocs, des cls, et la scurit.

28

a)

PERFORMANCE

Ce comparatif fait l'tude des algorithmes de chiffrements suivants : Blowfish, Des, 3Des,Twofish, Serpent, Rijndael(AES). Chacun de ces algorithmes est associ trois fonctions de hachage : MD5, SHA-1, SHA-2 .

CONCLUSION
L'algorithme de chiffrement joue un rle important aussi bien au niveau de la scurit que des performances. Dans le cas de configurations rseaux importantes, le choix d'un algorithme devient judicieux.

Vous aimerez peut-être aussi