Vous êtes sur la page 1sur 96

Mohamed Neji MAATOUK

CRYPTOGRAPHIE

ESPRIT
2023/2024
PLAN DU COURS

 Cryptographie symétrique classique

Mohamed Neji MAATOUK


 Cryptographie moderne à clé secrète

 Cryptographie moderne à clé publique

 Hachage et signature numérique

2
Mohamed Neji MAATOUK
CRYPTOGRAPHIE SYMÉTRIQUE
CLASSIQUE

3
MODÈLE DE CHIFFREMENT SYMÉTRIQUE
 Un modèle de chiffrement symétrique est composé de
5 éléments :
 Message en clair, ou message non chiffré (Plaintext, en
anglais)

Mohamed Neji MAATOUK


 Algorithme de cryptage : transforme le message original en un
message crypté
 Clé secrète de chiffrement/déchiffrement
 Message chiffré (Ciphertext, en anglais)
 Algorithme de décryptage : il s’agit de l’inverse de l’algorithme
de cryptage Clé secrète Clé secrète

X X
Y= X=
X E(K,X) D(K,Y)
Message
chiffré 4
Message Algorithme de Algorithme de Message
en clair cryptage décryptage en clair
MODÈLE DE CHIFFREMENT SYMÉTRIQUE
 On distingue deux types d’échanges :
 Echange de la clé secrète : nécessite un canal

Mohamed Neji MAATOUK


sécurisé
 Echange de données chiffrées : tout type de canal

5
CRYPTANALYSE ET ATTAQUE PAR FORCE
BRUTE
 L’objectif principal d’un attaquant est de trouver la
clé de chiffrement (et non pas le message en clair
correspondant à un seul message chiffré)

Mohamed Neji MAATOUK


 Il y a deux types d’attaques pour atteindre cet objectif
:
 La cryptanalyse : exploiter les caractéristiques de
l'algorithme et du texte pour déduire le message en clair ou
la clé de chiffrement
 Cette attaque n’est pas toujours possible
 Attaque par force brute : L'attaquant essaie toutes les clés
possibles sur un message chiffré jusqu'à trouver le message
en clair
 En moyenne, la moitié de toutes les clés possibles doit être
essayé pour trouver la bonne 6
Mohamed Neji MAATOUK

TECHNIQUES CLASSIQUES DE
CHIFFREMENT
 Apparition : avant et au début de l’ère des
ordinateurs (ont cédé la place à des algorithmes
modernes plus puissants)
 Les techniques classiques sont classées en 2
catégories principales :
 Techniques de substitution : remplacer les lettres d’un
message par les lettres chiffrées correspondantes
 Algorithme de César

 Chiffrement Mono-alphabétique

 Playfair

 Vigenère

 Vernam

 Techniques de permutation : changer l’emplacement des


lettres d’un message en claire pour obtenir le message chiffré 7
 Rail Fence
ALGORITHME DE CÉSAR
 L’algorithme de base remplace chaque lettre par une lettre située
3 emplacements plus loin dans l’alphabet : c’est un chiffrement
par décalage circulaire des lettres

Mohamed Neji MAATOUK


 Exemple 1. « a » est chiffré en « D », et « y » devient « B »
 Exemple 2. Les lettres chiffrées correspondantes aux différentes
lettres de l’alphabet sont :
Clair : a b c d e f g h i j k l m n o p q r s t u v w x y z
Chiffré : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

 Exemple 3 :

Clair : faculte des sciences de monastir


Chiffré : IDFXOWH GHV VFLHQFHV GH PRQDVWLU 8
ALGORITHME DE CÉSAR
 La clé de l’algorithme de César correspond au nombre
de décalage :
L’algorithme de base utilise la clé « 3 »

Mohamed Neji MAATOUK



 En générale, la clé peut avoir n’importe quelle valeur de 1 à 25
(pour un alphabet de 26 lettres)

 Si l’attaquant sait qu’un message est chiffré par


l’algorithme de César, une attaque par force brute
permet de déterminer la clé facilement

 Exercice : Quelle est la clé utilisée pour chiffrer le


message suivant :
 RJXXFLJ HTSKNIJSYNJQ 9
CHIFFREMENT MONO-ALPHABÉTIQUE
 Le chiffrement mono-alphabétique utilise une substitution
aléatoire :
 Une lettre chiffrée correspond à une seule lettre claire (n’importe
laquelle)
La clé permet de déterminer la correspondance entre les lettres claires

Mohamed Neji MAATOUK



et chiffrées

 Exemple :
 Clair : abcd efgh ijkl mnop qrst uvwx yz
 Chiffré (clé) : DKVQ FIBJ WPES CXHT MYAU OLRG ZN

 Message claire : bonjour


 Message chiffré : KHXPHOY

 Un alphabet de 26 lettres possède “26!” clés possibles


 Attaque par force brute impossible

 Mais cette approche est vulnérable à l’attaque par cryptanalyse :


10
si l’attaquant connaît la nature du texte en clair (par exemple,
texte anglais), il peut exploiter la fréquence des lettres de la
langue et déterminer la clé de chiffrement
CHIFFREMENT MONO-ALPHABÉTIQUE
 Pour voir comment une cryptanalyse peut se dérouler,
on considère l’exemple du message chiffré suivant :
UZ QSO VUOHXMOPV GPOZPEVSG ZWSZ OPFPESX UDBMETSX AIZ
VUEPHZ HMDZSHZO WSFP APPD TSVP QUZW YMXUZUHSX

Mohamed Neji MAATOUK


EPYEPOPDZSZUFPO MB ZWP FUPZ HMDJ UD TMOHMQ

 1ère étape : calculer la fréquence des lettres dans le


message chiffré. On obtient :
13.33
P % H 5.83 % F 3.33 % B 1.67 % C 0.00 %
11.67
Z % D 5.00 % W 3.33 % G 1.67 % K 0.00 %
S 8.33 % E 5.00 % Q 2.50 % Y 1.67 % L 0.00 %
U 8.33 % V 4.17 % T 2.50 % I 0.83 % N 0.00 %
O 7.50 % X 4.17 % A 1.67 % J 0.83 % R 0.00 % 11
M 6.67 %
CHIFFREMENT MONO-ALPHABÉTIQUE
 2ème étape : comparer la fréquence obtenue avec la
fréquence standard des lettres de la langue anglaise
(on suppose que le message est en anglais)

Mohamed Neji MAATOUK


12
CHIFFREMENT MONO-ALPHABÉTIQUE
 Si notre message chiffré était suffisamment long, la technique de
comparaison des fréquences à elle seule peut suffire
 Mais le message est relativement court et la correspondance de
certaines lettres peut être fausse

Mohamed Neji MAATOUK


 Pour décrypter ce message, on procède comme suit :
 Il semble probable que les lettres chiffrées P et Z correspondent
aux lettres claire e et t, mais on ne sait pas qui est qui
 Les lettres S, U, O, M, et H sont tous de fréquence élevée et
correspondent probablement à des lettres dans l'ensemble {a, h, i,
n, o, r, s}
 Les lettres avec les fréquences les plus basses (A, B, G, Y, I, J)
