Cryptographie Part 1
Cryptographie Part 1
Cryptographie Part 1
AU : 2021-2022
Cryptologie
➢ La cryptologie est la science du secret (du
grec kruptos qui signifie "caché"). Elle se compose de
2 disciplines :
❑ Cryptographie
❑ Cryptanalyse
AU : 2021-2022
Chiffrements anciens
➢ Le chiffrement par transposition agit sur le message
en déplaçant ses lettres, i.e. par une permutation sur
les positions des lettres du message.
Chiffrements anciens
➢ Le chiffrement par substitution agit sur chaque lettre
du message par une permutation de l’alphabet A.
•carré de Polybe
•chiffre de Delastelle
•chiffre des Templiers
•chiffre de PigPen
•Chiffrement par décalage (chiffre de César)
La substitution monoalphabétique
➢ Elle consiste à remplacer systématiquement dans le
message clair une lettre donnée de l'alphabet par
un signe donné (qui peut être simplement une
autre lettre).
❑ carré de Polybe
❑ chiffre de Delastelle
❑ chiffre des Templiers
❑ chiffre de PigPen
❑ Chiffrement par décalage (chiffre de César)
La Substitution polyalphabétique
➢ consiste à substituer une lettre du message en clair,
par une autre choisie en fonction d'un état du
cryptosystème, et non plus de manière fixe comme
pour la monosubstitution.
❑ chiffre de Vigenère
❑ chiffre de Hill
❑ Enigma
Substitution monoalphabétique : César
➢ La cryptologie est utilisée depuis l'Antiquité,
principalement dans le domaine militaire, pour éviter
que les informations sur une armée ou sur un plan
d'attaque ne tombent dans les mains de l'ennemi.
16
Le chiffre de César
Il est plus facile de manipuler des nombres que des lettres, Nous
associons à chacune des 26 lettres de A à Z un nombre de 0 à 25.
17
Le chiffre de César: chiffrement
Le chiffrement de César est simplement une addition dans
Z/26Z! Fixons un entier k qui est le décalage (par exemple k = 3
dans l’exemple de César ci-dessus) et définissons la fonction de
chiffrement de César de décalage k qui va de l’ensemble Z/26Z
dans lui-même
18
Le chiffre de César: déchiffrement
Pour déchiffrer, rien de plus simple ! Il suffit d’aller dans l’autre
sens, c’est-à-dire ici de soustraire. La fonction de
déchiffrement de César de décalage k est :
19
Le chiffre de César: Exemple
➢ Alice veut envoyer des messages secrets à Bruno. Ils se sont d’abord mis
d’accord sur une clé secrète k, par exemple k = 11. Alice veut envoyer le
message "COUCOU" à Bruno.
➢ Elle transforme "COUCOU en "2 14 20 2 14 20".
➢ Elle applique la fonction de chiffrement C11(x) = x + 11 à chacun des
nombres : "13 25 5 13 25 5" ce qui correspond au mot crypté "NZFNZF".
Elle transmet le mot crypté à Bruno, qui selon le même principe
applique la fonction de déchiffrement D11(x) = x − 11
20
Le chiffre de César: Attaque brute force
➢ Il est clair que ce chiffrement de César est d’une sécurité très faible.
➢ Si Alice envoie un message secret à Bruno et que Chloé intercepte ce
message, il sera facile pour Chloé de le décrypter même si elle ne connaît
pas la clé secrète k.
➢ L’attaque la plus simple pour Chloé est de tester ce que donne chacune
des 26 combinaisons possibles et de reconnaître parmi ces combinaisons
laquelle donne un message compréhensible
21
César: Attaque par analyse fréquentielle
➢ Dans la langue française, comme dans toutes les langues, certaines
lettres sont plus fréquentes que d'autres.
➢ Le E par exemple est la lettre la plus courante, suivie par le S, alors que le
W et le K sont les moins courantes.
22
César: Attaque par analyse fréquentielle
➢ Vous pouvez ainsi déduire que les lettres les plus fréquentes
correspondent aux lettres les plus fréquentes de la langue française.
➢ Par exemple si le V est la lettre la plus fréquente dans le texte chiffré,
vous pouvez déduire que la lettre E est permutée par la lettre V, etc.
23
Le chiffre de Vigenère
➢ Un autre algorithme célèbre est le chiffre de Vigenère, inventé au XVIe
siècle.
24
Le chiffre de Vigenère
➢ Par conséquent : le chiffrement consiste à additionner chaque lettre du
message avec la lettre de la clé en dessous, modulo 26 ;
➢ le déchiffrement consiste à soustraire chaque lettre du message chiffré
avec la lettre de la clé en dessous, modulo 26.
25
Le chiffre de Vigenère
➢ Par exemple, avec la clé "RABELAIS" et le message clair suivant on
obtient le texte chiffré :
26
Vigenère: Un algorithme peu résistant
➢ Cet algorithme a résisté à la cryptanalyse jusqu'au XVIIIe siècle, mais a
fini par être cassé avec la méthode suivante :
▪ Supposez d'abord que vous connaissez la longueur de la clé.
▪ Découpez le texte en parties du même nombre de lettres que la clé.
La première lettre de chaque partie est toujours chiffrée avec la
même lettre, la première lettre de la clé.
▪ Vous pouvez donc réaliser une analyse fréquentielle, comme pour le
chiffre de César, en observant que la lettre la plus courante
correspond à la lettre E suivie de la lettre S, etc. Cela vous donne la
première lettre de la clé.
▪ Faites de même avec la 2e lettre, et ainsi de suite pour retrouver
toutes les lettres de la clé et déchiffrer entièrement le message.
27
Cryptage symétrique : Critères d’efficacité
▪ Les critères d’efficacité à prendre en compte sont :
o Débit
28
Cryptage symétrique : Stream cipher
➢ Le chiffrement de flux, chiffrement par flot ou chiffrement en continu (en
anglais stream cipher)
➢ Un chiffrement par flot arrive à traiter les données de longueur quelconque
et n'a pas besoin de les découper.
o RC2 (128 bits), Blowfish (128bits, jusqu'à 448 bits), AES (128, 192, 256
bits), IDEA (128 bits).
30
Mode opératoire de chiffrement symétrique
Plusieurs modes existent, certains sont plus vulnérables que d'autres :
31
EBC (Electronic codebook)
Le message à chiffrer est subdivisé en plusieurs blocs qui sont chiffrés
séparément les uns après les autres.
Ce mode est pour ces raisons fortement déconseillé dans toute application
cryptographique.
Le seul avantage qu'il peut procurer est un accès rapide à une zone
quelconque du texte chiffré et la possibilité de déchiffrer une partie
32
seulement des données.
EBC (Electronic codebook)
1) décomposer le plaintext en bloc de taille approprié. Faire du bourrage avec des zeros
pour avoir des bloc de même taille
2) Appliquer le mode ECB lors du chiffrement des blocs du plaintext
3) Donner le ciphertext final
4) Appliquer le déchiffrement et vérifier avec le message original
5) Considérer un plaintext formé par les mêmes blocs 1010, cette redondance est-elle
propagé dans le ciphertext ?
6) Si l’ordre des blocs des ciphertexts est modifié ? le décryptage de chaque bloc est il
possible ?
7) Que pensiez vous de la securité de ECB et dans quel application est il approprié ?
33
EBC (Electronic codebook)
chiffrement=E(plaintext)
1) bourrage avec un seul 0 pour avoir des blocs de taille n=4.
m = 1011 0001 0100 1010
m1=1011 ; m2= 0001 ; m3 = 0100 ; m4 = 1010
2) Les blocks sont chiffrés séparément.
On obtient c1=E(m1)=0111 ; c2=E(m2)=0010 ; c3=E(m3)= 1000 ;
c4=E(m4)=0101
3) D’où le ciphertext final est :
C= 0111 0010 1000 0101 34
EBC (Electronic codebook)
35
EBC (Electronic codebook)
JOHN__105000
JACK__500000
Le chiffrement sur le premier message donne ceci :
JO|HN|__|10|50|00
Q9|2D|FP|VX|C9|IO
Et sur le deuxième message, on obtient :
JA|CK|__|50|00|00
LD|AS|FP|C9|IO|IO
On constate que des paires de caractères apparaissent dans les deux messages
chiffrés, il en va de même dans les messages en clair :
Q9|2D|FP|VX|C9|IO
LD|AS|FP|C9|IO|IO
En partant du principe que John connait son salaire, il pourrait deviner le salaire de
Jack car la séquence "C9" correspond à "50" et "IO" à "00". John en déduit que le
salaire de Jack, chiffré en « C9IOIO » correspond à « 500000 ».
36
CBC (Cipher Block Chaining)
➢ Le mode de chiffrement avec chaînage de blocs, en anglais "Cipher
Block Chaining" (CBC), offre une solution à la plupart des problèmes du
mode ECB.
➢ Plus précisément, l’opérateur binaire XOR est appliqué entre le bloc
actuel de texte en clair et le bloc précédent de texte chiffré et on
applique ensuite l’algorithme de chiffrement au résultat de cette
opération.
➢ Pour le tout premier bloc, un bloc ayant un contenu aléatoire, appelé
vecteur d’initialisation (initialization vector), est généré et utilisé pour
l’application de l’opération XOR. Ainsi, chaque bloc chiffré ne dépend
non seulement du bloc de texte en clair correspondant, mais
également de tous les blocs chiffrés qui le précèdent.
37
CBC (Cipher Block Chaining)
Dans ce mode, on applique sur chaque bloc un ‘OU exclusif’ avec le chiffrement du
bloc précédent avant qu’il soit lui-même chiffré. De plus, afin de rendre chaque
message unique, un vecteur d'initialisation (IV) est utilisé.
38
CBC (Cipher Block Chaining)
On donne IV=1010 = C0
1) décomposer le plaintext en bloc de taille approprié. Faire du bourrage avec des zéros
pour avoir des bloc de même taille
2) Appliquer le mode CCB lors du chiffrement des blocs du plaintext
3) Donner le ciphertext final
4) Appliquer le déchiffrement et vérifier avec le message original
5) Considérer un plaintext formé par les mêmes blocs 1010, cette redondance est-elle
propagé dans le ciphertext ?
6) Si l’ordre des blocs des ciphertexts est modifié ? le décryptage de chaque bloc est il
possible ?
7) Que pensiez vous de la securité de CBC et dans quel application est il approprié ?
8) Dire quel application CBC est approprié 39
CBC (Cipher Block Chaining)
1) Soit le plaintext m : m = 1011 0001 0100 1010
On donne IV=1010
c0=IV=1010 ;
c1=E(c0⊕ m1)=E(1010 ⊕ 1011)= E(0001) = 0010
c2=E(c1⊕ m2)=E(0011) = 0110
c3=E(c2⊕ m3)=E(0010) = 0100
c4=E(c3⊕ m4)=E(1110) = 1101
3) Decryptage :
m1=c0⊕ D(c1) =1010 ⊕ D(0010)= 1010 ⊕ 0001 = 1011
m2=c1⊕ D(c2) =0010 ⊕ D(0110)= 0010 ⊕ 0011 = 0001
m3=c2⊕ D(c3) =0110 ⊕ D(0100)= 0110 ⊕ 0010 = 0100
m4=c3⊕ D(c4) =0100 ⊕ D(1101)= 0100 ⊕ 1110 = 1010
41
CBC (Cipher Block Chaining)
➢ Le rôle du vecteur d’initialisation est d’empêcher que si deux textes en
clair débutent de la même façon, les textes chiffrés correspondants le
font différent.
➢ Il n’est plus possible pour un espion d’apprendre la moindre
information concernant le texte en clair à partir du texte chiffré. Il n’est
pas nécessaire non plus de tenir secret le vecteur initialisation.
Généralement on le transmet en clair avec le texte chiffré également.
➢ Il n’est pas obligatoire de le choisir aléatoirement; il peut aussi être un
numéro d’ordre qui est augmenté après chaque message.
➢ La seule chose importante est qu’il doit être différent pour chaque
message chiffré avec la même clé. Grâce au vecteur d’initialisation,
même un bloc de texte en clair identique donnera un message chiffré
.
42
CFB (Cipher Feedback Mode)
43
OFB (Output feedback )
44
Cryptage symétrique : Data Encryption Standard
(DES)
DES fonctionne en trois étapes :
permutation initiale et fixe d'un bloc de 64 bits de texte
le résultat est soumis à 16 itérations d'une transformation, dépendent
à chaque tour d'une autre clé partielle de 48 bits.
Cette clé de tour intermédiaire est calculée à partir de la clé initiale de
l'utilisateur
Lors de chaque tour, le bloc de 64 bits est découpé en deux blocs de
32 bits, et ces blocs sont échangés l'un avec l'autre selon un schéma de
Feistel.
Le bloc de 32 bits ayant le poids le plus fort (celui qui s'étend du bit
32 au bit 64) subira une transformation ;
le résultat du dernier tour est transformé par la fonction inverse de la
permutation initiale.
DES utilise huit tables de substitution (les S-Boxes)
45
Cryptage symétrique : DES principe de
fonctionnement avancé
46
Cryptage symétrique : DES principe de
fonctionnement avancé
47
Cryptage symétrique : (étape 2 génération des sous
clés)
Les sous-clés(Round keys) de taille 48 bits sont générées à partir de la clé
principale de 56 bits après le passage par PC-2,
Si la taille de clé principale 64 on peut utiliser PC1 pour obtenir une clé de 56 bits
◼Diviser la clé de 56 bits en deux segments.
◼Rotation de chaque segment par un ou deux bits à droite.
48
Cryptage symétrique : (étape 2 génération des sous
clés)
le nombre de décalage circulaires à gauche à effectuer sur ces deux blocs de 28 bits pour
chaque itération. On décale de un bit pour les itérations selon la liste de decalage
nombre de décalage à gauche pour les 16 itérations (LSi) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1122222212 2 2 2 2 2 1
Pour la première itération, nous obtenons donc après 1 décalage à gauche de chacune des
deux parties :
1100 0000 0000 0000 0000 0000 0000 devient 1000 0000 0000 0000 0000 0000 0001
49
Cryptage symétrique : (étape 1 et 3 permutation :
cryptage)
50
Cryptage symétrique : (étape 1 et 3 transformation
: cryptage)
51
Cryptage symétrique : (étape 1 et 3 expansion :
cryptage)
52
Cryptage symétrique : (étape 1 et 3 expansion et
substitutions : cryptage)
53
Cryptage symétrique :limite DES
Les progrès en cryptanalyse et en électronique a fait que la longueur 56 des clés
est devenu un problème pour DES
➔La taille de l’ensemble : {0,1}56 permet de retrouver la clé à partir d’un texte
clair connu en faisant du brute force.
◼ 3-DES (triple DES) a été lancé comme un nouveau standard en 1999.
◼Utilise 2 ou 3 clés.
◼Niveau de sécurité satisfaisant.
◼Permet de continue l’utilisation des boites S-Box et P-Box matériel et logiciel,
AES le plus performant
L'algorithme AES prend en entrée un bloc de 128 bits (16 octets), la clé fait 128, 192 ou
256 bits
54
Cryptage symétrique
• Limitation: Pas d'intégrité et d'identification de l'auteur
• La clé partagé et transmit dans le même canal que Cédric
• Si Alice, Bob et Cédric partage le même lien de communication alors ils
partagent la même clé de chiffrement symétrique.
55