Académique Documents
Professionnel Documents
Culture Documents
LfSI3
Nour BRINIS
nour.brinis@ensi-uma.tn
1 / 23
K
Plan du chapitre
1. Introduction
2. Définitions
3. Cryptographie classique
2
Introduction
● Depuis la nuit des temps les hommes, surtout les militaires,
ont pratiqué l’espionnage et le contre-espionnage
3
Définitions
● Cryptographie : Ensemble des principes, méthodes et
techniques dont l’application assure le chiffrement et le
déchiffrement des données, afin d’en préserver la
confidentialité et vérifier l’intégrité des messages
échangés:
4
Définitions – protocole de chiffrement
5 / 23
K
Définitions
Chiffrement : Le chiffrement consiste à transformer une donnée
(texte, message, ...) afin de la rendre incompréhensible par une
personne autre que celui qui a créé le message et celui qui en est
le destinataire. La fonction permettant de retrouver le texte clair à
partir du texte chiffré porte le nom de déchiffrement.
7
Définitions
Un cryptosystème est un quintuplait (M,C,K,E,D)
- M l’ensemble des textes clairs possibles
- C l’ensemble des textes chiffrés
- K l’ensemble des clés
- E l’ensemble des fonctions de chiffrement
- De la forme ek,k ∈ K,t.q ek(m) ∈ C
- D l’ensemble des fonctions de déchiffrement
- De la forme dk,k ∈ K, t.q dk(ek(m)) = m
8
Qualités d’un cryptosystème
● Trois qualités recherchées :
– Confusion : Aucune propriété statistique ne peut être
déduite du message chiffré ⇒ message inintelligible
10
Exemple d’attaque célèbre
La bataille de Midway Juin 1942,
Américains vs Japonais
L’attaque :
Les américains ont envoyés un faux message en clair entre deux de
leurs postes
Ils ont attendu que les Japonais l’interceptent Et qu’ils le
retransmettent chiffré à leur état major!
Les américains ont disposé d’un couple (m,ek(m))
et ont pu en déduire k
11 / 23
K
Chiffrement symétrique
Ce chiffrement nécessite un procédé rigoureux convenu
auparavant entre les parties cryptographie à clé secrète :
Les deux acteurs s’échangent une clé secrète (mot de passe)
La sécurité du chiffrement dépend de la non divulgation
de cette clé
12 / 23
K
Cryptographie classique
Chiffrement par transposition
Chiffrements monoalphabetiques
Chiffrements polyalphabétiques
Chiffrement de Vernam
13 / 23
K
Chiffrement par transposition
Chiffrement de type anagramme
Les lettres du messages sont déplacées
Exemple:
"col" ne peut se transformer qu’en "col", "clo", "ocl", "olc",
"lco" et "loc"
Niveau de sécurité théorique;
Message de n lettres : n! chiffrés possibles
Une transposition rectangulaire consiste à écrire le message
dans une grille rectangulaire, puis à arranger les colonnes de
cette grille selon un mot de passe donné
14 / 23
K
Exemple
On a choisi comme clé GRAIN pour chiffrer le message
SALUT LES PETITS POTS. En remplissant la grille, on
constate qu’il reste deux cases vides, que l’on peut remplir
avec des nulles (ou pas, selon les désirs des correspondants).
15 / 23
K
Chiffrement par transposition
La transposition simple consiste à:
Ecrire le texte à chiffrer longitudinalement sur une bandelette
enroulée.
Le message, une fois déroulé, n'est plus compréhensible
Exemple: « comment ça marche » est cryptée en « cecaeonar mt
c m mh »).
A B C D E F G H I J K L M N O P Q R S T U V WX Y Z
WX Y Z H I R O N D E L A B C F G J K M P Q S T U V
19 / 23
K
Chiffrement monoalphabétique -
Cryptanalyse
Le point commun de ces chiffrements est qu’ils se basent sur
la substitution d’une lettre par une autre lettre.
Faiblesse: une même lettre est toujours crypté de la même
façon: EX
L’analyse fréquentielle est une méthode de cryptanalyse
qui consiste à examiner la fréquence des lettres employées
dans un message chiffré.
L’analyse fréquentielle est basée sur le fait que, dans chaque
langue, certaines lettres ou combinaisons de lettres
(bigrammes) apparaissent avec une certaine fréquence. Par
exemple, en français, le e est la lettre la plus utilisée, suivie du
20 / 23 s et du a. Inversement, le w est peu usité.
K
Chiffrement monoalphabétique -
Cryptanalyse
Lettre Fréquence Lettre Fréquence
• Attaque statistique: A 8.40 % N 7.13 %
• Dans le texte crypté, on cherche la B 1.06 % O 5.26 %
lettre que apparaît le plus C 3.03 % P 3.01 %
• Cela devrait être C(E) D 4.18 % Q 0.99 %
• La lettre qui apparaît ensuite devrait E 17.26 % R 6.55 %
F 1.12 % S 8.08 %
être C(A)
G 1.27 % T 7.07 %
• Puis C(S) …
H 0.92 % U 5.74 %
Message initiale sous forme de texte à
I 7.34 % V 1.32 %
trous (il faut deviner les lettres
J 0.31 % W 0.04 %
manquantes)
K 0.05 % X 0.45 %
L 6.01 % Y 0.30 %
M 2.96 % Z 0.12 %
21 / 23
K
Chiffrement monoalphabétique -
Cryptanalyse
Exemple de cryptanalyse:
Tentons de déchiffrer
23 / 23
K
Chiffrement polygraphique
Il s’agit ici de chiffrer un groupe de k lettres par un autre
groupe de k autres lettres (chiffrement par bloc).
Chiffrement Vigenère:
L’algorithme se base sur une clé (suite de lettres de longueur k)
et effectue une substitution en fonction de la lettre
correspondante de la clé.
Chiffrement: Additionner à chaque lettre la lettre de la clé.
Déchiffrement : retirer le code de la lettre de la clé de la lettre
du cryptogrammes
Exemple : Clé=« ac », k=2
24 / 23
K
Chiffrement polygraphique
Exemple: « paiement annulé » avec la clé cake
p a i e m e n t a n n u l e
c a k e c a k e c a k e c a
16 1 9 5 13 5 14 20 1 14 14 21 12 5
3 1 11 5 3 1 11 5 3 1 11 5 3 1
19 2 20 10 16 6 25 25 4 15 25 26 15 6
s b t j p f y Y d o y z o f
25 / 23
K
Chiffrement polygraphique- Cryptanalyse
26 / 23
K
Chiffrement polygraphique- Cryptanalyse
On trouve :
UMQI se retrouve après 30 caractères
OIGR se retrouve après 25 caractères
JIGRY se retrouve après 30 caractères
La longueur de la clé doit être un diviseur de 30 et de 25 : il est
possible qu’il s’agisse de 5
Ecrire en bloc de 5 et appliquer une analyse statistique
27 / 23
K
Chiffrement de Vernam
30 / 23
K
Algorithme DES
(Data Encryption Standard)
Boîte de substitution(S - box)
Exemple de solution matérielle pour 3 bit
K
31 / 23 Le résultat est remultiplexé sur 3 bits
Algorithme DES
(Data Encryption Standard)
1. Permutation Initiale (IP) donnant un message M’
2. M’ est divisé en 2 mots de 32 bits.L0 et R0.
3. Réaliser 16 itérations de la fonction f qui combine des
substitutions et des transpositions
4. Li=Ri-1
5. Ri=Li-1 f(Ri-1,Ki)
4. f est une fonction qui prend comme entrée les 32 bits de
la partie droite et la clé du tour. Elle est définie en
utilisant 8 permutations appelées S-boxes. La clé de tour
contient un sous-ensemble de la clé. Le cryptogramme C’
subit la transformation inverse de IP et donne le
K
32 / 23 cryptogramme final.
Algorithme DES
(Data Encryption Standard)
5. La fonction f commence par étendre les 32 bits de Ri-1 en
48 bits. Ensuite, un xor est effectué avec la clé de tour. On
divise le résultat ensuite en 8 blocs de 6 bits dénotés
B1,…,B8.
6. Chaque Bj est ensuite utilisé comme input de la fonction
de substitution S-BOX Sj,qui renvoie un bloc de 4 bits en
sortie Sj(Bj).
33 / 23
K
34 / 23
K
Algorithme DES
(Data Encryption Standard)
Avantages
Rapide Puces dédiées au DES
Facile à implémenter en hard (cartes à puce)
Inconvénients
Taille de la clé (56 bits)
Méthodes pour casser la clé :
Attaque exhaustive
Cryptanalyse linéaire
Cryptanalyse différentielle
35 / 23
K
Algorithme AES
(Advanced Encryption Standard)
Historique:
Rijndael - AES ou Rijndael, nom résultant de la contraction des
noms de ses inventeurs : Rijmen et Deamen
Principe:
l'AES est un standard, libre d'utilisation, sans restriction d'usage
ni brevet.
c'est un algorithme de type symétrique (comme le DES)
c'est un algorithme de chiffrement par blocs (comme le DES)
il supporte différentes combinaisons [longueur de clé]-[longueur
de bloc] : 128-128, 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)
36 / 23
K
Algorithme AES
(Advanced Encryption Standard)
Algorithme:
L'AES opère sur des blocs de 128 bits (plaintext P) qu'il
transforme en blocs cryptés de 128 bits (C) par une séquence de
Nr opérations ou "rounds", à partir d'une clé de 128, 192 ou
256 bits. Suivant la taille de celle-ci, le nombre de rounds
diffère : respectivement 10, 12 et 14 rounds.
38 / 23
K
Algorithme AES
Le déchiffrement
consiste à appliquer les
opérations inverses, dans
l'ordre inverse et avec
des sous-clés également
dans l'ordre inverse.
39 / 23
K
Chiffrement asymétrique –
Limites du chiffrement symétriques
Il faut pouvoir communiquer la clé secrète par un moyen sûr.
Pas très pratique
Nombre de clés à échanger pour communiquer entre n
personnes : n*(n-1)/2
40 / 23
K
Chiffrement asymétrique
La cryptographie à clé publique ou asymétrique est basée sur
un concept très différent de la cryptographie symétrique
Chaque intervenant possède une clé publique
Cette clé peut être connue de tous. Par exemple, disponible
dans un répertoire accessible publiquement, sur internet
Toute personne connaissant cette clé peut envoyer un message
chiffré au propriétaire de cette clé
Chaque intervenant possède une clé privée
Cette clé doit demeurer confidentielle
Cette clé est liée (mathématiquement) à la clé publique
correspondante
Cette clé permet de déchiffrer tout message chiffré avec la clé
41 / 23
K publique correspondante
Chiffrement asymétrique
Métaphore du cadenas
Facile à fermer
Nécessite une clé pour ouvrir
42 / 23
K
Chiffrement asymétrique
Avantages :
Si N intervenants veulent s’échanger des informations sans
l’aide d’un tiers, chaque intervenant doit avoir une clé publique
unique connue de tous
Donc, N clés sont suffisantes
Les clés publiques doivent être distribuées de façon authentifiée,
mais non confidentielle
Seule la clé publique est divulguée
Connaître la clé publique d’un intervenant ne permet pas de déchiffrer ses
messages
43 / 23
K
Chiffrement asymétrique
La cryptographie à clé publique est basée sur des problèmes
mathématiques difficiles à résoudre
Factorisation - problème RSA
Logarithme discret - problème Diffie Hellman
De ces problèmes, on extrait des fonction à sens unique à
brèche secrète
Calculer f (x) est facile (f =clé publique, x=message)
Calculer f−1(x) est difficile
Calculer f−1(x) sachant k est facile (k=clé privée, k est la
brèche)
44 / 23
K
Cryptosystème RSA
Chiffrement à clé publique le plus utilisé
Créé en 1977 par Rivest, Shamir et Adleman
Breveté par le MIT en 1983 aux états-Unis.
Utilisé dans :
Les banques
Les cartes à puce
Les site webs commerciaux
45 / 23
K
Chiffrement RSA
Problème difficile: factoriser un entier produit de deux
nombres premiers distincts
Clé publiques et clé sécrète: calculées à l’aide de l’algorithme
d’Euclide et des coefficients de Bézout
Environnement: calculs modulo un entier
Déchiffrement: possible grâce au théorème de Fermat
Application:
MrY choisit par exemple e=5 et on a bien
pgcd(e,φ(n))=pgcd(5, 64)=1,
MrY applique l’algorithme d’Euclide étendu pour calculer les
coefficients de Bézout correspondant à pgcd(e,φ(n))=1. On
trouve 5×13+64×(−1)=1. Donc 5×13≡1(mod 64) et
48 / 23
K l’inverse de e modulo φ(n) est d=13.
Chiffrement RSA
1.3 Clé publique
La clé publique de MrY est constituée des deux nombres :
n et e
50 / 23
K
Chiffrement RSA
2.2 Message chiffré
MrX récupère la clé publique de MrY :n et e avec laquelle il
calcule, à l’aide de l’algorithme d’exponentiation rapide, le
message chiffré :
x≡me(mod n)
MrX MrY
Exercice
p=7;q=17 e=13
Chiffrer le message 10 11 12 13
Vérifier le déchiffrement
53 / 23
K
p=7;n=77 e=13
Chiffrer le message 10 11 12 13
Vérifier le déchiffrement
Q=11
phi-(n)=6*10=60
⇒ 13*d=1 mod 60
Trouve d?
d=-23, 37, d*e=1modp
u*13 +v 60= 1 (-23*13+5*60=1)
+ 10^13 mod 77=10;
K
54 / 23 10^d mod 77
55 / 23
K
Lemme de déchiffrement
Le principe de déchiffrement repose sur le théorème de
Fermat amélioré.
56 / 23
K
Cryptosystème Diffie Hellman
Pas un protocole de chiffrement,
mais un protocole d’échange de clé Basé sur le problème
Logarithme Discret
57 / 23
K
Cryptosystème Diffie Hellman
Le problème Diffie Hellman :
Entrées :
Un entier premier p
Un générateur g de Zp*
Deux entiers gk1 mod p et gk2 mod p
Sortie : l’entier gk1*k2 mod p
58 / 23
K
Cryptosystème Diffie Hellman
1. Soit p un grand nombre premier et g un générateur de Zp*
2. A et B se mettent d’accord sur p et g
3. A choisit un entier k1 et calcule gk1 mod p
4. A envoie gk1 mod p à B
5. B choisit un entier k2 et calcule gk2 mod p
6. B envoie gk2 mod p à A
7. A calcule (gk2 mod p)k1 mod p = gk1*k2 mod p
8. B calcule (gk1 mod p)k2 mod p = gk1*k2 mod p
9. La clé échangée est :
a = gk1*k2 mod p
59 / 23
K
Cryptosystème Diffie Hellman
g=4 6= 4k1mod10 k1?
p=10
4= 6k2mod10 k2?
x=4
y=6
y
MrX x MrY
A et B partagent p= 233 et g= 45
si A choisit k1= 11 et B choisit k2= 20
Quelle est leur clé secrète commune?
62 / 23
K
Chiffrement d’El Gamal
Etape1: Génération des clés:
MrY fait les opérations suivantes:
Choix d’un nombre premier p.
Ensuite, choix de deux entiers a et g tels que
0≤a≤p−2 et 0≤g≤p−1
On pose alors n≡ga mod p
La clé publique sera le triplet (p,g,n) (partagé)
et la clé secrète sera l'entier a (gardé chez MrY).
Application:
Soit p=661. MrY choisit a=7 et g=23.
On a : n≡ga mod p ≡237 mod 661≡566 mod 661
63 / 23
la clé publique est donc le triplet (661,23,566)
K
la clé secrète l'entier 7.
Chiffrement d’El Gamal
Etape2: Chiffrement du message
On convertit de la même façon que RSA le message à chiffrer
en une suite de chiffres, telle que la valeur numérique de
chaque bloc doit être inférieure à p.
Soit (p,g,n)une clé publique.
On commence par choisir un entier k aléatoirement tel que
0≤k≤p−1.
Un bloc de chiffres m du message d'origine tel que m<p sera
alors chiffré par un couple de blocs de chiffres (u,v):
u≡gk mod p,
v≡m*nk mod p
64 / 23
K
Chiffrement d’El Gamal
Le message chiffré sera donc une suite de couples de blocs de
chiffres. On perçoit ici l'un des défauts de cet algorithme, le
message chiffré est deux fois plus long que le message d'origine.
Application :
On reprend la clé publique (p,g,n)=(661,23,566).
Cherchons à chiffrer le message 192.
On choisit aléatoirement l'entier k=13
65 / 23
K
Chiffrement d’El Gamal
Etape 3 : Déchiffrement:
Soit (p,g,n) une clé publique et a la clé secrète
correspondante.
Un couple de blocs de chiffres (u,v) du message chiffré
correspondra au bloc de chiffres m du message d'origine:
m≡u−a*v mod p= up-1-a*v mod p
Application:
(p,g,n)=(661,23,566) et a=7.
Déchiffrons donc le message (105,237)
x≡ 105−7×237 mod 661 =105661−1−7×237 mod 661≡192 mod
661=m. Ce qui correspond bien au message d’origine
66 / 23
K
Soit p= 541,g= 2,a= 113et k= 101. Crypter x= 200 en
utilisant El Gamal.
Sol: (68,534)
67 / 23
K
Chiffrement d’El Gamal
Exercice :
On veut transmettre le message m=1299.
Les paramètres publics sont p=2579, g=2,n=949
on choisit k=853
Chiffrer y1=435, y2=2396
Trouver le message clair.
68 / 23
K