sont probablement inclus dans l'ensemble {b, j, k, q, v, x, z}
 On peut regarder la fréquence des combinaisons de deux lettres :
« th » sont largement utilisées en anglais, et « ZW » apparait 3 fois
dans le message. On obtient les correspondances suivantes : Z ↔ t
et W ↔ h, et on déduit P ↔ e.
 On trouve la séquence ZWSZ, qui correspond probablement à
13
that : on obtient S ↔ a.
CHIFFREMENT MONO-ALPHABÉTIQUE
 On obtient :
UZ QSO VUOHXMOPV GPOZPEVSG ZWSZ OPFPESX UDBMETSX AIZ
t a e e te a that e e a a

Mohamed Neji MAATOUK


VUEPHZ HMDZSHZO WSFP APPD TSVP QUZW YMXUZUHSX
e t ta t ha e ee a e th t a
EPYEPOPDZSZUFPO MB ZWP FUPZ HMDJ UD TMOHMQ
e e e tat e the t
 Seulement 4 lettres identifiés. Avec plus d'analyse et d'essais on
peut trouver le message en clair suivant :
it was disclosed yesterday that several informal but
direct contacts have been made with political
representatives of the viet cong in moscow

 Conclusion : il est possible de casser le chiffrement mono-


alphabétique parce qu’il ne masque pas la fréquence d’utilisation 14
des lettres dans le message original
PLAYFAIR
 L'algorithme Playfair utilise une matrice de taille 5X5 construite
en utilisant la clé secrète

Mohamed Neji MAATOUK


 La matrice est construite en remplissant les lettres de la clé,
déduction faite des doubles (exemple : informatique devient
informatque), de gauche à droite et de haut en bas, puis de
remplir le reste de la matrice avec les lettres restantes dans
l'ordre alphabétique (les lettres I et J comptent pour une seule
lettre)
 Exemple de matrice avec la clé informatique :

I/J N F O R
M A T Q U
E B C D G
15
H K L P S
V W X Y Z
PLAYFAIR
 Le message en clair est chiffré par groupes de 2 lettres,
selon les règles suivantes:
 Deux lettres identiques appartenant à la même paire seront
séparées en ajoutant une lettre de remplissage au milieu
exemple : ballon → ba lx lo nx

Mohamed Neji MAATOUK


 Deux lettres qui se trouvent dans la même ligne de la matrice
seront décalées une case vers la droite
exemple : au est crypté comme TM
 Deux lettres qui se trouvent dans la même colonne seront
décalées une case vers le bas
exemple : po est crypté comme YQ
 Pour toutes les autres paires de lettres « l1l2 » :
 l1 sera remplacée par la lettre qui se trouve dans la ligne
de l1 et la colonne de l2
 l2 sera remplacée par la lettre qui se trouve dans la ligne
16
de l2 et la colonne de l1
exemple : ad devient QB
PLAYFAIR
 Exercice :
 Donner la matrice Playfair de la clé « sécurité »

Mohamed Neji MAATOUK


 Donner les paires du message suivant :
information confidentielle

 Chiffrer ce message

 Déchiffrer le message suivant en utilisant la même


clé : HIURGDCW TRCV EUTSOECE

17
CHIFFREMENT DE VIGENÈRE
 Le chiffrement de Vigenère est une amélioration de l’algorithme
de César : au lieu d’utiliser une seule valeur de décalage pour
toutes les lettres (exemple : un décalage de 3), on utilise plusieurs

Mohamed Neji MAATOUK


valeurs de décalage

 D’abord, on définit une clé de chiffrement alphabétique. Exemple :


equipage

 Ensuite, on attribue un numéro à chaque lettre de l’alphabet :


a b c d e f g h i j k l m n o p q r s t u
v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25

 Chaque numéro représente le nombre de décalage correspondant 18

à chaque lettre de la clé


 Question : quel est le chiffrement de la lettre « g » par la lettre « e » ?
CHIFFREMENT DE VIGENÈRE
 On répète la clé de chiffrement jusqu’à atteindre la taille du texte
à chiffrer
 Chaque lettre du texte sera chiffrée par la lettre correspondante

Mohamed Neji MAATOUK


de la clé

 Exemple (Chiffrement de Vigenère en ligne :


www.dcode.fr/chiffre-vigenere) :
Clé : equipageeq uipageeq ui pageequipage
Clair : techniques basiques de chiffrement
Chiffré : XUWPCIWYII VIHIWYII XM RHOJJHYUTNZ
 La lettre « t » sera chiffrée par « e » (décalage de 4), « e » chiffrée
par « q » (décalage de 16), « c » chiffrée par « u » (décalage de 20),
« h » chiffrée par « i » (décalage de 8), etc.

 Pourquoi les lettres « ques » de « techniques » et « basiques » ont


données les mêmes lettres chiffrées « WYII » ? 19
CHIFFREMENT DE VIGENÈRE
 Remarque : Si deux séquences identiques de texte en clair sont
distantes d’un nombre multiple de la taille de la clé, elles
produisent les mêmes séquences chiffrées

Mohamed Neji MAATOUK


 Exemples :
equipageequipageequipageequipageequip
age
testabcdtest XUMBPBIHXUMB
testabcdefghijkltest XUMBPBIHIVAPXJQPXUMB
testabcdefghijklmnopqrsttest XUMBPBIHIVAPXJQPQDIXFRYXXUM
testabcdefghijklmnopqrstuvwxyzabtest B
XUMBPBIHIVAPXJQPQDIXFRYXYLQF
NZGFXUMB

 Est-il possible de déterminer la taille de la clé en analysant le


message chiffré ?
20
CHIFFREMENT DE VIGENÈRE
 Remarque : Deux séquences identiques de texte chiffré sont
PROBABLEMENT distantes d’un nombre multiple de la taille
de la clé

Mohamed Neji MAATOUK


 PROBABLEMENT parce que les séquences peuvent être identiques
par hasard
 Si le texte est long, il est possible de trouver plusieurs séquences
identiques : offre une meilleure estimation de la taille de la clé

 Exercice. Quelles sont les tailles possibles de la clé utilisée pour


chiffrer le message suivant :
T D W K T Z W L S F F L Z C I F U B T D W K

21
CHIFFREMENT DE VIGENÈRE
 Remarque : Deux séquences identiques de texte chiffré sont
PROBABLEMENT distantes d’un nombre multiple de la taille de la
clé
 PROBABLEMENT parce que les séquences peuvent être identiques par

Mohamed Neji MAATOUK


hasard
 Si le texte est long, il est possible de trouver plusieurs séquences
identiques : offre une meilleure estimation de la taille de la clé

 Exercice. Quelles sont les tailles possibles de la clé utilisée pour


chiffrer le message suivant :
T D W K T Z W L S F F L Z C I F U B T D W K
 Réponse :
 Distance entre séquences identiques de texte chiffré : 18
 18 est un nombre multiple de : 1, 2, 3, 6, 9 et 18
 Taille de la clé est généralement supérieure ou égale à la taille des
