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