Vous êtes sur la page 1sur 118

Ecole Polytechnique Sousse

AU : 2021-2022
Cryptologie
➢ La cryptologie est la science du secret (du
grec kruptos qui signifie "caché"). Elle se compose de
2 disciplines :

❑ Cryptographie
❑ Cryptanalyse

➢ Une réponse un peu formelle : c’est la discipline qui


traite de la transmission confidentielle de données.
Cryptologie
➢ la cryptographie, qui comprend l’ensemble des
méthodes de protection d'une information.

➢ Elle sert à garantir la confidentialité d'une


information lors de communications ou de son
stockage, en utilisant le chiffrement.

➢ Mais elle a également d'autres objectifs de sécurité,


tels que l'intégrité et l'authentification,
Cryptanalyse
➢ la cryptanalyse, correspond aux méthodes utilisées
pour analyser les messages chiffrés et "casser" la
protection cryptographique de ces messages
Chiffrement
❑ Le chiffrement est la transformation d'une
information en clair en une information chiffrée,
incompréhensible, mais que l'on peut déchiffrer
avec une clé pour obtenir l'information en clair
originale.

❑ Un système de chiffrement (ou cryptosystème, ou


encore chiffre) est composé d'algorithmes de
chiffrement et déchiffrement et d'une clé de
chiffrement.

❑ Un message en clair (ou texte clair) est une


information non protégée et compréhensible par
tout le monde.
Un texte chiffré
➢ Un texte chiffré est une information incompréhensible
pour qui ne possède pas la clé de déchiffrement, mais
qu'on peut déchiffrer, retransformer en texte clair, si on
possède la clé.

➢ Un texte chiffré contient donc toutes les informations


contenues dans le texte clair pour celui qui possède la
clé, mais aucune de ces informations pour celui qui ne
la possède pas. C'est ce que l'on appelle
la confidentialité d'une information chiffrée.
Un algorithme
➢ Un algorithme de chiffrement est une fonction qui
prend en entrée le texte clair et la clé de chiffrement,
transforme le texte par des opérations, et fournit en
sortie un texte chiffré.

➢ L'algorithme de déchiffrement est la fonction inverse,


qui prend en entrée le texte chiffré et la clé de
déchiffrement, transforme ce texte par des opérations,
et fournit en sortie le texte clair d'origine.
Une clé
➢ La clé de chiffrement (ou cryptovariable) est
l'information qui permet de transformer un texte clair
en texte chiffré en utilisant un algorithme de
chiffrement.
➢ De même, la clé de déchiffrement est l'information
qui permet de transformer un texte chiffré en son texte
clair d'origine.
➢ L'espace de clé est l'ensemble des valeurs possibles de
la clé, c'est une notion importante pour la sécurité d'un
algorithme.
Ecole Polytechnique Sousse

AU : 2021-2022
Chiffrements anciens
➢ Le chiffrement par transposition agit sur le message
en déplaçant ses lettres, i.e. par une permutation sur
les positions des lettres du message.
Chiffrements anciens
➢ Le chiffrement par substitution agit sur chaque lettre
du message par une permutation de l’alphabet A.

•carré de Polybe
•chiffre de Delastelle
•chiffre des Templiers
•chiffre de PigPen
•Chiffrement par décalage (chiffre de César)
La substitution monoalphabétique
➢ Elle consiste à remplacer systématiquement dans le
message clair une lettre donnée de l'alphabet par
un signe donné (qui peut être simplement une
autre lettre).

➢ Deux lettres distinctes doivent être chiffrées en


deux signes distincts, sinon il y aurait ambiguïté lors
du déchiffrement.

❑ carré de Polybe
❑ chiffre de Delastelle
❑ chiffre des Templiers
❑ chiffre de PigPen
❑ Chiffrement par décalage (chiffre de César)
La Substitution polyalphabétique
➢ consiste à substituer une lettre du message en clair,
par une autre choisie en fonction d'un état du
cryptosystème, et non plus de manière fixe comme
pour la monosubstitution.

➢ Ce changement de lettre tout au long du processus,


s'obtient à l'aide d'une clé, qui indique le nombre de
décalage à réaliser à ce moment.

❑ chiffre de Vigenère
❑ chiffre de Hill
❑ Enigma
Substitution monoalphabétique : César
➢ La cryptologie est utilisée depuis l'Antiquité,
principalement dans le domaine militaire, pour éviter
que les informations sur une armée ou sur un plan
d'attaque ne tombent dans les mains de l'ennemi.

➢ La plus célèbre méthode de chiffrement de l'Antiquité


est le chiffre de César, utilisé par Jules César. Cette
méthode, aussi appelée chiffrement par décalage,
consiste à décaler chaque lettre d'un message par la
lettre de l'alphabet située à une distance fixée.
Le chiffre de César
➢ Jules César a-t-il vraiment prononcé la célèbre phrase :
DOHD MDFWD HVW
➢ En fait César, pour ses communications importantes à son
armée, cryptait ses messages. Ce que l’on appelle le
chiffrement de César est un décalage des lettres : pour crypter
un message, A devient D, B devient E, C devient F,...

➢ en vert le message crypté.


➢ en rouge c’est le message en clair.
➢ Pour prendre en compte aussi les dernières lettres de
l’alphabet, il est plus judicieux de représenté l’alphabet sur un
anneau.
15
Le chiffre de César

➢ Pour déchiffrer le message de César, il suffit de décaler les


lettres dans l’autre sens, D se déchiffre en A, E en B,...
➢ Et la célèbre phrase de César est :
ALEA JACTA EST
qui traduite du latin donne « Les dés sont jetés »

16
Le chiffre de César
Il est plus facile de manipuler des nombres que des lettres, Nous
associons à chacune des 26 lettres de A à Z un nombre de 0 à 25.

Soit n > 2 un entier fixé.


Définition 1.
On dit que a est congru à b modulo n, si n divise b − a.
On note alors a ≡ b (mod n).
Pour nous n = 26. Ce qui fait que 28 ≡ 2 (mod 26), car 28 − 2 est
bien divisible par 26. De même 85 = 3 × 26 + 7 donc 85 ≡ 7 (mod
26).