séquences identiques
 Tailles possibles de la clé : 6, 9 et 18

 Exercice. Quelles sont les tailles possibles de la clé utilisée pour


chiffrer le message suivant : 22
Z I C V T W Q N G R Z G V T W A V Z H C Q Y G L M G J
CHIFFREMENT DE VIGENÈRE
 Que peut faire un attaquant s’il découvre la
taille de la clé ?

Mohamed Neji MAATOUK


 Il sera capable de déterminer l’ensemble des lettres
du message qui ont été chiffrées avec la même
lettre de la clé → Il peut faire une attaque par
cryptanalyse (voir chiffrement mono-alphabétique)

 Pour résoudre la vulnérabilité du chiffrement


de Vigenère, il faut utiliser une clé longue
(même taille que le message à chiffrer) et faire
disparaître les statistiques utiles pour une
attaque par cryptanalyse 23
VERNAM
 L’algorithme de Vernam est proposé par Gilbert Vernam (ingénieur
chez AT&T) en 1918
 Cet algorithme fonctionne sur des données binaires (et non pas des
lettres)

Mohamed Neji MAATOUK


 Le message chiffré est obtenu comme suit : c i = pi  ki
Tel que :
pi = nième bit du message en clair
ki = nième bit de la clé
ci = nième bit du message chiffré
 = or-exclusive (XOR)

 Le message déchiffré est obtenu comme suit : p i = ci  ki

 Pour échanger un message chiffré de manière totalement sûre, il faut


 Partager une clé composée d’une longue suite binaire tirée au
hasard (≥ taille message)
24
 Chaque clé doit être utilisée une seule fois : clé jetable
RAIL FENCE (BARRIÈRE DE RAIL, EN
FRANÇAIS)
 Contrairement aux algorithmes précédents, la technique « Rail Fence »
consiste à permuter l’emplacement des lettres du message original pour
obtenir un message chiffré

Mohamed Neji MAATOUK


 Pour chiffrer un message on procède comme suit :
 On écrit le message de haut en bas, sur plusieurs colonnes d’une
matrice
 Quand on atteint la dernière case d’une colonne, on passe à la
première case de la colonne suivante
 Lorsqu’on termine l’écriture du message, on remplie la dernière
colonne avec des lettres de remplissage : « x »
 On obtient le message chiffré en lisant la matrice ligne par ligne
 Le nombre de lignes de la matrice représente la profondeur (P) du
« Rail Fence »

 Exemple : chiffrer le texte « message confidentiel » avec Rail Fence


et P = 4

 Solution : 25
RAIL FENCE
 Solution :
M A O D I
E G N E E

Mohamed Neji MAATOUK


S E F N L
S C I T X

Message chiffré : MAODIEGNEESEFNLSCITX

 Pour déchiffrer :
 On calcule le nombre de lettres du message chiffré : N
 On divise ce nombre par la profondeur pour obtenir le nombre de colonne : C =
N/P
 On remplie la matrice et on lit le texte
 Exercice : déchiffrer le message « SUTNRTUEREFMIECIIOAQX »
sachant que P = 3

 Il est possible de casser cette technique avec une attaque par force 26
brute en essayant toute les valeurs possibles de P
RAIL FENCE
 Pour renforcer la sécurité de « Rail Fence », il est possible de
permuter l’ordre des lignes : cet ordre devient la clé de chiffrement

Mohamed Neji MAATOUK


 Exemple :
Clé Texte clair
7 U O A I L E L V L
4 N N G D C P F E E
2 T G E E H A E C X
3 R M C N I R N U X
6 E E O T F R C N X
1 S S N I F A E E X
5 L S F E R I A C X

Texte chiffré :
SSNIFAEEXTGEEHAECXRMCNIRNUXNNGDCPFEELSFERIACXEEOTFRCNXUOAILELVL 27
Clé : 7423615
Mohamed Neji MAATOUK
CRYPTOGRAPHIE MODERNE À
CLÉ SECRÈTE

28
OBJECTIF DE LA CRYPTOGRAPHIE MODERNE

 Pour un usage sécurisé de la cryptographie, il


faut :

Mohamed Neji MAATOUK


 Utiliser un algorithme de cryptage fiable : un
adversaire qui connait l'algorithme ne doit pas être
capable de déterminer la clé ou déchiffrer un
message chiffré (même s’il est en possession d'un
certain nombre de textes chiffrés et les textes en
clair correspondant)
 Un échange sécurisé de la clé de chiffrement
 L’algorithme de chiffrement ne doit pas être
secret, seulement la clé doit l’être !
29
Rappel : chiffrement symétrique

Définition : Un algorithme de chiffrement symétrique transforme un message en


clair M avec une clé secrète K. Le résultat est un message chiffré C

Mohamed Neji MAATOUK


30
Deux grandes catégories

Chiffrement par Chiffrement par flots


blocs

Mohamed Neji MAATOUK


M est traité bit par bit (cours
M est traité par blocs de précédent)
données
(ex: 64 bits ou 128 bits) Exemple d’algorithmes: RC4,
Bluetooth E0/1, GSM A5/1,
Exemple d’algorithmes: DES,
AES, IDEA, RC6,
BLOWFISH, …

31
Introduction: Chiffrement par bloc

•Une des primitives (« briques ») les plus largement utilisées en


cryptographie symétrique mais aussi dans les fonctions de Hachage,
générateur pseudo aléatoire etc…

Mohamed Neji MAATOUK


•Dans un système par blocs, chaque texte clair est découpé en blocs de
même longueur et chiffré bloc par bloc.
•La taille du texte clair est fixe=> Plus de maitrise sur le propriétés du
chiffrement
•Le système de chiffrement par blocs le plus utilisé jusqu’à l’an 2000 est
le DES

32
Introduction: Chiffrement par bloc

Dans un système par blocs, chaque texte clair est découpé en blocs de
même longueur et chiffré bloc par bloc.
La taille de bloc (n = 64 ou 128 bits): Les modes opératoires
permettent généralement des attaques quand plus de 2𝑛/2blocs sont

Mohamed Neji MAATOUK


chiffrés avec une même clé.
La clé soit être suffisamment grande (k>128): Pour un bon algorithme,
la meilleure attaque doit coûter 2𝑘opérations (la technique utilisée est
l’attaque exhaustive).

Exemple:
•AES: n= 128 bits , k=128, 192, 256 bits
•3 DES: n= 64 k= , 168 bits 33
Construction: Fonction aléatoire

Nouvelle définition dans le chiffrement par blocs  Permutation


aléatoire

Mohamed Neji MAATOUK


Tel que: pour une fonction de chiffrement E(k,m) :
Il existe une façon efficace d’évaluer cette permutation
Il existe un algorithme d’inversion efficace D(k,c)
E(k,m) doit être une fonction bijective

34
Exemple de fonction bijective

•E (m, k) est fonction de chiffrement bijective

Mohamed Neji MAATOUK


35
Introduction: Chiffrement par bloc
•Les exemples historiques de chiffrement (par transposition et par substitution) vus
en début de cours sont des chiffrements par blocs.
• La substitution ajoute de la confusion au procédé de chiffrement et la

Mohamed Neji MAATOUK


