Cryptographie Part 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 55

Ecole Polytechnique Sousse

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

➢ Une réponse un peu formelle : c’est la discipline qui


traite de la transmission confidentielle de données.
Cryptologie
➢ la cryptographie, qui comprend l’ensemble des
méthodes de protection d'une information.

➢ Elle sert à garantir la confidentialité d'une


information lors de communications ou de son
stockage, en utilisant le chiffrement.

➢ Mais elle a également d'autres objectifs de sécurité,


tels que l'intégrité et l'authentification,
Cryptanalyse
➢ la cryptanalyse, correspond aux méthodes utilisées
pour analyser les messages chiffrés et "casser" la
protection cryptographique de ces messages
Chiffrement
❑ Le chiffrement est la transformation d'une
information en clair en une information chiffrée,
incompréhensible, mais que l'on peut déchiffrer
avec une clé pour obtenir l'information en clair
originale.

❑ Un système de chiffrement (ou cryptosystème, ou


encore chiffre) est composé d'algorithmes de
chiffrement et déchiffrement et d'une clé de
chiffrement.

❑ Un message en clair (ou texte clair) est une


information non protégée et compréhensible par
tout le monde.
Un texte chiffré
➢ Un texte chiffré est une information incompréhensible
pour qui ne possède pas la clé de déchiffrement, mais
qu'on peut déchiffrer, retransformer en texte clair, si on
possède la clé.

➢ Un texte chiffré contient donc toutes les informations


contenues dans le texte clair pour celui qui possède la
clé, mais aucune de ces informations pour celui qui ne
la possède pas. C'est ce que l'on appelle
la confidentialité d'une information chiffrée.
Un algorithme
➢ Un algorithme de chiffrement est une fonction qui
prend en entrée le texte clair et la clé de chiffrement,
transforme le texte par des opérations, et fournit en
sortie un texte chiffré.

➢ L'algorithme de déchiffrement est la fonction inverse,


qui prend en entrée le texte chiffré et la clé de
déchiffrement, transforme ce texte par des opérations,
et fournit en sortie le texte clair d'origine.
Une clé
➢ La clé de chiffrement (ou cryptovariable) est
l'information qui permet de transformer un texte clair
en texte chiffré en utilisant un algorithme de
chiffrement.
➢ De même, la clé de déchiffrement est l'information
qui permet de transformer un texte chiffré en son texte
clair d'origine.
➢ L'espace de clé est l'ensemble des valeurs possibles de
la clé, c'est une notion importante pour la sécurité d'un
algorithme.
Ecole Polytechnique Sousse

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

➢ Deux lettres distinctes doivent être chiffrées en


deux signes distincts, sinon il y aurait ambiguïté lors
du déchiffrement.

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

➢ Ce changement de lettre tout au long du processus,


s'obtient à l'aide d'une clé, qui indique le nombre de
décalage à réaliser à ce moment.

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

➢ La plus célèbre méthode de chiffrement de l'Antiquité


est le chiffre de César, utilisé par Jules César. Cette
méthode, aussi appelée chiffrement par décalage,
consiste à décaler chaque lettre d'un message par la
lettre de l'alphabet située à une distance fixée.
Le chiffre de César
➢ Jules César a-t-il vraiment prononcé la célèbre phrase :
DOHD MDFWD HVW
➢ En fait César, pour ses communications importantes à son
armée, cryptait ses messages. Ce que l’on appelle le
chiffrement de César est un décalage des lettres : pour crypter
un message, A devient D, B devient E, C devient F,...

➢ en vert le message crypté.


➢ en rouge c’est le message en clair.
➢ Pour prendre en compte aussi les dernières lettres de
l’alphabet, il est plus judicieux de représenté l’alphabet sur un
anneau.
15
Le chiffre de César

➢ Pour déchiffrer le message de César, il suffit de décaler les


lettres dans l’autre sens, D se déchiffre en A, E en B,...
➢ Et la célèbre phrase de César est :
ALEA JACTA EST
qui traduite du latin donne « Les dés sont jetés »

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.

Soit n > 2 un entier fixé.


