Vous êtes sur la page 1sur 67

Module: Sécurité Informatique

Chapitre II: Cryptographie

LfSI3

Nour BRINIS
nour.brinis@ensi-uma.tn

1 / 23
K
Plan du chapitre
1. Introduction

2. Définitions

3. Cryptographie classique

4. Chiffrement par blocs: DES, AES

2
Introduction
● Depuis la nuit des temps les hommes, surtout les militaires,
ont pratiqué l’espionnage et le contre-espionnage

● Le chiffrement des messages est donc né presque en même


temps que l’écriture

● La cryptologie est la science des messages secrets et des


codes chiffrés utilisée traditionnellement par les militaires et
les gouvernements: Il s’agit d’une science mathématique
comportant deux branches : la cryptographie et la
cryptanalyse.

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:

 Outil important de la politique de sécurité

● Cryptanalyse: Ensemble des méthodes et procédés de


décryptage visant à rétablir en clair un cryptogramme,
sans connaissance préalable de la clé de chiffrement

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.

 Texte chiffré : Appelé également cryptogramme, le texte chiffré


est le résultat de l’application d’un chiffrement à un texte clair.

 Clef : Il s’agit du paramètre impliqué et autorisant des opérations


de chiffrement et/ou déchiffrement. Dans le cas d’un algorithme
symétrique, la clef est identique lors des deux opérations. Dans le
/ 23 d’algorithmes asymétriques, elle diffère pour les deux
6cas
K
opérations.
Définitions
● Cryptosystème : Il est défini comme l’ensemble des clés
possibles (espace de clés), des textes clairs et chiffrés
possibles associés à un algorithme donné

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

– Diffusion : Toute modification du message en clair se


traduit par une modification complète du chiffré

– Robustesse de la clé : Difficile de déterminer k (difficile


également d’énumérer tous les k)
Le système de chiffrement moderne ne doit pas dépendre du
secret de l’algorithme mais seulement du secret de la
clé.(Kerchoff 1883)
9
Cryptanalyse
● Afin de briser un code secret et obtenir ainsi les textes
en clair, l’attaquant à diverses possibilités :
– Attaques passives : par écoute électronique, l’attaquant
obtient une copie de tous les textes chiffrés échangés
entre les intervenants

– Attaques actives : l’attaquant joue un rôle actif lors du


protocole et peut altérer ou détruire des messages

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 »).

 Il suffit au destinataire d'avoir un cylindre de même diamètre


pour pouvoir déchiffrer le message. En réalité un casseur peut
déchiffrer le message en essayant des cylindres de diamètre
successifs différents, ce qui revient à dire que la méthode peut
K
16 / 23 être cassée statistiquement
Chiffrement monoalphabétique
 C’est une application bijective des lettres de l’alphabet vers
les lettres de l’alphabet. Appelée aussi permutation.
 Niveau de sécurité théorique: Alphabet à 26 lettres : 26!
alphabets possibles
 Chiffrement de César :
 défini en décalant l’alphabet de trois lettres.
 Par exemple, le mot « message » est crypté « PHVVDJH ».
 On peut généraliser le chiffrement de César en changeant la
valeur de 3 par une valeur entière entre 1 et 26.
 L’ensemble de cette famille d’algorithmes est appelée chiffrement
additif
17 / 23
K
Chiffrement monoalphabétique
 Chiffrement multiplicatif :
 Au lieu d’ajouter une valeur au code clair, on le multiplie par
une valeur et on calcule le modulo 26. x→t.x mod 26
 Les valeurs de t acceptables doivent vérifier que pgcd (t,26)=1
sinon la décomposition n’est pas unique!
 Le déchiffrement se fait par la division euclidienne. Trouver u tel
que ut=1 mod 26.
 Le clair=c.u mod 26
 Chiffrement affine:
 Réalise une combinaison entre le chiffrement additif et
multiplicatif.
 x→ (x.t + s ) (mod 26)