➢ On note Z/26Z l’ensemble de tous les éléments de Z modulo


26.
➢ Cet ensemble peut par exemple être représenté par les 26
éléments {0, 1, 2, . . . , 25}

17
Le chiffre de César: chiffrement
Le chiffrement de César est simplement une addition dans
Z/26Z! Fixons un entier k qui est le décalage (par exemple k = 3
dans l’exemple de César ci-dessus) et définissons la fonction de
chiffrement de César de décalage k qui va de l’ensemble Z/26Z
dans lui-même

Par exemple, pour k = 3 : C3(0) = 3, C3(1) = 4. . .

18
Le chiffre de César: déchiffrement
Pour déchiffrer, rien de plus simple ! Il suffit d’aller dans l’autre
sens, c’est-à-dire ici de soustraire. La fonction de
déchiffrement de César de décalage k est :

en effet, si 1 a été chiffré en 4, par la fonction C3 alors D3 (4) = 4 − 3


= 1. On retrouve le nombre original. Mathématiquement, Dk est la
bijection réciproque de Ck , ce qui implique que pour tout x ∈
Z/26Z :

19
Le chiffre de César: Exemple
➢ Alice veut envoyer des messages secrets à Bruno. Ils se sont d’abord mis
d’accord sur une clé secrète k, par exemple k = 11. Alice veut envoyer le
message "COUCOU" à Bruno.
➢ Elle transforme "COUCOU en "2 14 20 2 14 20".
➢ Elle applique la fonction de chiffrement C11(x) = x + 11 à chacun des
nombres : "13 25 5 13 25 5" ce qui correspond au mot crypté "NZFNZF".
Elle transmet le mot crypté à Bruno, qui selon le même principe
applique la fonction de déchiffrement D11(x) = x − 11

20
Le chiffre de César: Attaque brute force
➢ Il est clair que ce chiffrement de César est d’une sécurité très faible.
➢ Si Alice envoie un message secret à Bruno et que Chloé intercepte ce
message, il sera facile pour Chloé de le décrypter même si elle ne connaît
pas la clé secrète k.
➢ L’attaque la plus simple pour Chloé est de tester ce que donne chacune
des 26 combinaisons possibles et de reconnaître parmi ces combinaisons
laquelle donne un message compréhensible

21
César: Attaque par analyse fréquentielle
➢ Dans la langue française, comme dans toutes les langues, certaines
lettres sont plus fréquentes que d'autres.

➢ Le E par exemple est la lettre la plus courante, suivie par le S, alors que le
W et le K sont les moins courantes.

➢ Avec le chiffrement par décalage, chaque lettre est toujours remplacée


par la même lettre, en appliquant le décalage par une distance fixée.

➢ Ainsi, la fréquence d'apparition des lettres dans un message chiffré reste


la même que pour le message clair.

22
César: Attaque par analyse fréquentielle
➢ Vous pouvez ainsi déduire que les lettres les plus fréquentes
correspondent aux lettres les plus fréquentes de la langue française.
➢ Par exemple si le V est la lettre la plus fréquente dans le texte chiffré,
vous pouvez déduire que la lettre E est permutée par la lettre V, etc.

23
Le chiffre de Vigenère
➢ Un autre algorithme célèbre est le chiffre de Vigenère, inventé au XVIe
siècle.

➢ Il reprend en partie le principe de substitution, mais en variant la


distance de décalage au cours du chiffrement en utilisant un mot ou
une phrase comme clé.

➢ Chaque lettre de la clé correspond à sa position dans l'alphabet.

➢ Pour chiffrer un message, on écrit le texte clair et on écrit la clé en


dessous, en répétant la clé autant de fois que nécessaire pour couvrir
l'ensemble du message.

24
Le chiffre de Vigenère
➢ Par conséquent : le chiffrement consiste à additionner chaque lettre du
message avec la lettre de la clé en dessous, modulo 26 ;
➢ le déchiffrement consiste à soustraire chaque lettre du message chiffré
avec la lettre de la clé en dessous, modulo 26.

25
Le chiffre de Vigenère
➢ Par exemple, avec la clé "RABELAIS" et le message clair suivant on
obtient le texte chiffré :

26
Vigenère: Un algorithme peu résistant
➢ Cet algorithme a résisté à la cryptanalyse jusqu'au XVIIIe siècle, mais a
fini par être cassé avec la méthode suivante :
▪ Supposez d'abord que vous connaissez la longueur de la clé.
▪ Découpez le texte en parties du même nombre de lettres que la clé.
La première lettre de chaque partie est toujours chiffrée avec la
même lettre, la première lettre de la clé.
▪ Vous pouvez donc réaliser une analyse fréquentielle, comme pour le
chiffre de César, en observant que la lettre la plus courante
correspond à la lettre E suivie de la lettre S, etc. Cela vous donne la
première lettre de la clé.
▪ Faites de même avec la 2e lettre, et ainsi de suite pour retrouver
toutes les lettres de la clé et déchiffrer entièrement le message.

27
Cryptage symétrique : Critères d’efficacité
▪ Les critères d’efficacité à prendre en compte sont :

o Niveau de sécurité estimé : résistance à la cryptanalyse.

o Longueur de la clé : sécurité vs. coût de génération, transmission,


stockage

o Débit

o Taille des blocs : sécurité vs. complexité (coût d’implémentation)

o Complexité de la fonction de cryptage : sécurité vs. coût


(développement et hardware)

o Propagation des erreurs

28
Cryptage symétrique : Stream cipher
➢ Le chiffrement de flux, chiffrement par flot ou chiffrement en continu (en
anglais stream cipher)
➢ Un chiffrement par flot arrive à traiter les données de longueur quelconque
et n'a pas besoin de les découper.

➢ Une liste non exhaustive de chiffrements par flot :