transposition ajoute de la diffusion en éparpillant l’influence moyenne (selon les
différentes clés) de chaque bit du clair, sur les bits du chiffré.
• Mais aucun de ces deux procédés ne produit à la fois de la confusion et de la
diffusion  pas une réelle sécurité.

Les systèmes modernes, pour assurer une véritable sécurité, doivent produire à la fois
de la confusion et de la diffusion, faute de quoi ils ne résistent pas aux attaques que
nous décrirons plus loin. 36
2 Principes fondamentaux pour le chiffrement par blocs
La confusion vise à cacher n’importe quelle structure algébrique dans le
système pour la rendre intelligible.
La diffusion doit permettre à chaque bit de texte clair d’avoir une

Mohamed Neji MAATOUK


influence sur une grande partie du texte chiffré. Ce qui signifie que la
modification d’un bit du bloc d’entrée doit entraîner la modification de
nombreux bits du bloc de sortie correspondant.
Les 2 notions ont été introduites par Shannon.

La confusion est assuré par une substitution non-linéaire (S-Box)


La diffusion est assuré par une permutation linéaire 37
Construction : DES

•On utilise une combinaison de substitutions et de permutations pour le calcul


générique de 𝐹(𝑘𝑖,𝑚) sur 32 bits:
•Le texte clair et le texte chiffré sont des suites de bits de longueur l

Mohamed Neji MAATOUK


•La substitution (appelée aussi “S-boîte” ) est notée S (non linéarité)
•La permutation P (fonction aléatoire)

38
Algorithme DES : Table de substitution
(S-box)

La sortie de 4 bits est obtenue à


partir de l'entrée de 6 bits.

Méthode:

Mohamed Neji MAATOUK


On divise ces 6 bits en deux
parties: les deux bits aux
extrémités et les quatre bits
restants (au centre). Les deux
bits indiquent la ligne et les bits
centraux donnent la colonne
correspondante.

Exemple: avec une entrée


"011011", on divise en "011011".
39
Ce qui donne pour la ligne
"01" et pour la colonne
"1101". La sortie de la table
CHIFFREMENT DE FEISTEL
 Feistel propose un chiffrement qui alterne la
substitution et la permutation

Mohamed Neji MAATOUK


 Le chiffrement de Feistel est conforme avec la
proposition de Shannon

40
CHIFFREMENT DE FEISTEL
 Feistel propose le processus de chiffrement
suivant :
 Chiffrement par bloc : taille de bloc égale à 2w bits
Un bloc est divisé en 2 moitié : L (left) et R (Right)

Mohamed Neji MAATOUK



 La lettre E (Encryption) indique le chiffrement
 Le chiffrement est réalisé en « n » rounds (16 rounds dans
notre exemple)
 Pour round i, on utilise la clé Ki qui est un dérivé de la clé K (Ki
≠ K)
 Substitution : appliquer la fonction F sur REi-1, ensuite
appliquer XOR sur la sortie de F et LEi-1 : REi = LEi-1 
F(REi-1, Ki)
 Remarque : on utilise la même fonction F à chaque round,
mais avec une clé Ki différente
 Permutation des deux moitiés : après la substitution de la
partie gauche, on change l’emplacement des deux parties
 Remarque : on ajoute une dernière permutation après round
16 pour annuler la dernière permutation
 Ce processus s’appel « Feistel network » (réseau de Feistel) 41
CHIFFREMENT DE FEISTEL
Fonction f
32 bits 48 bits

M K

Fonction

Mohamed Neji MAATOUK


E d’expansion

E(M)

B1 Bi 6bits/Bi

S1 Si

C1 Ci 4bits/Ci

P
42
f(M,K) 8bits
CHIFFREMENT DE FEISTEL
 Les paramètres du processus de Feistel sont :
 Taille du bloc : augmenter la taille des blocs améliore la
sécurité mais réduit la vitesse de chiffrement/déchiffrement

Mohamed Neji MAATOUK


 Tailles typiques de blocs : 64 et 128 bits
 Taille de la clé : augmenter la taille de la clé améliore la
sécurité mais réduit la vitesse de chiffrement/déchiffrement
 Taille suffisante pour éviter les attaques par force brute
 Tailles typiques de la clé : 128 et 256 bits (64 bits désormais
insuffisante)
 Nombre de rounds : augmenter le nombre de round améliore
la sécurité (la sécurité offerte par un seul round est
insuffisante)
 Nombre typique : 16 rounds
 Algorithme de génération des clés intermédiaires (Ki) :
augmenter la complexité de l’algorithme pour une meilleure 43
fiabilité
 Fonction F du round : une meilleure complexité offre une
CHIFFREMENT DE FEISTEL
 Le processus de déchiffrement de Feistel est
identique au processus de chiffrement : un
seul algorithme est suffisant pour
chiffrer/déchiffrer

Mohamed Neji MAATOUK


 Mode de fonctionnement :
 Utiliser le message chiffré en entrée de l’algorithme
 Utiliser les clés intermédiaires (Ki) dans l’ordre
inverse : de Kn à K1

 Le processus de déchiffrement de Feistel est


le suivant :
 La lettre D (Decryption) indique le déchiffrement

 Montrer que ce processus permet d’obtenir le


message en clair 44
DATA ENCRYPTION STANDARD (DES)
 DES est définit en 1977 par National Institute of
Standards and Technology (NIST)

Mohamed Neji MAATOUK


 DES était l’algorithme de chiffrement le plus utilisé au
monde entre 1977 et 2001 (date d’apparition de AES)

 Utilise un chiffrement par bloc : taille de bloc = 64 bits

 Utilise une clé de 56 bits

 Chiffre un bloc en plusieurs rounds : les mêmes rounds


avec les mêmes clés intermédiaires permettent de
45
déchiffrer un bloc
DATA ENCRYPTION STANDARD (DES)
 Chiffrement par bloc de 64 bits

 Chiffrement d’un bloc en 3 phases :

Mohamed Neji MAATOUK


 Phase 1 : le bloc passe par une permutation initiale
(IP : Initial Permutation) qui réarrange les bits

 Phase 2 : cette phase est composée par 16 rounds.


Chaque round réalise la substitution et la permutation
des bits en appliquant une clé intermédiaire « Ki » de
48 bits. Après round 16, les deux moitiés du bloc sont
permutées.
 Remarque : Phase 2 est identique au processus de Feistel

 Phase 3 : Appliquer une « permutation des bits » qui


est l’inverse de la permutation initiale (IP-1)
46
INITIAL PERMUTATION (IP)

Mohamed Neji MAATOUK


47
DATA ENCRYPTION STANDARD (DES)
 DES reçoit une clé initiale de 64 bits (seulement
56 bits seront utilisés). Cette clé est utilisée
pour générer 16 clés intermédiaires de 48 bits

Mohamed Neji MAATOUK


 La clé initiale passe par une première
permutation des 56 bits (PC1 : Permuted Choice
1)

 Pour chaque round, une clé intermédiaire « Ki »


est générée en combinant les opérations
suivantes :
 Un décalage circulaire (des bits) à gauche
 Une 2ème permutation (PC2 : Permuted Choice 2)
