Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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
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).
❑ 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.
❑ 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.
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.
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
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 :
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.
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.
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 Débit
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.
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 :
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)
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
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
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.
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
62
Cryptage symétrique :3-DES
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é
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
88
ElGamel
89
L'algorithme ElGamal
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)
92
L'algorithme ElGamal
• Alice choisit: p=23, g=7 et a=6,
et chiffre m= 7
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
Internet
Hashage =? Hashage
Empreinte 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
99
Signature Électronique : Vérification
Signature Décryptage
Electronique
Empreinte
reçue
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