o A5/1, algorithme publié en 1994, utilisé dans les téléphones mobiles de type
GSM pour chiffrer la communication par radio entre le mobile et l'antenne-
relais la plus proche ;
o RC4, le plus répandu, conçu en 1987 par Ronald Rivest, utilisé notamment
par le protocole WEP du Wi-Fi ;
o Py, un algorithme récent de Eli Biham ;
o E0 utilisé par le protocole Bluetooth.
29
Cryptage symétrique : Cipher bloc
▪ Comment crypter un message de longueur quelconque ?
⇒ Le couper en blocs de n bits :
Problèmes
Pas la seule solution

o Modes ECB, CBC, CFB, OFB.

o Chiffrement par blocs de texte clair 64 bits (DES), (3DES).

o RC2 (128 bits), Blowfish (128bits, jusqu'à 448 bits), AES (128, 192, 256
bits), IDEA (128 bits).

30
Mode opératoire de chiffrement symétrique
Plusieurs modes existent, certains sont plus vulnérables que d'autres :

➢ Dictionnaire de codes (Electronic Code Book, ECB)


➢ Enchaînement des blocs (Cipher Block Chaining, CBC)
➢ Chiffrement à rétroaction (Cipher Feedback, CFB)
➢ Chiffrement à rétroaction de sortie (Output Feedback, OFB)
➢ Chiffrement basé sur un compteur (CounTeR, CTR)
➢ Chiffrement avec vol de texte (CipherText Stealing, CTS)
➢ Compteur avec CBC-MAC

31
EBC (Electronic codebook)
Le message à chiffrer est subdivisé en plusieurs blocs qui sont chiffrés
séparément les uns après les autres.

Ce mode est pour ces raisons fortement déconseillé dans toute application
cryptographique.
Le seul avantage qu'il peut procurer est un accès rapide à une zone
quelconque du texte chiffré et la possibilité de déchiffrer une partie
32
seulement des données.
EBC (Electronic codebook)

1) décomposer le plaintext en bloc de taille approprié. Faire du bourrage avec des zeros
pour avoir des bloc de même taille
2) Appliquer le mode ECB lors du chiffrement des blocs du plaintext
3) Donner le ciphertext final
4) Appliquer le déchiffrement et vérifier avec le message original
5) Considérer un plaintext formé par les mêmes blocs 1010, cette redondance est-elle
propagé dans le ciphertext ?
6) Si l’ordre des blocs des ciphertexts est modifié ? le décryptage de chaque bloc est il
possible ?
7) Que pensiez vous de la securité de ECB et dans quel application est il approprié ?

33
EBC (Electronic codebook)

chiffrement=E(plaintext)
1) bourrage avec un seul 0 pour avoir des blocs de taille n=4.
m = 1011 0001 0100 1010
m1=1011 ; m2= 0001 ; m3 = 0100 ; m4 = 1010
2) Les blocks sont chiffrés séparément.
On obtient c1=E(m1)=0111 ; c2=E(m2)=0010 ; c3=E(m3)= 1000 ;
c4=E(m4)=0101
3) D’où le ciphertext final est :
C= 0111 0010 1000 0101 34
EBC (Electronic codebook)

4) Déchiffrement (0111 0010 1000 0101) =


1011 0001 0100 1010.
5) Oui la redondance sera propagé dans le ciphertext :
E(1010 1010 1010 1010) =
0101 0101 0101 0101
6) l’ordre des blocs dans ECB n’affecte pas le chiffrement/déchiffrement des blocs
7) ECB n’est pas sécurisé. Il est adéquat seulement pour le chiffrement des
messages très courts

35
EBC (Electronic codebook)
JOHN__105000
JACK__500000
Le chiffrement sur le premier message donne ceci :

JO|HN|__|10|50|00
Q9|2D|FP|VX|C9|IO
Et sur le deuxième message, on obtient :

JA|CK|__|50|00|00
LD|AS|FP|C9|IO|IO
On constate que des paires de caractères apparaissent dans les deux messages
chiffrés, il en va de même dans les messages en clair :

Q9|2D|FP|VX|C9|IO
LD|AS|FP|C9|IO|IO
En partant du principe que John connait son salaire, il pourrait deviner le salaire de
Jack car la séquence "C9" correspond à "50" et "IO" à "00". John en déduit que le
salaire de Jack, chiffré en « C9IOIO » correspond à « 500000 ».

36
CBC (Cipher Block Chaining)
➢ Le mode de chiffrement avec chaînage de blocs, en anglais "Cipher
Block Chaining" (CBC), offre une solution à la plupart des problèmes du
mode ECB.
➢ Plus précisément, l’opérateur binaire XOR est appliqué entre le bloc
actuel de texte en clair et le bloc précédent de texte chiffré et on
applique ensuite l’algorithme de chiffrement au résultat de cette
opération.
➢ Pour le tout premier bloc, un bloc ayant un contenu aléatoire, appelé
vecteur d’initialisation (initialization vector), est généré et utilisé pour
l’application de l’opération XOR. Ainsi, chaque bloc chiffré ne dépend
non seulement du bloc de texte en clair correspondant, mais
également de tous les blocs chiffrés qui le précèdent.

37
CBC (Cipher Block Chaining)
Dans ce mode, on applique sur chaque bloc un ‘OU exclusif’ avec le chiffrement du
bloc précédent avant qu’il soit lui-même chiffré. De plus, afin de rendre chaque
message unique, un vecteur d'initialisation (IV) est utilisé.

38
CBC (Cipher Block Chaining)