18 / 23
K  La clé de chiffrement est la paire (t,s)
Chiffrement monoalphabétique
 Chiffrement par mot clé:
 On choisit un mot clé et une position de départ.
 Le mot clé ne doit pas contenir de lettres qui se répètent
 L’alphabet est substitué par la clé à la position de départ puis le
reste de l’alphabet
 Exemple : mot clé hirondelle à la position 5

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: EX
 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

 Faiblesse: deux lettres x qui sont situées à la même position


dans deux blocs différents sont cryptées par la même lettre!!
M A |M I (clé = AC)  ND|NL

 La cryptanalyse de l’algorithme de Vigenère se base sur:


1. la recherche de séquences qui se répètent pour déterminer la
longueur de la clé.
2. Application de l’analyse statistique pour déterminer le texte
clair.

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

 C’est un système de chiffrement utilisant une clé de même taille


que le message clair. La clé est utilisée une seule fois puis jetée
(masque jetable!). La clé est une séquence binaire aléatoire
qu’on fait en ou exclusif avec le message clair:
C=MK
( : xor, K: clé secrète, M: message clair, C: message crypté)

 L’algorithme est formellement sûr, Cryptanalyse possible


uniquement si Mot-clé trivial
 Mais très difficile de mettre en pratique surtout pour la
gestion de clés longues, parfaitement aléatoires stockées en
un lieu sûr et échangées entre les intervenants.
28 / 23
K
Algorithme DES
(Data Encryption Standard)
 Historique :
 Milieu des années 70
 Premier algorithme de chiffrement pour l’industrie, utilisé pour
le chiffrement des mots de passe sous UNIX
 Principe :
 Entrées : Un message de 64 bits et une clé de 56 bits
 Sorties : Un cryptogramme de 64 bits
 Principe:
 DES produit de transpositions et substitutions nombreuses et
compliquées pour une clé relativement courte.
 Les chiffres à substitution et à transposition sont faciles à
29 / 23
réaliser en matériel.
K
Algorithme DES
(Data Encryption Standard)
 Boîte de transposition(P - box "Permutation box"):
 Exemple pour 8 bits:

 Facile à réaliser par simple câblage

30 / 23
K
Algorithme DES
(Data Encryption Standard)
 Boîte de substitution(S - box)
 Exemple de solution matérielle pour 3 bit

 Trois bits sélectionnent un fil en sortie-


 L'ensemble subit une transposition.

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.

Le schéma suivant décrit succinctement le déroulement du


chiffrement :
 BYTE_SUB (Byte Substitution) est une fonction non-linéaire
opérant indépendamment sur chaque bloc à partir d'un table
dite de substitution.
37 / 23
K
Algorithme AES
(Advanced Encryption Standard)
 SHIFT_ROW est une fonction opérant des décalages
(typiquement elle prend l'entrée en 4 morceaux de 4 octets et
opère des décalages vers la gauche de 0, 1, 2 et 3 octets pour les
morceaux 1, 2, 3 et 4 respectivement).
 MIX_COL est une fonction qui transforme chaque octet
d'entrée en une combinaison linéaire d'octets d'entrée et qui
peut être exprimée mathématiquement par un produit marticiel
sur le corps de Galois (28).
 le  désigne l'opération de OU exclusif (XOR).
 Ki est la ième sous-clé calculée par un algorithme à partir de la
clé principale K.

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

 MrX veut envoyer un message à MrY


 MrY prépare une clé publique et une clé privée
 MrX utilise la clé publique de MrY pour crypter son message.
 MrY reçoit le message crypté et le déchiffre grâce à sa clé
46 / 23
K privée.
Chiffrement RSA
Etape1: préparation des clés
1.1 Choix de deux nombres premiers
 MrY effectue les opérations suivantes
 Choix de nombres premiers distincts p et q (dans la pratique ce
sont de très grand nombres)
 Calcul de n=p*q
 Calcul de φ (n)=(p-1)*(q-1)
 Application:
 p=5 et q=17
 n=p*q=85
 φ(n)=(p-1)*(q-1)=φ (n)=64
