Académique Documents
Professionnel Documents
Culture Documents
CRYPTOGRAPHIE
ESPRIT
2023/2024
PLAN DU COURS
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)
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
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é)
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
Exemple 3 :
Exemple :
Clair : abcd efgh ijkl mnop qrst uvwx yz
Chiffré (clé) : DKVQ FIBJ WPES CXHT MYAU OLRG ZN
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
Chiffrer ce message
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
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
Solution : 25
RAIL FENCE
Solution :
M A O D I
E G N E E
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
Texte chiffré :
SSNIFAEEXTGEEHAECXRMCNIRNUXNNGDCPFEELSFERIACXEEOTFRCNXUOAILELVL 27
Clé : 7423615
Mohamed Neji MAATOUK
CRYPTOGRAPHIE MODERNE À
CLÉ SECRÈTE
28
OBJECTIF DE LA CRYPTOGRAPHIE MODERNE
31
Introduction: Chiffrement par bloc
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
Exemple:
•AES: n= 128 bits , k=128, 192, 256 bits
•3 DES: n= 64 k= , 168 bits 33
Construction: Fonction aléatoire
34
Exemple de fonction bijective
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
38
Algorithme DES : Table de substitution
(S-box)
Méthode:
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)
M K
Fonction
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
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
55
ADVANCED ENCRYPTION STANDARD (AES)
Historique :
1997 : NIST (National Institute of Standards &
Technology) lance un concours pour la standardisation d’un
56
Février 2001 : publication officielle de AES
CANDIDATS ET FINALISTES POUR AES
RIJNDAEL (AES) Joan Daemen, Vincent Rijmen
MARS IBM
RC6 RSA Laboratories
Taille de la clé (clé principale) 128 bits 192 bits 256 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
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
61
ROUNDS ET FONCTIONS
DE TRANSFORMATION
Chiffrement/Déchiffrement
AES : exemple d’une clé de
128 bits
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
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
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
68
AES
Déchiffrement : l’algorithme de déchiffrement est
différent de celui de chiffrement :
69
CHIFFREMENT PAR BLOC ET PAR FLUX
70
Chiffrement par flux en utilisant un algorithme de génération de clé
étendue
CHIFFREMENT PAR BLOC ET PAR FLUX
Déchiffrement :
Même clé pour tous les blocs
Chaque bloc est déchiffré
indépendamment des autres blocs
Déchiffrement OFB 77
COUNTER (CTR)
Un compteur est initialisé à une
certaine valeur, et incrémenté par
1 pour chaque nouveau bloc
Déchiffrement CTR 78
MÉTHODE DIFFIE-HELLMAN :
X Y = E(KBpub X = D(KBpriv
,X) ,Y)
Message chiffré
A B
84
A envoi un message confidentiel à B
UTILITÉ
Le cryptage à clé publique (asymétrique) peut
servir à :
86
ALGORITHME RSA
Etapes :
Sélectionner deux entiers premiers : p et q
Calculer n = p x q, et (n) = (p – 1) x (q – 1)
88
FONCTIONNEMENT DE RSA
Exemple 2 :
Sélection des clés RSA :
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? »,
•p, q, n, φ(n), e, d
93
LA FIABILITÉ DE RSA
décomposer 3233=61*53)
LA FIABILITÉ DE RSA
95
Mohamed Neji MAATOUK
96
PROBLÈME RSA