On donne IV=1010 = C0
1) décomposer le plaintext en bloc de taille approprié. Faire du bourrage avec des zéros
pour avoir des bloc de même taille
2) Appliquer le mode CCB lors du chiffrement des blocs du plaintext
3) Donner le ciphertext final
4) Appliquer le déchiffrement et vérifier avec le message original
5) Considérer un plaintext formé par les mêmes blocs 1010, cette redondance est-elle
propagé dans le ciphertext ?
6) Si l’ordre des blocs des ciphertexts est modifié ? le décryptage de chaque bloc est il
possible ?
7) Que pensiez vous de la securité de CBC et dans quel application est il approprié ?
8) Dire quel application CBC est approprié 39
CBC (Cipher Block Chaining)
1) Soit le plaintext m : m = 1011 0001 0100 1010
On donne IV=1010
c0=IV=1010 ;
c1=E(c0⊕ m1)=E(1010 ⊕ 1011)= E(0001) = 0010
c2=E(c1⊕ m2)=E(0011) = 0110
c3=E(c2⊕ m3)=E(0010) = 0100
c4=E(c3⊕ m4)=E(1110) = 1101

2) ciphertext final est : c=0010 0110 0100 1101

3) Decryptage :
m1=c0⊕ D(c1) =1010 ⊕ D(0010)= 1010 ⊕ 0001 = 1011
m2=c1⊕ D(c2) =0010 ⊕ D(0110)= 0010 ⊕ 0011 = 0001
m3=c2⊕ D(c3) =0110 ⊕ D(0100)= 0110 ⊕ 0010 = 0100
m4=c3⊕ D(c4) =0100 ⊕ D(1101)= 0100 ⊕ 1110 = 1010

4) m = 1011 0001 0100 1010


40
Cryptage symétrique CBC (Cipher Block Chaining)
5) La redondance ne sera pas propagée :

E(1011 1011 1011 1011) = 0010 0011 0001 0101

6) si l’odre de blocs de ciphertext change ou les blocs de ciphertext sont


remplacés par d’autres, alors le décryptage devient impossible. Ceci est un
avantage de CBC par rapport ECB

7) sécurité amélioré parce que plus de confusion

8) CBC peut être approprié pour le chiffrement de long messages.

41
CBC (Cipher Block Chaining)
➢ Le rôle du vecteur d’initialisation est d’empêcher que si deux textes en
clair débutent de la même façon, les textes chiffrés correspondants le
font différent.
➢ Il n’est plus possible pour un espion d’apprendre la moindre
information concernant le texte en clair à partir du texte chiffré. Il n’est
pas nécessaire non plus de tenir secret le vecteur initialisation.
Généralement on le transmet en clair avec le texte chiffré également.
➢ Il n’est pas obligatoire de le choisir aléatoirement; il peut aussi être un
numéro d’ordre qui est augmenté après chaque message.
➢ La seule chose importante est qu’il doit être différent pour chaque
message chiffré avec la même clé. Grâce au vecteur d’initialisation,
même un bloc de texte en clair identique donnera un message chiffré
.
42
CFB (Cipher Feedback Mode)

43
OFB (Output feedback )

44
Cryptage symétrique : Data Encryption Standard
(DES)
❑ DES est un algorithme de cryptage extrêmement rapide au niveau
du chiffrement/déchiffrement.
❑ Feistal Horst, un chercheur des laboratoires IBM, propose dans les
années '60 un algorithme de cryptage très fiable dont la simplicité
permet un codage aisé sur un circuit électronique. Ce projet est
retenu sous le nom de code LUCIFER.
❑ DES est un algorithme à clé symétrique, c'est-à-dire que nous
appliquons la même clé pour chiffrer et pour déchiffrer. Ceci
suppose que la personne qui chiffre et celle qui déchiffre possèdent
la même clé et que celle-ci ait été échangée par un moyen sécurisé.

45
Cryptage symétrique : Data Encryption Standard (DES)
❑ DES est un algorithme symétrique, qui combine transpositions et
substitutions :
❑ La transposition est le fait de déplacer des éléments du fichier clair
(plain text) dans le fichier crypté (cypher text). Les transpositions
permettent d'éclater dans le fichier crypté la redondance présente
dans le fichier clair.
❑ Dans le cas de l'algorithme DES, nous rencontrerons aussi le terme
permutation au lieu de transposition.
❑ La substitution est la transformation d'un élément du fichier clair
en un autre élément dans le fichier chiffré. Les substitutions non
linéaires permettent de compliquer la liaison entre le fichier crypté
et les clés secrètes.
❑ Le processus de cryptage nécessite 16 étapes numérotées de 0 à 15,
comprenant chacune des transpositions et substitutions. 46
Cryptage symétrique : Data Encryption Standard (DES)
DES fonctionne en trois étapes :
1) permutation initiale et fixe d'un bloc de 64 bits de texte
2) le résultat est soumis à 16 itérations d'une transformation,
dépendent à chaque tour d'une autre clé partielle de 48 bits.
3) Cette clé de tour intermédiaire est calculée à partir de la clé initiale
de l'utilisateur
4) Lors de chaque tour, le bloc de 64 bits est découpé en deux blocs
de 32 bits, et ces blocs sont échangés l'un avec l'autre selon un schéma
de Feistel.
5) Le bloc de 32 bits ayant le poids le plus fort (celui qui s'étend du bit
32 au bit 64) subira une transformation ;
6) le résultat du dernier tour est transformé par la fonction inverse de
la permutation initiale.
DES utilise huit tables de substitution (les S-Boxes)
47
Cryptage symétrique : DES principe de fonctionnement
avancé

48
Cryptage symétrique : DES principe de fonctionnement
avancé

49
Cryptage symétrique : DES principe de fonctionnement
avancé

50
Cryptage symétrique : DES principe de fonctionnement
avancé

51
DES: (étape 2 génération des sous clés)
Les sous-clés(Round keys) de taille 48 bits sont générées à partir de la clé
principale de 56 bits après le passage par PC-2,
Si la taille de clé principale 64 on peut utiliser PC1 pour obtenir une clé de 56 bits
◼Diviser la clé de 56 bits en deux segments.
◼Rotation de chaque segment par un ou deux bits à droite.

◼Sélection de 24 bits de chaque segment.

52
DES: (étape 2 génération des sous clés)