qui permet de sélectionner 48 bits parmi 56 bits

 Remarque : grâce au décalage on obtient une clé


différente à chaque round
48
L’EFFET AVALANCHE
Une légère modification
dans le message en claire
ou dans la clé (changement

Mohamed Neji MAATOUK


d’un seul bit) implique un
grand changement du
message chiffré

DES est un algorithme à effet avalanche


Exemples :
1. Changement d’un bit du message : 02468aceeca86420
vs 12468aceeca86420
2. Changement d’un bit de la clé : 0f1571c947d9e859 vs
49
1f1571c947d9e859
L’EFFET AVALANCHE : CHANGEMENT D’UN
BIT DU MESSAGE
bits bits
Roun Roun
modifi modifi
d d
és és
02468aceeca86420 c11bfc09887fbc6c
1 9 32
12468aceeca86420 99f911532eed7d94

Mohamed Neji MAATOUK


3cf03c0fbad22845 887fbc6c600f7e8b
1 1 10 34
3cf03c0fbad32845 2eed7d94d0f23094
bad2284599e9b723 600f7e8bf596506e
2 5 11 37
bad3284539a9b7a3 d0f23094455da9c4
99e9b7230bae3b9e f596506e738538b8
3 18 12 31
39a9b7a3171cb8b3 455da9c47f6e3cf3
0bae3b9e42415649 738538b8c6a62c4e
4 34 13 29
171cb8b3ccaca55e 7f6e3cf34bc1a8d9
4241564918b3fa41 c6a62c4e56b0bd75
5 37 14 33
ccaca55ed16c3653 4bc1a8d91e07d409
18b3fa419616fe23 56b0bd7575e8fd8f
6 33 15 31
d16c3653cf402c68 1e07d4091ce2e6dc
9616fe2367117cf2 75e8fd8f25896490 50
7 32 16 32
cf402c682b2cefbc 1ce2e6dc365e5f59
67117cf2c11bfc09 da02ce3a89ecac3b
8 33 IP-1 32
2b2cefbc99f91153 057cde97d7683f2a
L’EFFET AVALANCHE : CHANGEMENT D’UN
BIT DE LA CLÉ
bits bits
Roun Roun
modifi modifi
d d
és és
02468aceeca86420 c11bfc09887fbc6c
0 9 34
02468aceeca86420 548f1de471f64dfd

Mohamed Neji MAATOUK


3cf03c0fbad22845 887fbc6c600f7e8b
1 3 10 36
3cf03c0f9ad628c5 71f64dfd4279876c
bad2284599e9b723 600f7e8bf596506e
2 11 11 32
9ad628c59939136b 4279876c399fdc0d
99e9b7230bae3b9e f596506e738538b8
3 25 12 28
9939136b768067b7 399fdc0d6d208dbb
0bae3b9e42415649 738538b8c6a62c4e
4 29 13 33
768067b75a8807c5 6d208dbbb9bdeeaa
4241564918b3fa41 c6a62c4e56b0bd75
5 26 14 30
5a8807c5488dbe94 b9bdeeaad2c3a56f
18b3fa419616fe23 56b0bd7575e8fd8f
6 26 15 33
488dbe94aba7fe53 d2c3a56f2765c1fb
9616fe2367117cf2 75e8fd8f25896490 51
7 27 16 30
aba7fe53177d21e4 2765c1fb01263dc4
67117cf2c11bfc09 da02ce3a89ecac3b
8 32 IP-1 30
177d21e4548f1de4 ee92b50606b62b0b
FIABILITÉ DE DES
 Avec une clé de 56 bits : 256 clés possibles (environ 7,2 x
1016 clés)

Mohamed Neji MAATOUK


 Une attaque par force brute (l’attaquant ignore la clé, mais
a un message en clair et le message chiffré correspondant)
doit parcourir en moyenne la moitié des clés

 Si une machine réalise un chiffrement par microseconde, il


faut 1000 ans pour trouver la clé : en 1977 DES était
suffisamment robuste

 Les ordinateurs de nos jours sont de plus en plus puissants


:
 109 chiffrements par seconde : 1 an et 45 jours pour trouver la clé
 1013 chiffrements par seconde : 1 heure pour trouver la clé
52
 Plusieurs alternatives à DES : Triple DES et AES
DOUBLE DES
 « Doubles DES » est proposé pour améliorer la sécurité de
DES

Mohamed Neji MAATOUK


 Applique DES deux fois sur un message en utilisant 2 clé
différentes, K1 et K2 C : message chiffré
P : message en clair
 Chiffrement : C = ENCK2 (ENCK1 (P)) ENC (encryption) : chiffrement
 Déchiffrement : P = DECK1 (DECK2 (C)) DEC (decryption) :
déchiffrement

 L’objectif est d’augmenter le nombre de clés : 256 x 256 = 2112


clés possibles
 Si c’était vrai, « Double DES » aurait était suffisamment fiable
de nos jours (avec une machine de 1013 chiffrements par seconde :
8 x 1012 ans pour trouver les deux clés)

 Problème : Double DES est vulnérable à une attaque de


type « rencontre au milieu » (en anglais Meet-in-the- 53
middle)
L’ATTAQUE « MEET-IN-THE-MIDDLE »
 Supposons qu’un attaquant ignore les clés K1 et K2 mais a
un message en clair (P) et le message chiffré correspondant
(C), tel que :

Mohamed Neji MAATOUK


 C = ENCK2 (ENCK1 (P))
 P = DECK1 (DECK2 (C))
 On obtient : ENCK1 (P) = DECK2 (C)

 L’attaque :
 On peut chiffrer P avec toutes les clés possibles (256 clés) et on
mémorise les résultats
 Ensuite on déchiffre C avec toutes les clés possibles (256 clés) et
on compare chaque résultat de déchiffrement avec tous les
résultats de chiffrement : si égalité → K1 et K2 probablement
trouvées
 Le nombre maximum de clés à essayer est 256 + 256 = 257 clés (et
non pas 256 x 256 = 2112): seulement deux fois le temps nécessaire 54
pour casser DES (hors temps de comparaison)
TRIPLE DES (3DES)
 Pour résister à l’attaque « Meet-in-the-middle », on utilise « Triple
DES » (3DES) : on applique DES 3 fois avec 3 clés différentes : K1,
K2 et K3

Mohamed Neji MAATOUK


 La longueur de la clé globale K {K1, K2, K3} = 168 bits

 Le message chiffré est obtenu comme suit :


C = ENCK3 (DECK2 (ENCK1 (P)))

55
ADVANCED ENCRYPTION STANDARD (AES)
Historique :
 1997 : NIST (National Institute of Standards &
Technology) lance un concours pour la standardisation d’un

Mohamed Neji MAATOUK


nouveau algorithme de chiffrement symétrique

 Aout 1998 : 15 algorithmes sont candidats pour devenir


AES

 Aout 1999 : annonce des 5 finalistes (MARS, RC6,


RIJNDAEL, SERPENT, TWOFISH)

 Octobre 2000 : sélection de RIJNDAEL