Définition 1.
On dit que a est congru à b modulo n, si n divise b − a.
On note alors a ≡ b (mod n).
Pour nous n = 26. Ce qui fait que 28 ≡ 2 (mod 26), car 28 − 2 est
bien divisible par 26. De même 85 = 3 × 26 + 7 donc 85 ≡ 7 (mod
26).

➢ On note Z/26Z l’ensemble de tous les éléments de Z modulo


26.
➢ Cet ensemble peut par exemple être représenté par les 26
éléments {0, 1, 2, . . . , 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

Par exemple, pour k = 3 : C3(0) = 3, C3(1) = 4. . .

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 :

en effet, si 1 a été chiffré en 4, par la fonction C3 alors D3 (4) = 4 − 3


= 1. On retrouve le nombre original. Mathématiquement, Dk est la
bijection réciproque de Ck , ce qui implique que pour tout x ∈
Z/26Z :

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.

➢ Avec le chiffrement par décalage, chaque lettre est toujours remplacée


par la même lettre, en appliquant le décalage par une distance fixée.

➢ Ainsi, la fréquence d'apparition des lettres dans un message chiffré reste


la même que pour le message clair.

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.

➢ Il reprend en partie le principe de substitution, mais en variant la


distance de décalage au cours du chiffrement en utilisant un mot ou
une phrase comme clé.

➢ Chaque lettre de la clé correspond à sa position dans l'alphabet.

➢ Pour chiffrer un message, on écrit le texte clair et on écrit la clé en


dessous, en répétant la clé autant de fois que nécessaire pour couvrir
l'ensemble du message.

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 Niveau de sécurité estimé : résistance à la cryptanalyse.

o Longueur de la clé : sécurité vs. coût de génération, transmission,


stockage

o Débit

o Taille des blocs : sécurité vs. complexité (coût d’implémentation)

o Complexité de la fonction de cryptage : sécurité vs. coût


(développement et hardware)

o Propagation des erreurs

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.

➢ Une liste non exhaustive de chiffrements par flot :


o A5/1, algorithme publié en 1994, utilisé dans les téléphones mobiles de type
GSM pour chiffrer la communication par radio entre le mobile et l'antenne-
relais la plus proche ;
o RC4, le plus répandu, conçu en 1987 par Ronald Rivest, utilisé notamment
par le protocole WEP du Wi-Fi ;
o Py, un algorithme récent de Eli Biham ;
o E0 utilisé par le protocole Bluetooth.
29
Cryptage symétrique : Cipher bloc
▪ Comment crypter un message de longueur quelconque ?
⇒ Le couper en blocs de n bits :
Problèmes
Pas la seule solution

o Modes ECB, CBC, CFB, OFB.

o Chiffrement par blocs de texte clair 64 bits (DES), (3DES).

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 :

➢ Dictionnaire de codes (Electronic Code Book, ECB)


➢ Enchaînement des blocs (Cipher Block Chaining, CBC)
➢ Chiffrement à rétroaction (Cipher Feedback, CFB)
➢ Chiffrement à rétroaction de sortie (Output Feedback, OFB)
➢ Chiffrement basé sur un compteur (CounTeR, CTR)
➢ Chiffrement avec vol de texte (CipherText Stealing, CTS)
➢ Compteur avec CBC-MAC

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)

4) Déchiffrement (0111 0010 1000 0101) =


1011 0001 0100 1010.
5) Oui la redondance sera propagé dans le ciphertext :
E(1010 1010 1010 1010) =
0101 0101 0101 0101
6) l’ordre des blocs dans ECB n’affecte pas le chiffrement/déchiffrement des blocs
7) ECB n’est pas sécurisé. Il est adéquat seulement pour le chiffrement des
messages très courts

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

2) ciphertext final est : c=0010 0110 0100 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

4) m = 1011 0001 0100 1010


40
Cryptage symétrique CBC (Cipher Block Chaining)
5) La redondance ne sera pas propagée :

E(1011 1011 1011 1011) = 0010 0011 0001 0101

6) si l’odre de blocs de ciphertext change ou les blocs de ciphertext sont


remplacés par d’autres, alors le décryptage devient impossible. Ceci est un
avantage de CBC par rapport ECB

7) sécurité amélioré parce que plus de confusion

8) CBC peut être approprié pour le chiffrement de long messages.

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.

◼Sélection de 24 bits de chaque segment.

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

Vous aimerez peut-être aussi