le nombre de décalage circulaires à gauche à effectuer sur ces deux blocs de 28 bits pour
chaque itération. On décale de un bit pour les itérations selon la liste de decalage
nombre de décalage à gauche pour les 16 itérations (LSi) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1122222212 2 2 2 2 2 1
Pour la première itération, nous obtenons donc après 1 décalage à gauche de chacune des
deux parties :
1100 0000 0000 0000 0000 0000 0000 devient 1000 0000 0000 0000 0000 0000 0001
53
DES: (étape 1 et 3 permutation : cryptage)
❑Phase 1 : Transposition initiale du bloc de 64 bits
▪ Chaque bloc subit une transposition initiale suivant la table IP :
▪ Nous sommes toujours en possession d'un bloc de 64 bits, mais
dont les éléments ont changé de place (par exemple, le bit 1 se
retrouve à la place du bit 40, le bit 40 se retrouve à la place du bit 28,
etc.).

54
DES: (étape 1 et 3 transformation : cryptage)

55
DES: (étape 1 et 3 transformation : cryptage)
▪ Division en deux blocs de 32 bits :
▪ Ce bloc de 64 bits est découpé en deux blocs de 32 bits,
▪ L0 (Left zero) et R0 (Right zero).
▪ Chaque bloc est placé dans une mémoire tampon (buffer) car nous
en aurons besoin ultérieurement.

56
DES: (étape 1 et 3 transformation : cryptage)
❑Phase 2 : Transposition et substitution avec la clé K

57
DES: (étape 1 et 3 transformation : cryptage)
❑ Expansion à 48 bits et transpositions
❑ Comme la clé correspondant à cette étape (K0) est composée de 48
bits et que notre bloc est composé de 32 bits, nous allons le soumettre à
une nouvelle table de transposition dans laquelle un bit peut se trouver
deux fois (par exemple, le bit 1 de la sortie de notre table précédente se
retrouve à la position 2, et en même temps à la position 48) :

58
DES: (étape 1 et 3 expansion : cryptage)

59
DES: (étape 1 et 3 expansion et substitutions : cryptage)

60
DES: (étape 1 et 3 permutation : cryptage)
❑Phase 3 : Transposition finale sur 64 bits
A la 16ème itération, les deux blocs de 32 bits de gauche et de droite sont
réunis en un bloc de 64 bits dans la table IP inverse :

61
Cryptage symétrique :limite DES

Les progrès en cryptanalyse et en électronique a fait que la longueur 56 des clés


est devenu un problème pour DES
➔La taille de l’ensemble : {0,1}56 permet de retrouver la clé à partir d’un texte
clair connu en faisant du brute force.
◼ 3-DES (triple DES) a été lancé comme un nouveau standard en 1999.
◼Utilise 2 ou 3 clés.
◼Niveau de sécurité satisfaisant.
◼Permet de continue l’utilisation des boites S-Box et P-Box matériel et logiciel,
AES le plus performant
L'algorithme AES prend en entrée un bloc de 128 bits (16 octets), la clé fait 128, 192 ou
256 bits

62
Cryptage symétrique :3-DES

❑ Deux clés sont générées : K1 et K2.


❑ Le fichier subit un premier chiffrement (encryption) à l'aide de la clé K1.
❑ Le résultat subit un déchiffrement à l'aide de la clé K2. Comme le
chiffrement a été réalisé à l'aide d'une autre clé, le fichier est modifié,
mais pas déchiffré.
❑ La troisième opération consiste à chiffrer le tout à l'aide de la clé K1.

63
Cryptage symétrique
• Limitation: Pas d'intégrité et d'identification de l'auteur
• La clé partagé et transmit dans le même canal que Cédric
• Si Alice, Bob et Cédric partage le même lien de communication alors ils
partagent la même clé de chiffrement symétrique.

64
Cryptage asymétrique

65
Cryptage asymétrique (à clé publique)
• Utilisation d’une paire de clés:
– Publique: Connue par tout le monde, utilisée généralement pour crypter
ou vérifier la signature des messages.
– Privée: Connue uniquement par le détenteur, utilisée pour décrypter et
signer des messages.
• Impossible de trouver la clé privée à partir de la clé publique.
• Exemples: RSA, Diffie-Hellman, El Gamal.
• Généralement dix fois plus lent que le cryptage symétrique.
• Utilisé généralement pour
– Cryptage / décryptage: assurer la confidentialité.
– Signature numérique: assurer l’authentification et la non répudiation.
– Distribution de clés: se mettre d’accord sur une clé de session.
• Clés à grande taille (ex: RSA: 1024-2048-…)

66
Cryptage asymétrique (à clé publique)
1. Chiffrement/ déchiffrement

2.Signature Electronique

67
RSA

68
RSA
• Développé par Rivest, Shamir & Adleman à MIT en
1977, publié en 1978
• Le plus connu et le plus utilisé comme algorithme de
cryptage asymétrique.
• Breveté par RSA, et cette patente a expiré en 2000.
• Utilise des entiers très larges 1024+ bits
• Le fonctionnement du crypto système RSA est basé sur la
difficulté de factoriser de grands entiers.

69
Rappel
• A mod B est le reste de la division entière de A par B
• La multiplication et le modulo
(A mod B) (C mod B) = A * C mod B
• L'exponentielle et le modulo
an mod m = (a mod m)n mod m
• Pierre Fermat :
Si on utilise un nombre premier comme module, alors quand on élève un
nombre à la puissance (nombre premier -1), on obtient 1
– Pour n'importe quel nombre m et pour p premier :
ap ≡ a (mod p)
Ap-1 ≡ 1 (mod p)
m( p – 1 ) mod p = 1
– Exemple : 7 10 mod 11 = 1 …pas besoin de calcul car 11 est premier

70
Rappel
• Leonhard Euler :
– Lorsqu'on utilise un module comme étant le produit de deux nombres
premiers on a :
Soit n = p * q, avec p et q premiers, et quelque soit m
m( p – 1 ) ( q – 1 ) mod n = 1
m (p−1)(q−1) ≡ 1 (mod n)
– Exemple : soit p = 11 et q = 5, n = 55 et (p – 1)(q – 1) = 10 * 4 = 40
38 40 mod 55 = 1
– Si on manipule le résultat d'Euler en multipliant par m l'équation :
m * m( p – 1 ) ( q – 1 ) mod n = m
m( p – 1 ) ( q – 1 ) + 1 mod n = m