56
 Février 2001 : publication officielle de AES
CANDIDATS ET FINALISTES POUR AES
RIJNDAEL (AES) Joan Daemen, Vincent Rijmen
MARS IBM
RC6 RSA Laboratories

Mohamed Neji MAATOUK


SERPENT R. Anderson, E. Biham, L. Knudsen
TWOFISH B. Schneier, J. Kelsey, D. Whiting, D. Wagner, C. Hall, N.
Ferguson
CAST-256 Entrust Technologies, INC.
CRYPTON Future System, INC.
DEAL R. Outerbridge, L. Knudsen
DFC CNRS
E2 Nippon Telegraph and Telephone Corp.
FROG TecApro Internacional S.A.
HPC L. Brown, J. Pieprzyk, J. Seberry
LOKI97 L. Brown, J. Pieprzyk, J. Seberry
MAGENTA Deutsche Telekom AG
SAFER+ Cylink Corp.
57
AES : ALGORITHME RIJNDAEL
 Utilise un chiffrement par bloc : bloc de 128 bits
 La clé peut avoir 3 tailles différentes : 128 bits, 192 bits et 256 bits
 L’algorithme s’appelle AES-128, AES-192 ou AES-256 selon la taille

Mohamed Neji MAATOUK


de la clé
 Le chiffrement se déroule en 2 phases :
 Phase 1 : transformation initiale
 Phase 2 : plusieurs rounds
 Le nombre de rounds dépond de la taille de la clé :
 Clé de 128 bits : 10 rounds
 Clé de 192 bits : 12 rounds
 Clé de 256 bits : 14 rounds
 Le processus de chiffrement/déchiffrement utilise 3 types de clés :
 Clé (ou clé principale)
 Clé étendue : obtenue à partir de la clé principale
 Clé intermédiaire : c’est une portion de 128 bits de la clé étendue. La phase
de « transformation initiale » et chaque round utilise une clé intermédiaire
unique 58
PARAMÈTRES DE AES

Taille de la clé (clé principale) 128 bits 192 bits 256 bits

Mohamed Neji MAATOUK


Taille du bloc 128 bits 128 bits 128 bits
Nombre de rounds 10 12 14
Taille de la clé intermédiaire 128 bits 128 bits 128 bits
Taille de la clé étendue (10 + 1) x 128 = (12 + 1) x 128 = (14 + 1) x 128 =
1408 bits 1664 bits 1920 bits

59
ORGANISATION SOUS FORME DE MATRICE
 Un bloc de 128 bits est traité sous forme d’une
matrice de 4x4 octets tout au long du processus de
chiffrement/déchiffrement

Mohamed Neji MAATOUK


Bloc de 16 octets (128 bits)
a b c d e f g h i j k l m n o p

a e i m
Matrice b f j n
de 4x4 c g k o
octets d h l p

60
FONCTIONS DE TRANSFORMATION
 La phase de transformation initiale réalise la fonction suivante :
 AddRoundKey

Mohamed Neji MAATOUK


 Chaque round (à l’exception du dernier) est composé de 4
fonctions différentes de transformation :
 SubstitueBytes
 ShiftRows
 MixColumns
 AddRoundKey

 Le dernier round réalise les fonctions suivantes :


 SubstitueBytes
 ShiftRows
 AddRoundKey

61
ROUNDS ET FONCTIONS
DE TRANSFORMATION

Chiffrement/Déchiffrement
AES : exemple d’une clé de
128 bits

Mohamed Neji MAATOUK


62
ADDROUNDKEY
 Cette fonction réalise un XOR bit à bit de la matrice
avec la clé intermédiaire
Elle est identique en chiffrement et en déchiffrement

Mohamed Neji MAATOUK


M’0,0 M’0,1 M’0,2 M’0,3 M0,0 M0,1 M0,2 M0,3 K0,0 K0,1 K0,2 K0,3

M’1,0 M’1,1 M’1,2 M’1,3 M1,0 M1,1 M1,2 M1,3 K1,0 K1,1 K1,2 K1,3
= 
M’2,0 M’2,1 M’2,2 M’2,3 M2,0 M2,1 M2,2 M2,3 K2,0 K2,1 K2,2 K2,3

M’3,0 M’3,1 M’3,2 M’3,3 M3,0 M3,1 M3,2 M3,3 K3,0 K3,1 K3,2 K3,3

Matrice Matrice Clé


résultat intermédiaire
63
SUBSTITUEBYTES (BYTE = OCTET)
 Les octets sont remplacées par les valeurs
correspondantes de la table « S-box »

Les 4 bits de poids fort de l’octet à remplacer

Mohamed Neji MAATOUK



indique la ligne et les 4 bits de poids faible
indique la colonne de S-box

 Exemple : l’octet 0x9D est remplacé par 0x5E

64
Table S-box de Rijndael
(AES)
SUBSTITUEBYTES (BYTE = OCTET)
0 1 2 3 4 5 6 7 8 9 A B C D E F

0 63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76
1 CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0
2 B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15

Mohamed Neji MAATOUK


3 04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75
4 09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84
5 53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF
6 D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8
7 51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2
8 CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73
9 60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB
A E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79
B E7 C8 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08
C BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A
D 70 3E B5 66 48 03 F6 0E 61 35 57 B9 86 C1 1D 9E
E E1 F8 98 11 69 D9 8E 94 9B 1E 87 E9 CE 55 28 DF
F 8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16
65
Table S-box de Rijndael
(AES)
SUBSTITUEBYTES (BYTE = OCTET)

Mohamed Neji MAATOUK


Remarque : en déchiffrement on utilise l’opération de substitution
inverse qui utilise la table « Inverse S-box » 66
SHIFTROWS (ROW = LIGNE)
 ShiftRows réalise la permutation des octets comme
suit :
La première ligne de la matrice reste inchangée

Mohamed Neji MAATOUK



 2ième ligne : une rotation circulaire de 1 octet vers la gauche
 3ième ligne : une rotation circulaire de 2 octets vers la gauche
 4ième ligne : une rotation circulaire de 3 octets vers la gauche

 Remarque : le déchiffrement réalise des rotations


circulaires vers la droite
a e i m a e i m

b f j n f j n b

c g k o k o c g
67
d h l p p d h l
MIXCOLUMNS
 Cette fonction remplace chaque octet par une valeur
calculée à partir des octets de la même colonne
La substitution correspond à la multiplication

Mohamed Neji MAATOUK



matricielle suivante :

 Le substitution de la jième colonne est la suivante :

68
AES
 Déchiffrement : l’algorithme de déchiffrement est
différent de celui de chiffrement :

Mohamed Neji MAATOUK


 Différentes tables S-box
 Fonctions de transformation inverses

 Effet avalanche : AES est un algorithme à effet


avalanche

69
CHIFFREMENT PAR BLOC ET PAR FLUX

 Chiffrement par flux : le message est chiffré bit par


bit
Une clé idéale doit avoir la même taille que le message à

Mohamed Neji MAATOUK



chiffrer : non pratique s’il y a une très grande quantité
d’information à chiffrer
 Solution pratique : utiliser un algorithme de génération de clé
