Académique Documents
Professionnel Documents
Culture Documents
Cryptographie
Pr. A. AZOUAOUI
2017-2018
Introduction
Canal non sécurisé
Alice Bob
OSCAR
– L’authentification
– L’intégrité
– La non répudiation
11:08 3
Les buts de la cryptographie
La confidentialité
– Il s’agit de garantir le secret de
l’information transmise ou archivée.
– Seuls les utilisateurs autorisés doivent y
avoir accès.
11:08 4
Les buts de la cryptographie
L’authentification:
– L’émetteur est sûr de l’identité du destinataire
c’est à dire que seul le destinataire pourra prendre
connaissance du message car il est le seul à
disposer de la clef de déchiffrement.
11:08 5
Les buts de la cryptographie
L’intégrité
– Il s’agit de préserver les informations contre
les modifications.
– "L’intégrité est la prévention d’une modification
non autorisée de l’information"
– Avec les techniques actuelles, cette fonction
est réalisée par la signature numérique.
11:08 6
Les buts de la cryptographie
La non répudiation
11:08 7
Terminologie
• La cryptologie est la science du secret. Elle se
divise en deux disciplines :
– La cryptographie qui est l’étude des algorithmes
permettant de protéger de l’information. Ces
algorithmes sont appelés cryptosystèmes ;
11:08 8
Terminologie
• Chiffrer : Action de rendre un message en clair M
(plaintext) en un message illisible C appelé
(ciphertext) cryptogramme ou message chiffré.
11:08 10
Terminologie
• Il existe 2 types de chiffrement:
– Le chiffrement symétrique (ou chiffrement à clé
privée) consiste à utiliser la même clé pour le
chiffrement et le déchiffrement.
11:08 11
Terminologie
– Le chiffrement asymétrique (ou chiffrement à clés
publiques) consiste à utiliser une clé publique
pour le chiffrement et une clé privée pour le
déchiffrement.
11:08 12
Cryptographie classique
Quelques cryptosystèmes classiques
11:08 14
Chiffrement par substitution
Définition:
• Le chiffrement par substitution consiste à
remplacer dans un message une ou plusieurs
entités (généralement des lettres) par une ou
plusieurs autres entités.
Chiffre de César:
• Substituer chaque lettre du message en clair par
une autre située à distance fixe dans l’alphabet.
Cette distance devait être connue de l’expéditeur
comme du destinataire.
• décalage de trois lettres :
11:08 16
Chiffrement par substitution
Chiffrement de César:
• Principe :
– Soit p (c, respec.) l’indice de la lettre du message en
clair(chiffré,respec.) et k le décalage (la clé: k=3):
11:08 17
Chiffrement par substitution
Chiffrement de César:
• Exercice :
– Chiffrez le message « bonjour tout le monde » en
utilisant le cryptosystème de César(k=3).
– Déchiffrez le message : «FKLII UHGHF HVDU »
– Le déchiffrement du message chiffré suivant:
HMNKK WJIJH JXFW est CHIFFRE DE CESAR
– Donnez la clef de chiffrement ?
11:08 18
• Solution :
– Chiffrez le message « bonjour tout le monde » en
utilisant le cryptosystème de César(k=3).
– ERQMR XUWRX WOHPR QGH
– Déchiffrez le message : «FKLII UHGHF HVDU »
– chiffredeCesar
– Le déchiffrement du message chiffré suivant:
HMNKK WJIJH JXFW est CHIFFRE DE CESAR
– Donnez la clef de chiffrement (k=5)
11:08 19
Chiffrement par substitution
• L’espace de clés est:|K|=26.
• Analyse fréquentielle:
Le principe de cette cryptanalyse consiste à deviner les
lettres d’un texte clair sur la base de leur fréquence
d’apparition
11:08 20
Chiffrement par substitution
Analyse fréquentielle:
• Fréquences d'apparition des lettres(français)
11:08 22
Chiffrement par substitution
• Solution
• On peut donc assez vite constater que la lettre la plus présente ici est le 'G',
avec neuf occurrences.
Supposons donc que le 'G' chiffre le 'E'. Sachant que le chiffre de César est utilisé,
on peut supposer que la clé soit :
G-E=6-4=2
• On fait donc un test, en déchiffrant à l'aide du chiffre de César avec une clé de
2.
NG UKVG FW BGTQ GUV IGPKCNNCWVGWT FG EG VWVQTKGN CWUUK
LE SITE DU ZERO EST GENIAL L AUTEUR DE CE TUTORIEL AUSSI
La phrase décryptée est donc : « LE SITE DU ZÉRO EST GÉNIAL, L'AUTEUR DE CE
TUTORIEL AUSSI », ce qui a un sens.
• EQWEQWEGUCTQPCNWVQPRGVKVOQV
11:08 23
Chiffrement par substitution
Analyse fréquentielle(di/tri-grammes):
11:08 24
Chiffrement par substitution
Le chiffrement affine:
• L'idée est d'utiliser comme fonction de chiffrement
une fonction affine du type y=(k1.x+k2) mod 26, où
k1 et k2 sont des constantes, et où x et y sont des
nombres correspondant aux lettres de l'alphabet
(A=0,B=1,…,Z=25).
11:08 27
Chiffrement par substitution
11:08 28
Chiffrement par substitution
Cryptanalyse: chiffre affine
Solution:
11:08 29
Substitution par permutation
• |K|=26!
• Soit п une permutation:
– Soit x c P, ek(x)=п(x)=y, dk(y)=п-1(y)=x
• Exemple:
11:08 31
Chiffrement par substitution
11:08 32
Chiffrement par substitution
• Exercice : Chiffrement de Vigenère
1- Chiffrer le texte "CRYPTOGRAPHIE DE VIGENERE" avec la clé
"MATHWEB"
2- Déchiffrer le texte "DHKMJCMHVWIILRPZI" avec la clé
"BACHELIER"
• Solution :
1- ORRWPSHDAIOEI EQ VBNARFDE
2- CHIFFRE DE VIGENERE
11:08 33
Chiffrement par substitution
Carré de Vigenère
11:08 34
Chiffrement par substitution
• Exemple Chiffrement de Vigenère
Clef : MACLEFMACL
Chiffré : YOPXIXEAIP
Clair : MONMESSAGE
11:08 35
Chiffrement par substitution
Chiffre de Vernam ( One-Time Pad)
• „Masque jetable = chiffre de Vigenère avec comme
caractéristique que la clef de chiffrement a la même longueur
que le message en clair.
• Exemple :
Clair : ZERO
Clef : JRVG
Chiffré :
Z + J = 25 + 9 = 34 - 26 = 8 = I
E + R = 4 + 17 = 21 = V
R + V = 17 + 21 = 38 - 26 = 12 = M
O + G = 14 + 6 = 20 = U
11:08 36
Chiffrement par substitution
11:08 37
Chiffrement par substitution
• Chiffre de Vernam ( One-Time Pad)
• Solution
11:08 38
Chiffrement par substitution
Chiffre polygrammique: Le chiffre Playfair
• On dispose les 25 lettres de l'alphabet (W
exclu car inutile) dans une grille 5x5, ce qui
donne la clef.
11:08 39
Chiffrement par substitution
Chiffre polygrammique : Méthode de chiffrement
• On chiffre le texte par groupes de deux lettres (des
bigrammes) en appliquant les règles suivantes:
1. Si les deux lettres sont sur les coins d'un rectangle, alors
les lettres chiffrées sont sur les deux autres coins. La
première des deux lettres chiffrées est sur la même ligne
que la première lettre claire.
11:08 40
Chiffrement par substitution
2. Si deux lettres sont sur la même ligne, on prend
les deux lettres qui les suivent immédiatement à leur
droite.
11:08 41
Chiffrement par substitution
3. Si deux lettres sont sur la même colonne, on
prend les deux lettres qui les suivent
immédiatement en dessous.
11:08 42
Chiffrement par substitution
AABCD devient AX AB CD
11:08 43
Chiffrement par substitution
Chiffre polygrammique:
Exemple:
• Solution :
CHIFFREMENT DE PLAYFAIR
11:08 45
Chiffrement par transposition
Définition:
• Les méthodes de chiffrement par transposition
consistent à réarranger les données à chiffrer de telle
façon à les rendre incompréhensibles. Il s'agit
généralement de réarranger géométriquement les
données pour les rendre visuellement inexploitables.
Transposition simple par colonnes :
– On écrit le message horizontalement dans une matrice
prédéfinie, et on trouve le texte à chiffrer en lisant la grille
verticalement.
– Le destinataire légal pour déchiffrer le message réalise le
procédé inverse.
11:08 46
Chiffrement par transposition
Transposition simple par colonnes :
• Exemple:
Texte à chiffrer= «faculte polydisciplinaire de beni mellal» en utilisant une matrice 6x6.
f a c u l t
e p o l y d
i s c i p l
i n a i r e
d e b e n i
m e l l a l
11:08 47
Chiffrement par transposition
• Exercice
Déchiffrer les suivant en utilisant la matrice 5x4 :
IEPRYLCTAOROPVYGH
• Solution
I LOVE CRYPTOGRAPHY
11:08 48
Chiffrement par transposition
– OPTSRVIDEDEATERRNEBUONUSZAE
11:08 50
Chiffrement par transposition
Transposition complexe par colonnes :
• Exercice:
1- Chiffrer "Je suis en Italie avec Maria " par la clé BIBMATH
2- Déchiffrer "BUNNA EDRME RDEQE NMIAE TON " avec la clé
CHAT
3- Déchiffrer " VTGUR SDEAEM SCRRS UCEOEE ZPAEYS " avec la
clé DELIVRANCE
11:08 51
Chiffrement par transposition
• Solution :
1- ILMJN AISTE EEREI VAUAC SIA
2- DEBARQUEMENT EN NORMANDIE
3- SAUREZ VOUS DECRYPTER DE MESSAGE
11:08 52
Cryptographie
asymétrique
Plan
• Introduction
• Algorithme RSA
• Algorithme Merkle-Hellman
• Algorithme El Gamal
Introduction
• Clef publique K1
• Clef privée K2
• Fonction de chiffrement: EK1(M) utilise une clé K1
• Fonction de déchiffrement: DK2(C) utilise une clé K2
• DK2(EK1(M)) = M
Comment cela fonctionne?
• Les clés :
• P=5 , q=7
p 5, q 7, n 35, Φ(n) ( p 1)(q 1) 24
e 5, p gcd(5, 24) 1, d e1 5,5*5 25 1(mod 24)
• Chiffrement/déchiffrement :
• E(3)
E (3) 3 243 33(mod 35)
5
27 3 * 7 6 alors 27 6(mod 7)
9 11 20 6(mod 7) et
9(mod 7) 11(mod 7) 2 4 6(mod 7)
Rappel : Arithmétique modulaire
x
8
x
2
2 2
donc pour calculer x (2k )
(mod n)
• Exemple
21 10101 24 + 22 +20 et
52 8(mod 17) 54 13(mod 17)
58 16(mod 17) 516 1(mod 17)
521 (mod17) 5165451 (mod17) 1 13*5 14(mod17)
Exponentiation modulaire
71
Calcul du PGCD
• Algorithme Euclide (récursif) : calcule le pgcd de
deux nombres a et b.
euclide(a, b) ab
(a, b) (b, a mod b)
si b 0 alors répondre a
• Exemples
(42,30) et (105,45)
euclide(42,30) 6
euclide(105, 45) 15
(42,30)
(30,12) (105, 45)
(12, 6) (45,15)
(6, 0) (15, 0)
Inverse multiplicatif
• Exemples
•
51 8 mod13
7 1 19 mod 22
(13, 5,1, 0)
(22, 7,1, 0)
(5, 3, 0 1* (2) mod13,1) (5, 3,11,1)
(7,1, 0 1*(3) mod 22,1) (7,1,19,1)
(3, 2,1 11* (1) mod13,11) (3, 2, 3,11)
7 *19 133 6* 22 1 1mod 22
(2,1,11 3* (1) mod13, 3) (2,1,8, 3)
5*8 40 1mod13
Avec un ordinateur, on calcule le PGCD et l’inverse multiplicatif de
très grands nombres efficacement.
Trouver les clefs du RSA
Euclide(a,b)
si b=0 alors retourner a
sinon retourner Euclide(b,a mod b)
11:08 76
Solution
• 1. Pour le professeur: (55) = 40 et 27 x 3 = 81
= 1 mod 40.
Pour le secrétariat: (33) = 20 et 7 x 3 = 21 = 1
mod 20.
• 2. Le professeur envoit m = 123 mod 33. Or
122 = 12[33]; donc m = 12 mod 33
11:08 77
Exercice 2
• Problème de décision :
Soient un ensemble de paquets de poids
donnés et un sac de poids P. Existe-t-il
un sous-ensemble de paquets de poids
total P ?
Problèmes du sac à dos
Problème de cryptanalyse :
• Comment déterminer les paquets qui ont été mis dans
le sac, sans avoir le droit de l’ouvrir et en ne
connaissant que les poids des paquets disponibles et le
poids total du sac ?
Chiffre Knapsack
• Le problème Knapsack :
– Difficile (NP-complet)
• Le problème knapsack avec une liste super-croissante
(LSC) :
– Simple
• L’idée de Merkle et Hellman
– Choisir un problème knapsack avec une LSC
– Le Transformer en un problème knapsack
– Le problème knapsack est la clef publique,
alors que le problème knapsack avec une LSC
est la clef privée.
Algorithme NP-complet
f
Clair Liste « quelconque » Chiffré
= {PAQUETS} = SAC
= (0,1,0,1,…)
-1
Algorithme linéaire
Le problème du Knapsack
Pour s=69 X=
X=(0,1,1,0,1)
Chiffre de Merkle-Hellman
• Choisir une liste super-croissante d’entiers naturels
A= (a1,a2,..,ai,…,an)
• Choisir un entier u > 2.an et un nombre p relativement
premier avec le nombre u.
• Clef publique B et u;
• Clef privée A, p, p-1 (mod u).
• M = (mi) : Message clair binaire à n bits.
• B = (bi) : Liste quelconque à n entiers.
• f : M C= mi bi ( c’est le chiffrement)
• Déchiffrement :
– : x p.x (mod u )
– -1 : x p-1.x (mod u )
– B= p.A= (A) A= p-1.B= -1(B)
C=
128+14+53 = 195=64 mod 131
C’=
M=
Exemple 1 suite
f
01101 (111,128 14, 8 53) 64
-1
Déchiffrement de C’=69 :
11:08 93
Algorithme ElGamal
• Algorithme asymétrique basé sur les logarithmes
discrets.
11:08 104
Exercice 2
a) En prenant p = 13 et g = 2, faites les calculs et vérifications suivantes :
• g est un élément générateur de Z/pZ
• Quelle est la clé publique de Bob si sa clé privée est a = 9 ?
• Comment Alice code t’elle le message M=10 si elle choisit une clé
temporaire k = 6 ?
• Comment Bob décode t’il le message ? Est-ce que ça a marché ?
b) Supposons qu’Alice utilise tout le temps la même clé k pour coder ses
messages. Un observateur malveillant Eve peut alors obtenir des
informations précieuses.
Si Alice code M1 et M2 avec k et Eve parvient à écouter les
communications, elle pourra connaître la valeur de M1/M2. Comment ?
11:08 105
11:08 106
Signature : idée générale
11:08 107
Les différents acteurs
11:08 108
Fonctionnement d’une signature
11:08 109
Mécanisme cryptographique
11:08 110
Signature RSA(1/3)
Génération des paramètres : identique à la génération
des clefs de RSA
• Alice choisit au hasard deux nombres premiers p et q.
– Alice calcule n = p.q
– Indicatrice d'Euler : Φ(n) =(p -1)(q-1)
• Alice choisit au hasard un entier e (premier) tel que
1 < e < Φ(n) et pgcd(e, Φ (n)) = 1
• Alice calcule alors l'entier d tel que e.d = 1 mod Φ(n).
Clef publique : (n, e)
Clef secrète : (n, d)
11:08 111
Signature RSA(2/3)
Génération d'une signature RSA
Alice souhaite signer un document M
– Signature de M : s(M) = Md mod n
– Le document signé est alors [M, s(M)].
11:09 112
Signature RSA(3/3)
Vérification d'une signature RSA
• Bob reçoit un document signé [M’ , s(M)] d'Alice.
Ce document est potentiellement altéré
• Il récupère la clé publique d'Alice (n,e)
• Il vérifie l'identité : s(M)e = M’ mod n
En effet : s(M)e= Me.d mod n = M mod n = M
et si le document est authentique : M= M’ .
• La sécurité est donc celle du cryptosystème RSA.
11:09 113
Signature RSA
Exemple :
Alice Bob
1. choisit p = 5 et q =7
2. n = p · q = 35
3. Φ(n)=(5−1)(7−1)= 24
4. choisit e = 5
5. d ≡ e−1 ≡ 5 mod 20
(n,e)=(35,5)
← −−−−−−−−−−− −
11:09 114
Signature RSA
Example (suite):
Alice Bob
calcule la signature du message
x = 26:
s = xd ≡ 265 ≡ 31 mod 35
(x,s)=
(26,31)
← −−−−−−−−−−− −
Vérification:
x’= se ≡ 315 ≡ 26 mod 35
x’≡ x mod 35 ⇒ signature valide
11:09 115
Exercice
Bob a une clé privée RSA pour signer des messages :
(d = 7, p = 11, q = 3).
1. Pour authentifier ses messages, il doit publié sa clé
de vérification. Choisissez une clé publique valide
pour Bob ?
2. Bob veut envoyer le message signé m = 4 à Alice.
Pourriez-vous aider Bob à calculer la signature pour
ce message ?
3. Alice reçoit la signature s = 24. Donnez la valeur
d'un message provenant de Bob pour lequel
la signature s est valide.
11:09 116
Signature El Gamal(1/3)
Générations des clef
1. Choix d’un nombre premier p.
2. Générateur g du groupe multiplicatif ZP∗.
3. Choix d’un entier a ∈{2,3,..., p−2}.
4. On calcul A = ga mod p .
11:09 117
Signature El Gamal(2/3)
Génération de la signature
Sigkpr (M, kE)=(r, s), where M is the message.
1. Choisir k< p-1 aléatoire et premier avec p -1
2. Calculer :
r ≡ gkE mod p,
s ≡ (M−a·r)k −1 mod p−1.
E
11:09 118
Signature El Gamal(3/3)
Vérification de la signature
La signature est vérifée comme verKpub(M, (r, s))
en utilisant la clé publique, la signature et le
message
1. Calculer la valeur
t ≡ Ar·rs mod p
2. Tester
≡ gM mod p ⇒ signature valide
t
!≡ gM mod p ⇒ signature non valide
11:09 119
Signature El Gamal
Exemple :
Alice Bob
1. choisit p = 29
2. choisit g = 2
3. choisit a = 12
4. A = ga ≡ 7 mod29
(p,g,A)=(29,2,7)
← −−−−−−−−−−− −
11:09 120
Signature El Gamal
Exemple :
Alice Bob
calcule la signature pour le
message
M = 26:
Choisit kE = 5
r = gkE ≡ 25 ≡ 3 mod 29
s =(M − a.r) kE−1 ≡(−10)·17 ≡
26 mod 28
(M,(r,s))=(26,(3,26))
← −−−−−−−−−−− −
11:09 121
Signature El Gamal
Exemple :
Alice Bob
Vérifier:
t = Ar·rs
≡ 73 · 326 ≡ 22 mod 29
aM ≡ 226 ≡ 22 mod 29
t ≡gm mod 29 =⇒ signature valide
11:09 122
Exercice
On considère les paramètres suivants pour la
signature ElGamal : (p = 23; g = 5; a = 3).
1. Justifiez la validité du choix de p et g.
2. Calculez la clé publique A.
3. Calculez la signature du message M = 7 en
utilisant la valeur aléatoire k = 9
4. Montrez que la vérification fonctionne pour la
signature obtenue.
11:09 123
Modes de chiffrement symétrique
Les modes sont des méthodes pour utiliser les
chiffrements par blocs. On parle de modes
opératoires.
Dans le cadre d’une implémentation pratique,
l’algorithme ’pur’ est combiné à une série
d’opérations simples en vue d’améliorer la
sécurité sans pour autant pénaliser l’efficacité
de l’algorithme. Cette combinaison est appelée
un mode cryptographique.
11:09 124
Modes opératoires: ECB
Mode ECB( electronic code book)
• Le message, M, est découpé en blocs , (mi)i≥0, et
chaque bloc est chiffré séparément par
ci = Ek(mi)
• On transmet c0 c1 c2 . . . cn.
11:09 125
Modes opératoires: ECB
• Déchiffrement:
mi=Dk(ci)
c0 = Ek(m0 ⊕ IV)
c1 = Ek(m1 ⊕ c0)
.
.
ci = Ek(mi ⊕ ci−1)
11:09 128
Modes opératoires: CBC
Mode CBC (Cipher Bloc Chaining)
• On transmet le message IV c0 c1 . . . cn.
11:09 129
Modes opératoires: CBC
• Déchiffrement
m0 = IV⊕ Dk (c0)
mi = ci−1 ⊕ Dk (ci)
11:09 130
Modes opératoires: CBC
Exercice
Soit le message clair m = 1011000101001010. On
considère le chiffrement par blocs (de longueur4)
définit par la permutation.
π: b1b2b3b4 b2b3b4b1
Chiffrer m avec le mode CBC (iv=1010)
Solution
Chiffrement de m avec le mode CBC (iv=1010):
M0+IV=1011+1010=0001 C0=Π(M0+IV)=0010,
m1+c0=0001+0010=0011 c1= Π(m1+c0)=0110
m2+c1=0100+0110=0010 c2= Π(m2+c1)=0100
m3+c2=1010+0100=1110 c3= Π(m3+c2)=1101
C=1010 0010 0110 0100 1101
11:09 131
Modes opératoires: CFB
11:09 136
Modes opératoires: OFB
Déchiffrement:
• Ce mode est utilise par exemple pour les
chiffrages satellites et se déchiffre par:
z0 = Ek(IV);
zi = Ek(zi−1);
mi = ci ⊕ zi
11:09 138