71
Rappel
• L’exponentiation rapide
• Voyons la technique sur l’exemple de 5 11 (mod 14).
– L’idée est de seulement calculer 5, 5 2 , 5 4 , 5 8 ... et de réduire modulo n à
chaque fois.
– Pour cela on remarque que 11 = 8 + 2 + 1 donc 5 11 = 5 8 × 5 2 × 5 1 .
Calculons donc les 52 i (mod 14) :
5 ≡ 5 (mod 14)
5 2 ≡ 25 ≡ 11 (mod 14)
5 4 ≡ 5 2 × 5 2 ≡ 11 × 11 ≡ 121 ≡ 9 (mod 14)
5 8 ≡ 5 4 × 5 4 ≡ 9 × 9 ≡ 81 ≡ 11 (mod 14) à chaque étape est effectuée une
multiplication modulaire.
Conséquence : 5 11 ≡ 5 8 × 5 2 × 5 1 ≡ 11 × 11 × 5 ≡ 11 × 55 ≡ 11 × 13 ≡ 143 ≡
3 (mod 14).
Nous obtenons donc un calcul de 511 (mod 14) en 5 opérations au lieu de 10 si
on avait fait 5 × 5 × 5 ···.
72
RSA: Algorithme
• Étapes
1. Sélectionner deux entiers premiers entre eux « p » et « q »
2. Calculer n = p x q
3. Calculer φ(n)=(p-1)(q-1)
4. Sélectionner « e » tel que: pgcd(φ(n),e)=1 ; 1<e<φ(n)
▪ En général « e » est un entier de petite taille.
5. Calculer d ≡ e-1 mod φ(n). En d’autre terme: d.e ≡ 1 mod (φ(n))
6. Clé publique: Kpu={e,n}
7. Clé privée Kpr = {d,n}
• Pour crypter un message M < n, l’émetteur:
– Obtient une clé publique du récepteur et calcule « C= Me mod n »
• Pour décrypter un message crypté C le récepteur
– Utilise sa clé privée et calcule « M = Cd mod n »

73
Preuve de RSA
• D(E(M)) = (Me mod n)d mod n
= Me.d mod n
• On a: e.d = 1 (mod φ(n) )
= z x φ(n) + 1
• Me.d = M z x φ(n) + 1
= (Mz)φ(n) x M
= 1 x M (mod n)
• Par hypothèse RSA crypte des blocks de données de taille
inférieure à n (décomposition en blocks)
➔ D(E(M)) = M

74
Exemple d'utilisation de RSA
• Création de la paire de clés:
– Soient deux nombres premiers au hasard: p = 5, q = 17, on calcule
n = pq = 5 * 17 = 85.
– On doit choisir e au hasard tel que e n'ai aucun facteur en commun
avec (p-1)(q-1):
(p-1)(q-1) = (5-1)(17-1) = 64
– On prend e = 5 pgcd(64, 5)=1
– On choisit d tel que 5*d mod 64 = 1 → Donc 5 × d ≡ 1 (mod
64) et l’inverse de e modulo ϕ(n)
– 65 mod 64 = 1 → 65=5*13 mod 64= 1 → 5*13 ≡ 1 (mod
64)
– on trouve d = 13.
– On a maintenant les clés :
- la clé publique est (e,n) = (5,85) (=clé de chiffrement)
- la clé privée est (d,n) = (13,85) (=clé de déchiffrement)
75
Exemple d'utilisation de RSA
• Chiffrement du message
Le message est un entier m, tel que 0 <= m < n.
Exemple 1. Bruno veut envoyer le message m = 10.
• On doit chiffrer chacun avec clé public (e,n) :
• Exemple 1. m = 10, n = 85 et e = 5 donc
m e (mod n)= x (message chiffré)
• x ≡ m e (mod n) ≡ 105 (mod 85) On peut ici faire les calculs à la
main : 102 ≡ 100 ≡ 15 (mod 85)
• 104 ≡ (102 ) 2 ≡ 152 ≡ 225 ≡ 55 (mod 85)
• x ≡ 105 ≡ 104 × 10 ≡ 55 × 10 ≡ 550 ≡ 40 (mod 85)
• Le message chiffré est donc x = 40

76
Exemple d'utilisation de RSA
• déchiffrement du message
Exemple 1. c = 40, d = 13, n = 85
x d (mod n)= m (message déchiffré)
donc x d ≡ (40) 13 (mod 85)
Calculons à la main 4013 ≡ (mod 85) on note que 13 = 8 + 4 + 1,
donc 4013 = 408 × 404 × 40.
402 ≡ 1600 ≡ 70 (mod 85)
404 ≡ (402 ) 2 ≡ 70^2 ≡ 4900 ≡ 55 (mod 85)
408 ≡ (404 ) 2 ≡ 552 ≡ 3025 ≡ 50 (mod 85)
Donc x d ≡ 40^13 ≡ 408 × 404 × 40 ≡ 50 × 55 × 40 ≡ 10 (mod 85)
4013 (mod 85) =10

77
Schéma RSA

78
RSA: Algorithme : Exemple
Cryptage Décryptage
Texte
Texte clair Texte clair
crypté

▪ p = 17, q = 11, n = p x q= 187


▪ (n) = 16 x 10 =160,
▪ Choisir e = 7,
▪ d.e ≡ 1 (mod (n)) ➔ d = 23
79
Exemple d'utilisation de RSA
Exemple 2. Bruno veut envoyer le message m = 251223 ?

80
Problèmes de RSA
• Complexité algorithmique de la méthode:
– recherche de nombres premiers de grande taille, et choix de
clés très longue
– Réalisation des opérations modulo n.
• Problème d’implémentation sur les équipements disposants de
faible puissance de calcul (ex: cartes bancaire, stations mobiles,
etc.)
• La méthode est officiellement sûre si des contraintes de longueur
des clés et d’usage sont respectées.
• ➔ Solution: Utilisation de RSA pour l’échange des clés secrètes de
session d'un algorithme symétrique à clés privées.