étendue (keystream) en utilisant une clé de taille fixe

70
Chiffrement par flux en utilisant un algorithme de génération de clé
étendue
CHIFFREMENT PAR BLOC ET PAR FLUX

 Chiffrement par bloc : le message est chiffré bloc par


bloc, chaque bloc de message en clair produit un bloc
de même taille de message chiffré

Mohamed Neji MAATOUK


 Exemple de taille de bloc : 64 ou 128 bits
 La plupart des applications utilise le chiffrement par bloc

Chiffrement par bloc 71


CHIFFREMENT PAR BLOC ET PAR FLUX
 Chiffrement par bloc :
 Un bloc de n bits peut avoir 2n valeurs possibles
 Le chiffrement est réversible (c.à.d. le déchiffrement est possible)

Mohamed Neji MAATOUK


si chaque bloc du message en clair produit un seul et unique bloc
chiffré
 Exemple de chiffrements réversible et irréversible, pour n = 2 bits
:
Chiffrement réversible Chiffrement irréversible
Bloc en Bloc chiffré Bloc en Bloc chiffré
clair clair
00 11 00 11
01 10 01 10
10 00 10 01
11 01 11 01
 Dans le cas du chiffrement irréversible, la valeur chiffrée « 01 »
correspond à deux blocs en clair différents (« 10 » et « 11 ») :
72
déchiffrement impossible
MODES DE CHIFFREMENT PAR BLOC
 Le chiffrement par bloc transforme un bloc de
message en clair de taille fixe en un bloc chiffré

Mohamed Neji MAATOUK


 Si la taille du message en clair dépasse la taille d’un
bloc, on peut utiliser l’un des 5 modes d’opération
pour chiffrer la totalité du message

 Les différents modes de chiffrement par bloc sont :


 Electronic Codebook (ECB)
 Cipher Block Chaining (CBC)
 Cipher Feedback (CFB)
 Output Feedback (OFB)
73
 Counter (CTR)
ELECTRONIC CODEBOOK (ECB)
 Le message en clair est découpé en
plusieurs blocs

Mohamed Neji MAATOUK


 Chiffrement :
 Même clé pour chiffrer tous les blocs
 Chaque bloc est chiffré Chiffrement ECB
indépendamment des autres blocs

 Déchiffrement :
 Même clé pour tous les blocs
 Chaque bloc est déchiffré
indépendamment des autres blocs

 Inconvénient : deux blocs en clair


identiques produisent des blocs
chiffrés identiques Déchiffrement ECB 74
CIPHER BLOCK CHAINING (CBC)
 CBC permet à 2 blocs en clair
identiques de produire des blocs
chiffrés différents

Mohamed Neji MAATOUK


 Chiffrement :
 Même clé pour chiffrer tous les
blocs Chiffrement CBC
 L’input de l’algorithme de
chiffrement = bloc en clair XOR
bloc chiffré précédant
 On applique un XOR du
premier bloc en clair avec un
bloc nommé « Initialization
Vector (IV) »
 IV doit être connu par
l’émetteur et le récepteur
Déchiffrement CBC 75
CIPHER FEEDBACK (CFB)
 Utilise l’algorithme de
chiffrement pour chiffrer et
déchiffrer un message
 Chiffrement :

Mohamed Neji MAATOUK


 Premier bloc chiffré = IV
chiffré XOR premier bloc en
clair
 Les blocs chiffrés suivants = Chiffrement CFB
bloc en clair XOR résultat de
chiffrement du bloc chiffré
précédant
 Déchiffrement :
 Premier bloc en clair = IV
chiffré XOR premier bloc
chiffré
 Les blocs en clair suivants =
bloc chiffré XOR résultat de
chiffrement du bloc chiffré
précédant Déchiffrement CFB 76
OUTPUT FEEDBACK (OFB)
 Grande ressemblance avec le
mode CFB :
 Utilisation de l’algorithme de
chiffrement lors du chiffrement

Mohamed Neji MAATOUK


et du déchiffrement
 Utilisation de IV : 2 blocs en clair
identiques génèrent des blocs
chiffrés différents Chiffrement OFB
 En chiffrement et en
déchiffrement : l’output de
l’algorithme de chiffrement
représente l’input de l’algorithme
pour le bloc suivant

Déchiffrement OFB 77
COUNTER (CTR)
 Un compteur est initialisé à une
certaine valeur, et incrémenté par
1 pour chaque nouveau bloc

Mohamed Neji MAATOUK


 En chiffrement, bloc chiffré =
compteur chiffré XOR bloc en clair

 En déchiffrement, bloc en clair = Chiffrement CTR


compteur chiffré XOR bloc chiffré

 Algorithme de chiffrement utilisé


en chiffrement et en déchiffrement

 La valeur initiale du compteur doit


être connue par l’émetteur
(chiffrement) et par le récepteur
(déchiffrement)

Déchiffrement CTR 78
MÉTHODE DIFFIE-HELLMAN :

Mohamed Neji MAATOUK


79
MÉTHODE DIFFIE-HELLMAN :
 Déroulement :

Mohamed Neji MAATOUK


80
Mohamed Neji MAATOUK
CRYPTOGRAPHIE MODERNE À
CLÉ PUBLIQUE
81
INTRODUCTION
 Le cryptage à clé publique permet de résoudre la problématique
principale de la cryptographie symétrique (à clé secrète) :
Confidentialité de l’échange de la clé secrète

Mohamed Neji MAATOUK


 Le cryptage à clé publique utilise deux clés différentes mais
dépendantes :
 Une clé publique : connue par tout le monde et utilisée pour le
chiffrement du message
 Une clé privée : connue uniquement par le récepteur et permet le
déchiffrement du message

 Le cryptage à clé publique s’appel également cryptage asymétrique


: une clé pour le chiffrement et une autre clé pour le déchiffrement

 On distingue alors 3 types de clés :


 Clé secrète : utilisée par les algorithmes de chiffrement symétrique (à clé
secrète)
 Clé publique : la première clé du cryptage à clé publique
 Clé privée : la deuxième clé du cryptage à clé publique, c’est également
une clé secrète mais on l’appelle clé privée pour la différencier de la clé 82
utilisée par le cryptage symétrique

INTRODUCTION
La clé publique est partagée sur un canal non sécurisé : elle peut
être intercepter par un attaquant sans compromettre la
confidentialité de la communication
 La clé privée doit être conserver en toute confidentialité

Mohamed Neji MAATOUK


 Soit Kpub la clé publique et Kpriv la clé privée :
 Si le message est chiffré par Kpub , seulement Kpriv peut le déchiffrer :
message confidentiel
 Si le message est chiffré par Kpriv , seulement Kpub peut le déchiffrer :
message non confidentiel

 Pour établir une communication confidentielle entre A et B :


 « A » génère une paire de clés : KApub et KApriv , et partage sa clé publique « KApub » avec
«B»
 « B » génère une paire de clés : KBpub et KBpriv , et partage sa clé publique « KBpub » avec
