Académique Documents
Professionnel Documents
Culture Documents
Plan du cours
Introduction Introduction
Les algorithmes de chiffrement à clé symétrique Les algorithmes de chiffrement à clé symétrique
Les algorithmes de chiffrement à clé publique Les algorithmes de chiffrement à clé publique
• Chaque bit d’un bloc est soumis à la transposition initiale, pouvant • Le bloc de 64 bits est ensuite scindé en deux blocs de 32 bits, notés
être représentée par la matrice de permutation initiale (notée TI) respectivement G et D. On note G0 et D0 l’état initial de ces deux
suivante : blocs ⎛ ⎞
⎛ ⎞ 58 50 42 34 26 18 10 2
58 50 42 34 26 18 10 2 ⎜ 60 52 44 36 28 20 12 4 ⎟
⎜ 60 52 44 36 28 20 12 4 ⎟ G0 = ⎜⎝ 62 54 46 38 30 22 14 6 ⎠
⎟
⎜ ⎟
⎜ 62 54 46 38 30 22 14 6 ⎟ 64 56 48 40 32 24 16 8
⎜ ⎟
⎜ 64 56 48 40 32 24 16 8 ⎟ ⎛ ⎞
TI = ⎜⎜ ⎟ 57 49 41 33 25 17 9 1
⎟
⎜ 57 49 41 33 25 17 9 1 ⎟ ⎜ 59 51 43 35 27 19 11 3 ⎟
⎜ 59 51 43 35 27 19 11 3 ⎟ D0 = ⎜ ⎟
⎜ ⎟ ⎝ 61 53 45 37 29 21 13 5 ⎠
⎝ 61 53 45 37 29 21 13 5 ⎠
63 55 47 39 31 23 15 7 63 55 47 39 31 23 15 7
• Il est intéressant de remarquer que G0 contient tous les bits
• Le 58ème bit du bloc de texte de 64 bits se retrouve en première possédant une position paire dans le message initial, tandis que D0
position, le 50ème en seconde position . . . contient les bits de position impaire
⎛ ⎞ ⎛ ⎞
57 49 41 33 25 17 9 1 32 1 2 3 4 5
⎜ 59 51 43 35 27 19 11 3 ⎟ ⎜ 4 5 6 7 8 9 ⎟
D0 = ⎝ ⎜ ⎟
61 53 45 37 29 21 13 5 ⎠ ⎜ 8 9 10 11 12 13 ⎟
⎜ ⎟
63 55 47 39 31 23 15 7 ⎜ 12 13 14 15 16 17 ⎟
E =⎜ ⎟
⎜ 16 17 18 19 20 21 ⎟
⎜ ⎟
⎜ 20 21 22 23 24 25 ⎟
⎝ 24 25 26 27 28 29 ⎠
28 29 30 31 32 1
• À la fin des 16 itérations les deux blocs G16 et D16 sont recollés puis
• Le bloc de 32 bits obtenu est soumis à une transposition T dont la soumis à la transposition initiale inverse
table est la suivante : • Le résultat en sortie est un texte codé de 64 bits
⎛ ⎞ ⎛ ⎞
16 7 20 21 29 12 28 17 40 8 48 16 56 24 64 32
⎜ 1 15 23 26 5 18 31 10 ⎟ ⎜ 39 7 47 15 55 23 63 31 ⎟
T =⎜⎝ 2
⎟ ⎜ ⎟
8 24 14 32 27 3 9 ⎠ ⎜ 38 6 46 14 54 22 62
⎜ 30 ⎟
⎟
19 13 30 6 22 11 4 25 ⎜ 37 5 45 13 53 21 61 29 ⎟
TI = ⎜
−1
⎜ 36 4 44 12 52 20 60
⎟
⎟
⎜ 28 ⎟
• L’ensemble de ces résultats en sortie de T est soumis à un OU ⎜ 35 3 43 11 51 19 59 27 ⎟
⎜ ⎟
Exclusif avec le G0 de départ pour donner D1 ; ⎝ 34 2 42 10 50 18 58 26 ⎠
33 1 41 9 49 17 57 25
19 11 3 60 52 44 36
⎛ ⎞
63 55 47 39 31 23 15
⎜ 7 62 54 46 38 30 22 ⎟
Di = ⎜
⎝ 14 6 61 53 45 37 29 ⎠
⎟
21 13 5 28 20 12 4
mohamed.koubaa@enit.rnu.tn C&C - PI 23 mohamed.koubaa@enit.rnu.tn C&C - PI 24
DES (Data Encryption Standard) DES (Data Encryption Standard)
Introduction Introduction
AES (Advanced Encryption Standard) AES (Advanced Encryption Standard)
Les algorithmes de chiffrement à clé symétrique Les algorithmes de chiffrement à clé symétrique
Modes de chiffrement Modes de chiffrement
Les algorithmes de chiffrement à clé publique Les algorithmes de chiffrement à clé publique
Cryptanalyse Cryptanalyse
• Ces deux blocs subissent ensuite une rotation à gauche, de telles • En 1977, deux chercheurs en cryptographie de Stanford, Diffie et
façons que les bits en seconde position prennent la première Hellman montraient qu’il est possible de casser le code DES
position, ceux en troisième position la seconde, . . . les bits en • À partir d’un fragment du texte en clair et du texte codé
première position passent en dernière position correspondant, il est possible de trouver la clé au moyen d’une
• Les 2 blocs de 28 bits sont ensuite regroupés en un bloc de 56 bits. recherche exhaustive dans l’espace des 256 clés possibles en moins
Celui-ci passe par une permutation, notée CP-2, fournissant en d’une journée
sortie un bloc de 48 bits, représentant la clé Ki+1 • En 1979, IBM, convaincue que la taille de la clé de DES était trop
• Des itérations de l’algorithme permettent de donner les 16 clés, K1 à courte, propose un moyen d’augmenter efficacement la taille de la
K16 , du DES clé au moyen d’un triple chiffrement
Triple Data Encryption Standard (2) Triple Data Encryption Standard (3)
• Deux clés et trois étages :
◦ Dans un premier étage, le texte en clair est codé avec DES avec la clé
K1 • Pourquoi n’y a-t-il que deux clés au lieu de trois ?
◦ Dans le deuxième étage, DES est exécuté en mode déchiffrement avec
◦ Une longueur de clé de 112 bits convient très bien pour les applications
la clé K2
commerciales courantes
◦ Dans le dernier étage, DES est exécuté en mode chiffrement en
◦ Passer à 168 bits augmenterait la charge occasionnée par la gestion et
utilisant la clé K1
le transport d’une autre clé pour un bénéficie minime
• Pourquoi avoir utilisé une succession d’étapes
chiffrement-déchiffrement-chiffrement plutôt que
chiffrement-chiffrement-chiffrement ?
◦ Le choix est justifié par des raisons de compatibilité descendante avec
DES à clé unique
◦ Un ordinateur pratiquant un chiffrement triple peut communiquer avec
un ordinateur utilisant un chiffrement simple en posant K1 = K2 ;
Septembre 1997 Appel d’offre lancé par le NIST (National Institute of Stan-
• 15 propositions sont retenues dards and Technology) pour l’AES
• Des conférences publiques furent organisées pour les présenter Août 1998 15 candidats retenus lors de la première conférence AES
• Les participants furent vivement encouragés à trouver des failles Mars 1999 Seconde conférence AES
dans chacune des propositions Avril 1999 Le NIST annonce les 5 finalistes
• Le NIST choisit cinq finalistes eu égard à la sécurité, l’efficacité, la ◦ Rijndael (Joan Daemen et Vincent Rijmen)
simplicité, la souplesse et les besoins en mémoire des systèmes ◦ Serpent (Ross Andersen, Eli Biham et Lars Knudsen)
retenus ◦ Twofish (équipe dirigée par Bruce Schneier)
• Un vote partage les cinq propositions ◦ RC6 (RSA Laboratories)
• La proposition de deux jeunes cryptographes belges Joan Daemen et ◦ MARS (IBM)
Vincent Rijmen a été retenue par le NIST en novembre 2000 sous le
nom de l’algorithme de Rijndael Avril 2000 Troisième conférence AES
Octobre 2000 Le vainqueur est l’algorithme Rijndael (2 octobre 200)
Mai 2002 L’AES remplace le DES
• La substitution agit isolément sur tous les octets (ai,j )0≤i,j≤3 d’un
état en deux étapes :
◦ Calcul de l’inverse de (ai,j ) dans le corps à 256 éléments F256
x = ai,j −1
Si ai,j = 0, on pose x=0
◦ Puis transformation affine de l’octet x
⎛ ⎞ ⎛ ⎞⎛ ⎞ ⎛ ⎞
y0 1 0 0 0 1 1 1 1 x0 1
⎜ y1 ⎟ ⎜ 1 1 0 0 0 1 1 1 ⎟⎜ x1 ⎟ ⎜ 1 ⎟
⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟
⎜ y2 ⎟ ⎜ 1 1 1 0 0 0 1 1 ⎟⎜ x2 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟
⎜ y3 ⎟ ⎜ 1 1 1 1 0 0 0 1 ⎟⎜ x3 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟⎜ ⎟+⎜ ⎟
⎜ y4 ⎟ = ⎜ 1 1 1 1 1 0 0 0 ⎟⎜ x4 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟
⎜ y5 ⎟ ⎜ 0 1 1 1 1 1 0 0 ⎟⎜ x5 ⎟ ⎜ 1 ⎟
⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟
⎝ y6 ⎠ ⎝ 0 0 1 1 1 1 1 0 ⎠⎝ x6 ⎠ ⎝ 1 ⎠
y7 0 0 0 1 1 1 1 1 x7 0
• Introduction
• Les algorithmes de chiffrement à clé symétrique
◦ DES (Data Encryption Standard) • Les systèmes de chiffrement symétrique se répartissent selon deux
◦ AES (Advanced Encryption Standard) grandes familles :
• Modes de chiffrement ◦ Les systèmes de chiffrement par blocs
◦ Cryptanalyse ◦ Les systèmes de chiffrement par flot
◦ Les algorithmes de chiffrement à clé publique
◦ RSA (Rivest, Shamir et Adelman)
◦ Rabin
◦ Autres algorithmes à clé publique
• On désigne par chiffrement par blocs (block-cipher en anglais), tout • Une façon de bourrer (RFC2040) consiste à compléter le dernier
bloc par autant d’octets que nécessaire, chaque octet ayant pour
système de chiffrement (symétrique) dans lequel le message clair est
valeur le nombre d’octets ajoutés
découpé en blocs d’une taille fixe, et chacun de ces blocs est chiffré
◦ Par exemple, s’il manque trois octets au message m = o1 o2 o3 o4 o5 pour
• La longueur n des blocs et la taille l des clés sont deux obtenir un bloc de huit octets, on ajoute trois octets égaux à 3
caractéristiques des systèmes de chiffrement par blocs
o1 o2 o3 o4 o5 (03)H (03)H (03)H
• Le message P à chiffrer est découpé en blocs de n bits chacun
◦ S’il se trouve que la taille de la donnée à chiffrer est un multiple de la
• Si la longueur du message n’est pas un multiple de la longueur d’un taille d’un bloc, on ajoute un bloc entier dont chaque octet a pour
bloc, on le complète avec une séquence de bourrage ou padding en valeur la taille en octet d’un bloc. Par exemple, pour des blocs de huit
anglais octets, on ajoute le bloc
• Plusieurs techniques de bourrage existent (08)H (08)H (08)H (08)H (08)H (08)H (08)H (08)H
Le mode de chiffrement avec chaı̂nage de blocs (2) Le mode de chiffrement avec rétroaction (1)
Chiffrement Déchiffrement
Le mode de chiffrement avec rétroaction (1) Le mode de chiffrement par flot (1)
Le mode de chiffrement par flot (2) Le mode de chiffrement par flot (3)
• Introduction
• Les algorithmes de chiffrement à clé symétrique
◦ DES (Data Encryption Standard)
◦ AES (Advanced Encryption Standard)
◦ Modes de chiffrement
• Cryptanalyse
◦ Les algorithmes de chiffrement à clé publique
◦ RSA (Rivest, Shamir et Adelman)
◦ Rabin
◦ Autres algorithmes à clé publique
• Comment Alice et Bob peuvent-ils faire pour partager une clé • Comment Alice et Bob peuvent-ils faire pour partager une clé
secrète ? secrète ?
• Réponses
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
• Comment Alice et Bob peuvent-ils faire pour partager une clé • Comment Alice et Bob peuvent-ils faire pour partager une clé
secrète ? secrète ?
• Réponses • Réponses
◦ Se rencontrer physiquement pour échanger une clé secrète ◦ Se rencontrer physiquement pour échanger une clé secrète
(impraticable) ; (impraticable) ;
◦ Utiliser l’une des deux méthodes suivantes :
• Comment Alice et Bob peuvent-ils faire pour partager une clé • Comment Alice et Bob peuvent-ils faire pour partager une clé
secrète ? secrète ?
• Réponses • Réponses
◦ Se rencontrer physiquement pour échanger une clé secrète ◦ Se rencontrer physiquement pour échanger une clé secrète
(impraticable) ; (impraticable) ;
◦ Utiliser l’une des deux méthodes suivantes : ◦ Utiliser l’une des deux méthodes suivantes :
Protocole d’échange de clés de Diffie-Hellman ; Protocole d’échange de clés de Diffie-Hellman ;
Système de chiffrement asymétrique ;
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
• Un protocole d’échange de clé permet à deux protagonistes : • Un protocole d’échange de clé permet à deux protagonistes :
◦ d’échanger une clé secrète K ;
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
• Paramètres • Paramètres
◦ Un groupe cyclique G de cardinal n ; ◦ Un groupe cyclique G de cardinal n ;
◦ Un générateur g ∈ G ◦ Un générateur g ∈ G
• Paramètres • Paramètres
◦ Un groupe cyclique G de cardinal n ; ◦ Un groupe cyclique G de cardinal n ;
◦ Un générateur g ∈ G ◦ Un générateur g ∈ G
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
• Paramètres • Paramètres
◦ Un groupe cyclique G de cardinal n ; ◦ Un groupe cyclique G de cardinal n ;
◦ Un générateur g ∈ G ◦ Un générateur g ∈ G
4. reçoit KB et calcule KBA = KBxA ; 4. reçoit KA et calcule KAB = KAxB ; 4. reçoit KB et calcule KBA = KBxA ; 4. reçoit KA et calcule KAB = KAxB ;
Un exemple Un exemple
• Paramètres • Paramètres
◦ G = Z∗31 , g = 3 et n = 30 ; ◦ G = Z∗31 , g = 3 et n = 30 ;
◦ Un générateur g ∈ G ◦ Un générateur g ∈ G
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
Un exemple Un exemple
• Paramètres • Paramètres
◦ G = Z∗31 , g = 3 et n = 30 ; ◦ G = Z∗31 , g = 3 et n = 30 ;
◦ Un générateur g ∈ G ◦ Un générateur g ∈ G
2. calcule KA = g xA = 323 (mod 31) = 2. calcule KB = g xB = 317 (mod 31) = 2. calcule KA = g xA = 323 (mod 31) = 2. calcule KB = g xB = 317 (mod 31) =
11 ; 22 ; 11 ; 22 ;
3. envoie KA à Bob ; 3. envoie KB à Alice ;
Un exemple Un exemple
• Paramètres • Paramètres
◦ G = Z∗31 , g = 3 et n = 30 ; ◦ G = Z∗31 , g = 3 et n = 30 ;
◦ Un générateur g ∈ G ◦ Un générateur g ∈ G
2. calcule KA = g xA = 323 (mod 31) = 2. calcule KB = g xB = 317 (mod 31) = 2. calcule KA = g xA = 323 (mod 31) = 2. calcule KB = g xB = 317 (mod 31) =
11 ; 22 ; 11 ; 22 ;
3. envoie KA à Bob ; 3. envoie KB à Alice ; 3. envoie KA à Bob ; 3. envoie KB à Alice ;
4. reçoit KB = 22 et calcule KBA = 4. reçoit KA = 11 et calcule KAB = 4. reçoit KB = 22 et calcule KBA = 4. reçoit KA = 11 et calcule KAB =
KBxA = 2223 (mod 31) = 3 ; KAXB = 1117 (mod 31) = 3; KBxA = 2223 (mod 31) = 3 ; KAXB = 1117 (mod 31) = 3;
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
• Exemple :
• Le texte en clair à chiffrer (considéré comme une chaı̂ne de bits) est
◦ p = 11, q = 17, n = 187 et z = (11 − 1)(17 − 1) = 160 ;
divisé en blocs de m bits chacun ; m étant le plus grand entier pour
◦ Comme 161 = 7 × 23, on peut poser e = 7 et d = 23 ;
◦ Bob rend publique la clé (187,7)
lequel la condition 2m < n est vérifiée ;
◦ Alice veut transmettre à Bob un message codé plus petit que n = 187, • Pour chiffrer un message P, on calcule C = P e ≡ [n] ;
mettons la date à laquelle ils vont faire une surprise à Cédric (par • Pour déchiffrer C , il s’agit de calculer P = C d ≡ [n] ;
exemple le 10), message qui ne doit pas être intercepté par ledit
Cédric, bien sûr ; • On montre que pour tout P appartenant à l’intervalle 0 ≤ P < n, les
◦ Alice va donc calculer 107 = 187 × 53475 + 175, et envoyer le résultat fonctions de chiffrement et de déchiffrement sont inverses ;
175 à Bob ; • La clé publique est formée par le couple (e,n) ; la clé privée par le
◦ Bob calcule le reste de la division euclidinne de 17523 par 187 ; couple (d, n) ;
◦ Bob retrouve bien le message envoyé, à savoir 10 ;
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
C ≡ P 2 [n] = 225
Introduction RSA (Rivest, Shamir et Adelman) Introduction RSA (Rivest, Shamir et Adelman)
Les algorithmes de chiffrement à clé symétrique Rabin Les algorithmes de chiffrement à clé symétrique Rabin
Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique) Les algorithmes de chiffrement à clé publique Autres algorithmes à clé publique)
mohamed.koubaa@enit.rnu.tn C&C - PI 92