81
Comparaisons entre RSA et DES
• RSA
— clé de 40 bits
— chiffrement matériel : 300 Kbits/sec
— chiffrement logiciel : 21,6 Kbits/sec
— Inconvénient majeur : un pirate substitue sa propre clé publique à celle du
destinataire, il peut alors intercepter et décrypter le message pour le recoder
ensuite avec la vraie clé publique et le renvoyer sur le réseau. «L’attaque» ne
sera pas décelée.
— usage : on ne les emploiera que pour transmettre des données courtes telles
que les clés privées et les signatures électroniques.
• DES
— clé de 56 bits
— chiffrement matériel : 300 Mbits/sec
— chiffrement logiciel : 2,1 Mbits/sec
— Inconvénient majeur : attaque «brute force» rendue possible par la
puissance des machines.
— Usage : chiffrement rapide, adapté aux échanges de données de tous les
protocoles de communication sécurisés.
82
Diffie Helman

83
Échange sécurisé
• Résolution du problème de l'échange des clés secrètes : utilisation d'une
méthode hybride combinant à la fois chiffrement symétrique et asymétrique.

• Avantages :
— la clé secrète est chiffrée et échangée ;
— après l'échange on bascule le chiffrement en utilisant un algorithme
symétrique plus rapide ;
— on démarre l'échange avec l'utilisation d'un algorithme asymétrique qui
possède l'avantage d'offrir un moyen d'identifier les interlocuteurs.

84
Échange sécurisé : la méthode Diffie - Hellman

85
Echange sécurisé : la méthode Diffie - Hellman
Déroulement de l’algorithme

86
Echange sécurisé : la méthode Diffie - Hellman

1. Soit n =17, g= 3 des clés globales partagés entre Alice et Bob.


2. Alice choisit a= 7, et Bob choisit b= 4 comme clés secrètes,

Compléter le protocole de Diffie Hellman pour partager une clé secrète.

3. Alice calcule A = ga mod n = 37 mod 17 = 37 mod 17 =11


envoyer A =11 à Bob

4. Bob calcule B = gb mod n = 3 4 mod 17 = 13


envoyer B=13 à Alice

5. Alice calcule la clé secrète par K = Ba mod n = 137 mod 17 = 4


6. Bob calcule la clé secrète K par K = Ab mod n = 114 mod 17 = 4
7. K= gba mod p = 37*4 mod 17 = 4
87
Échange sécurisé : la méthode Diffie - Hellman

88
ElGamel

89
L'algorithme ElGamal

• Algorithme de cryptographie asymétrique basé sur


les logarithmes discrets.
• Il a été créé par Taher Elgamal.
• Cet algorithme est utilisé par le logiciel libre GNU Privacy
Guard, de récentes versions de PGP, et d'autres systèmes de
chiffrement, et n'a jamais été sous la protection d'un
brevet contrairement à RSA.
• L'algorithme DSA du NIST est basé sur ElGamal.
• Il peut être utilisé pour le chiffrement et la signature
électronique.

90
L'algorithme ElGamal
• Alice choisit un nombre premier p et g, ensuite elle choisit un
• exposant 0<a<p-1, et calcule: A=ga mod p
• La clé publique d’Alice est: (p,g,A) sa clé secrète est l’exposant a
• L’entier A est la partie de la clé du protocole Diffie-Hellman
• L’espace des messages en clair est l’ensemble {0,…,p-1} pour
chiffrer un msg en clair m, Bob se procure la clé publique
(p,g,A)d’Alice et choisit un entier au hasard 0<b<p-1 et calcule
B= gb mod p, Le nombre B est la partie du clé de Diffie-Hellman
• Bob détermine c = Ab *m mod p
• Bob chiffre le message m en le multipliant par la clé
• Le Cryptogramme El-Gamal complet est le couple (B,c)

91
L'algorithme ElGamal
• Alice reçoit le cryptogramme (B,c)

• Elle connaît sa clé secrète a,

• Pour reconstituer le message en clair m, elle divise c par la clé


Diffie-Hellman Ba mod p

• Alice determine d’abord x:=p-1-a, Puis calcule: m= Bx c mod p

• C’est bien le message en clair.

92
L'algorithme ElGamal
• Alice choisit: p=23, g=7 et a=6,

• Alice calcule: A= g a mod p = 7 6 mod 23= 4

et envoie la clé publique: (p,g,A)= (23,7,4) à Bob.

• Bob choisit un entier b=3

• Bob calcule: B = g b mod p = B= 7 3 mod 23 = 21

et chiffre m= 7

• Il calcule C:= A b . m mod p = 4 3 * 7 mod 23 =11

• Et envoie le cryptogramme (B,C) =(21,11) à Alice

• Alice détermine x=p-1-a donc on a : x=23-1-6=16 puis calcule:

• M=B x *C mod p , m=21 16 *11 mod 23 = 7 93


Signature Numérique

94
Fonction de hachage: Propriété mathématique
• Entrée: message M avec contenu et taille arbitraire.
• Sortie: message de taille fixe h=H(M).
• H(M) est appelé condensât, ou empreinte, ou fingerprint, ou
message digest
• Irréversible:
– Étant donnée h, il est difficile de trouver x tel que: h = H(x)
– Complexité de l’ordre de 2n, n est le nombre de bits du digest.
• Résistance forte à la collision:
– Étant donné x, il est impossible de trouver y avec H(x) = H(y)
– Il est impossible de trouver une paire x, y tel que H(x) = H(y)
• Calcul facile et rapide (plus rapide que le cryptage symétrique).

95
Fonctions de Hashage : Principes

Texte clair Texte clair

Internet
Hashage =? Hashage
Empreinte Empreinte Empreinte
reçue recalculée

1) = Le texte reçu est intègre