«A»
 « A » chiffre les messages avec la clé publique de B : « KBpub », et les envoi à « B » (« B »
déchiffre ces messages avec sa clé privée « KBpriv ») 83
 « B » chiffre les messages avec la clé publique de A : « KApub », et les envoi à « A » (« A »
déchiffre ces messages avec sa clé privée « KApriv »)
INTRODUCTION
 A tout moment un utilisateur peut changer sa clé
privée et publier la nouvelle clé publique
correspondante

Mohamed Neji MAATOUK


 Le schéma de chiffrement à clé publique est le suivant
Clé publique de Clé privée de B
: B
KBpub KBpri
v
X X

X Y = E(KBpub X = D(KBpriv
,X) ,Y)
Message chiffré

Message Algorithme de Algorithme de Message


en clair chiffrement déchiffrement en clair

A B
84
A envoi un message confidentiel à B
UTILITÉ
 Le cryptage à clé publique (asymétrique) peut
servir à :

Mohamed Neji MAATOUK


 Chiffrement/déchiffrement : l’émetteur chiffre
le message avec la clé publique du récepteur
 Signature électronique : l’émetteur « signe »
(c.à.d. chiffre) un message avec sa clé privée. Tout
le monde peut le déchiffrer et déduire l’identité de
la signature (seulement l’émetteur est en
possession de sa clé privée et peut chiffrer avec)
 Echange de clé secrète : deux utilisateurs
échange la clé secrète de chiffrement symétrique,
et s’en sert pour la suite de la session
85
RSA
 En 1976, Diffie et Hellman ont introduit le principe
du cryptage à clé publique

Mohamed Neji MAATOUK


 Apparition de plusieurs algorithmes

 En 1977, proposition de l’algorithme RSA par Rivest,


Shamir et Adleman

 RSA est l’algorithme de cryptage à clé publique le


plus utilisé au monde

86
ALGORITHME RSA
 Etapes :
 Sélectionner deux entiers premiers : p et q
 Calculer n = p x q, et (n) = (p – 1) x (q – 1)

Mohamed Neji MAATOUK


 Sélectionner "e", 1 < e < (n), tel que "e" est premier par
rapport à (n) : pgcd((n), e) = 1
 Calculer d, tel que : d.e  1 mod (n). En d’autre terme :
d.e mod (n) = 1
 Clés RSA :
 Clé publique : Kpub = {e, n}
 Clé privée : Kpriv = {d, n}
 Chiffrement de M avec la clé publique (avec M < n)
: C = Me mod n
 Déchiffrement de C avec la clé privée : M = Cd mod 87
n
FONCTIONNEMENT DE RSA
Exemple 1 :
 Soit p = 17, q = 11

Mohamed Neji MAATOUK


 On obtient : n = 17 x 11 = 187, et (n) = (17 – 1) x
(11 – 1) = 160
 Choisir e premier par rapport à (n), soit e = 7 :
pgcd (160, 7) = 1
 7xd mod 160 = 1  d = 23

88
FONCTIONNEMENT DE RSA
Exemple 2 :
 Sélection des clés RSA :

Mohamed Neji MAATOUK


 Soit p = 73 et q = 151
 On obtient : n = p x q = 73x151 = 11023, et (n) =
(73–1)x(151–1) = 10800
 Choisir e premier avec (n) : e = 11
 11xd mod 10800 = 1  d = 5891
 Clé publique de A : KApub = {e, n} = {11, 11023}
 Clé privée de A : KApriv = {d, n} = {5891, 11023}

89
FONCTIONNEMENT DE RSA
Exemple 2 (suite) :
 Chiffrement d’un message : B chiffre un message avec la
clé publique de A
 B veut chiffrer le message suivant « How_are_you? »,

Mohamed Neji MAATOUK


et l’envoyer à A
 Il convertit son message en une suite de valeurs
numériques. Plusieurs schémas de conversion sont
possibles tel que la table ASCII. Le schéma sélectionné
doit être utiliser en chiffrement et en déchiffrement.
 On peut prendre un schéma de conversion simple qui
consiste à remplacer chaque lettre par son rang dans
l'alphabet : a=00, …, z=25, A=26, …, Z=51, 0=52, …,
9=61, espace=62, *=63, :=64, !=65, ?=66, etc.
90
 Le message « How_are_you? » devient : 33 14 22 62 00
17 04 62 24 14 20 66
FONCTIONNEMENT DE RSA
Exemple 2 (suite) :
 Chiffrement d’un message : B chiffre un message avec
la clé publique de A
 B découpe son message numérique en blocs de

Mohamed Neji MAATOUK


même longueur représentant chacun un nombre
plus petit que n. Dans cet exemple n= 11023, alors
on découpe le message par blocs de 4 chiffres : M1 =
3314, M2 = 2262, M3 = 0017, M4 = 0462, M5 = 2414,
M6 = 2066. On obtient : 3314 2262 0017 0462
2414 2066
 Un bloc M est chiffré par la formule C = Me mod n
: C1 = 331411 mod 11023 = 10260, C2 = 226211 mod
11023 = 9489, C3 = 1782, C4 = 727, C5 = 10032, C6
= 2253. 91
 On obtient le message chiffré suivant : 10260 9489
1782 727 10032 2253
FONCTIONNEMENT DE RSA
Exemple 2 (suite) :
 Déchiffrement d’un message : A déchiffre le message avec sa clé
privée

Mohamed Neji MAATOUK


 A reçoit le message chiffré suivant : 10260 9489 1782 727
10032 2253
 Il déchiffre les blocs du message chiffré par la formule M = Cd
mod n. On obtient : M1 = 102605891 mod 11023 = 3314, M2 =
94895891 mod 11023 = 2262, M3 = 17825891 mod 11023 = 0017,
M4 = 7275891 mod 11023 = 0462, M5 = 100325891 mod 11023 =
2414, M6 = 22535891 mod 11023 = 2066
 Il regroupe les chiffres 2 par 2, et on obtient : 33 14 22 62 00 17
04 62 24 14 20 66
92
 Il remplace les nombres obtenus par les lettres correspondantes
pour obtenir le message en clair suivant : « How_are_you? »
LA FIABILITÉ DE RSA

•p, q, n, φ(n), e, d

Mohamed Neji MAATOUK


clé publique(n,e) est ouverte , les autres 4
sont en secret.

d est le plus important

93
LA FIABILITÉ DE RSA

Questions: est-ce que vous pouvez obtenir d, si je vous donne net e?

1.ed≡1 (mod φ(n)), donc il faut savoir e et φ(n), puis

Mohamed Neji MAATOUK


calculer d.
2.φ(n)=(p-1)(q-1), donc il faut savoir p et q, puis calculer
φ(n)
3.n=p*q, donc il faut faire la Décomposition en produit
de facteurs premiers, puis calculer p et q
Réponse: oui, si on peut décomposer n , on pourrait
obtenir d, c’est à dire on peut cracker la clé privée. (ex: 94

décomposer 3233=61*53)
LA FIABILITÉ DE RSA

Mohamed Neji MAATOUK


mais en réalité =

95
Mohamed Neji MAATOUK
96
PROBLÈME RSA

Vous aimerez peut-être aussi