47 / 23
K
Chiffrement RSA
 1.2 choix d’un exposant et calcul de son inverse:
 MrY choisit un exposant e tel que pgcd(e,φ(n))=1,
 MrY calcule l’inverse d de e modulo φ(n):d×e≡1(modφ(n)).
Ce calcul se fait par l’algorithme d’Euclide étendu.

 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

Application: n=85 et e=5

1.4 Clé privée:


MrY garde pour lui sa clé privée
d
Application : d=13
49 / 23
K
Chiffrement RSA
 Etape2: Chiffrement du message
 MrX veut envoyer un message secret à MrY. Il se débrouille
pour que son message soit un entier (quitte à découper son
texte en bloc et à transformer chaque bloc en un entier).
 2.1 Message
 Le message est un entier m, tel que 0≤m<n.

 Application: MrX veut envoyer le message m=10.

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)

 Il transmet ce message x à MrY


 Application: m=10,n=85 et e=5
102≡100≡15(mod 85)
x≡me(mod n)≡105(mod 85) 104≡(102)2≡152≡225≡55(mo
d 85)
x≡105≡104×10≡55×10≡550
Le message chiffré est donc x=40
51 / 23 ≡40(mod 85)
K
Chiffrement RSA
Etape 3 : Déchiffrement:
 MrY reçoit le message x chiffré par MrX, Il le décrypte à
l’aide de sa clé privée d, par l’opération :
m≡xd(mod n)

qui utilise également l’algorithme d’exponentiation rapide.


Application: c=40,d=13,n=85 donc xd≡(40)13(mod 85).
Donc xd≡4013≡10(mod 85) Calculons à la main 4013≡(mod 85)
on note que 13=8+4+1, donc
qui est bien le message m de MrX.
4013=408×404×40.
402≡1600≡70(mod 85)
404≡(402)2≡702≡4900≡55(mod 85)
52 / 23 408≡(404)2≡552≡3025≡50(mod 85)
K
4013≡ ≡50×55×40≡ 10(mod 85)
Chiffrement RSA
Récapitulatif:

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é.

Soit d l’inverse de e modulo φ(n).Si x≡me(mod n)alors


m≡xd(mod n).

 Ce lemme prouve bien que le message original m de MrX,


chiffré par clé publique de MrY (e,n) en le message x, peut-
être retrouvé par MrY à l’aide de sa clé secrète d.

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

 Objectif : A et B veulent s’échanger une information connue


d’eux seuls

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

 Fonction à sens unique et à brèche secrète (k1,k2)

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

k1=2 g=4 k2=3


g=4
x =gk1 mod p
p=10 y=gk2 mod p
p=10 y=4 =43modp=4
x=6 =42mod10 =6 x=6
y=4 a=yk1 mod p a=6 a=xk2 mod p
a=6
60 / 23
= 42mod10 = 63mod10
K =6 =6
Cryptosystème Diffie Hellman
 Exemple:

 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?

gk1= 4511mod 233 = 147,gk2= 4520mod 233 = 195,


(gk1)k2modp= 14720mod 233 = 169
(gk2)k1modp= 19511mod 233 = 169
 A et B disposent d’une clé privée commune :k= 169
61 / 23
K
Chiffrement d’El Gamal
 Algorithme de cryptographie asymétrique.
 Problème difficile: basé sur les logarithmes discrets.
3xmod8 = 1  x? (x=4)
Encore plus difficile et moins rapide pour les grandes valeurs.
 Il a été créé par Taher El Gamal en 1985.

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

 m=192 est alors chiffré en (105,237)


 u≡2313 mod 661≡105 mod 661 etv≡192×56613mod 661≡237 mod 661

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

Vous aimerez peut-être aussi