Empreinte Empreinte
reçue recalculée

2) ≠ Le texte reçu est altéré


Empreinte Empreinte
reçue recalculée

96
Fonctions de Hashage : Exemples
• MD5 : Message Digest 5
– Développé par Ron Rivest
– Génère une empreinte de taille 128 bits
• SHA-1 : Secure Hash Algorithm
– Développé par NIST en collaboration avec NSA
– Génère une empreinte de taille 160 bits
– Exemple
Introduction à la Cryptographie
5aa769e719f153611c3d0dbb4bb02e23
Introduction à la cryptographie
af575f3a9216b4158bdcd2c4201d6527
97
Signature numérique
• Idée clé:
– Le Hash (résultat de la fonction de hachage) d’un message est
crypté avec la clé privée de l’émetteur.
– La clé publique est utilisée pour la vérification de la signature
• Soit:
– M: message à signer, H: fonction de hachage
– Kpr, Kpu: paire de clés privée / publique de l’émetteur.
– E / D: fonction de cryptage / Décryptage en utilisant Kpu / Kpr.
• En recevant (M, EKpr(H(M))), le récepteur vérifie si:
H(M)=DKpu(EKpr(H(M)))

98
Signature Électronique : Création

Clé privée
du signataire

Texte clair Signature


Hashage Cryptage
Électronique
Empreinte

Processus de Création de la Signature


Électronique

99
Signature Électronique : Vérification

Texte clair Hashage


Empreinte
recalculée
Clé publique
=?
de l’émetteur

Signature Décryptage
Electronique
Empreinte
reçue

1) = La signature reçue est correcte


Empreinte Empreinte
reçue recalculée

2) ≠ La signature reçue est incorrecte


Empreinte Empreinte
reçue recalculée
100
Signature numérique

• La signature permet de mettre en œuvre les


services:
– Intégrité du message
– Authentification
– Non-répudiation
– Génération d’une clé de chiffrement symétrique
pour le service de Confidentialité

101
Signature numérique

102
PKI

103
Infrastructure à clé publique (PKI)
– L'utilisation d'un crypto système à clés publiques
pose le problème de la validation de la clé
publique utilisée.
– Il convient donc de pouvoir valider avec certitude
le lien entre la clé publique et l’entité
– Cette validation est réalisée à l'aide de certificats
électroniques.
– Les certificats sont les équivalents électroniques
des cartes d'identité

104
Infrastructure à clé publique (PKI)
« Ensemble de composants, fonctions et procédures dédié à la gestion
de clés et de certificats utilisés par des services de sécurité basés sur
la cryptographie à clé publique ». [Politique de certification type:
Ministère de l'Economie, des Finances et de l'Industrie]

105
Certificat électronique
❑ Un certificat électronique (aussi appelé certificat
numérique ou certificat de clé publique) peut être vu comme
une carte d'identité numérique. Il est utilisé principalement
pour identifier et authentifier une personne physique ou
morale, mais aussi pour chiffrer des échanges.
❑ il s’agit également d’un concept très important pour tous ceux
qui sont de véritables autorités en termes de sécurité
informatique.
❑ Il est signé par un tiers de confiance qui atteste du lien entre
l'identité physique et l'entité numérique (virtuelle).
❑ Le standard le plus utilisé pour la création des certificats
numériques est le X.509.

106
Certificat électronique

107
Certificat électronique
❑ Structure de données liant différents éléments au moyen de la
signature d’une autorité de confiance
❑ Les certificats électroniques :
▪ sont émises par une autorité (Ministère,…)
▪ certifient certaines données relatives au propriétaire de la
carte (Nom, Prénom, adresse, date de naissance,…)
▪ ont une durée de validité limitée.
▪ Les taches de gestion des certificats électroniques sont
effectuées par les PKIs.

108
Certificat électronique X.509
❑ L'organisme de normalisation ISO a définissant la norme X.509,
définissant le format et le contenu d'un certificat électronique.

109
Champs certificat X.509
▪ Le N° de version désigne la version du certificat (vs. 2 ou vs. 3)
▪ Le numéro de série est attribué au certificat par l'émetteur.
▪ L'algo ID désigne l'algorithme utilisé pour la signature du certificat.
▪ Les paramètres associés indiquent p.ex la longueur de la clé utilisée,…
▪ L'émetteur est le nom de l'autorité qui a généré le certificat.
▪ Période de validité du certificat.
▪ Le propriétaire est le nom de l'entité à qui appartient ce certificat.
▪ PK est la clé publique de ce propriétaire.
▪ L'algo ID désigne l'algorithme avec lequel sera utilisée la clé PK.
▪ Les paramètres associés indiquent p.ex la longueur de la clé utilisée,…

110
Schéma de principe Certificat

111
L’autorité de certification CA
❑ Elle joue le rôle de Tierce Partie dans laquelle les deux parties doivent
avoir confiance.

112
Chaîne de certification
❑ Validations successives des signatures appliquées aux certificats des
autorités intermédiaires
❑ Confiance accordée au certificat de l'autorité racine....

113
Autorité d’enregistrement
❑ La confiance qu'on peut porter en une CA dépend de la procédure
d'enregistrement adoptée.
❑ Cette procédure est prise en charge par l'autorité d'enregistrement
(Registration Authority -RA).
❑ Procédure qui vérifie les informations qui vont être contenues et
signées dans le certificat:
• Identité du propriétaire,
• Clé publique du propriétaire,…

114
Cycle de vie des certificats X509
❑ Demande de certificats
▪ Génération des clés et d’une requête de certification PKCS10.
❑ Signature de demande de certificat par l’autorité de certification.
❑ Publication de certificat dans l’annuaire (LDAP)
❑ Révocation de certificat :
▪ suspension de l’utilisation du certificat avant l’expiration de sa date de
validité
▪ se fait par la publication du CRL du N°de série dans le CRL (certificat
revocation list).

115
Exemple certificats X509

116
Exemple certificats X509

117
Exemple certificats X509

118

Vous aimerez peut-être aussi