Vous êtes sur la page 1sur 58

Principe Généraux de la

cryptographie
Institut Africain d’Informatique

Par : Brice ONDJIBOU


2 Définition

La cryptographie est un Art qui permet de convertir


des informations "en clair" en informations codées
(non compréhensibles), puis, à partir de ces
informations codées, de restituer les informations
originales.

15/01/2021
3 Cryptologie

15/01/2021
But de la cryptographie
4

La cryptographie permet de résoudre quatre problèmes:

o La confidentialité;

o L'authentification;

o L'intégrité;

o La non répudiation.
15/01/2021
5 Techniques de bases :

La base de la cryptologie est constituée d’algorithme


(méthodes) de chiffrement.

Ces algorithmes doivent rendre inaccessible le message aux


non destinataires.

Les 2 types de chiffrement :


o Symétriques, à clef sécrète ;
o Asymétriques, à clef publique.
15/01/2021
6
Types de classification
On peut classifier les algorithmes de cryptage selon :
Le nombre de clés utilisés :
oUne seul clé;
oDeux clés.
Type d’opération utilisée :
oSubstitution;
otransposition;
La façon dont le plaintext est traité
oBlock;
15/01/2021

oFlux.
7 NOTA :
Pour résoudre les problèmes de cryptographie, les
algorithmes de chiffrement ne suffisent pas.

On fait appel à d’autres techniques :

o Le générateurs d’empreintes ;
o Les générateurs de nombres aléatoires.

15/01/2021
8
Terminologie basique (1/3):

15/01/2021
9
Terminologie basique (2/3):

plaintext : texte clair (c'est le message à protéger.)

ciphertext : texte chiffré (résultat du chiffrement du plaintext.)

chiffrement ou cryptage : le processus de conversion du


plaintext vers le ciphertext.

déchiffrement ou décryptage : le processus de conversion du


ciphertext vers le plaintext. 15/01/2021
10
Terminologie basique (3/3):
cryptographie : étude des méthodes de cryptage et
décryptage des messages
cryptanalyse : étude des techniques pour casser les
algorithmes de chiffrement

Cryptologie : la cryptographie et la cryptanalyse

algorithme de cryptage : opérations faites sur le plaintext

algorithme de décryptage : opérations faites sur le ciphertext


15/01/2021
11 Cryptographie symétrique

15/01/2021
12 Cryptographie asymétrique

15/01/2021
13
Fonctions cryptographiques

15/01/2021
14
Chiffrement par substitution
Un chiffrement par substitution est un algorithme par lequel
chaque
caractère du plaintext est substitué par un autre.

4 types de chiffrement par substitution:


o Substitution simple;
o Substitution homophonique;
o Substitution polygramique;
o Substitution polyalphabétique.
15/01/2021
15
Chiffrement par substitution
Substitution mono alphabétique (substitution simple): remplace chaque
lettre du message par une autre lettre de l'alphabet. (chiffrement césar,
Pigpen)

Substitution poly-alphabétique : utilise une suite de chiffres mono


alphabétique réutilisée périodiquement. (chiffre de Vigenere)

Substitution homophonique : fait correspondre à chaque lettre du message


en clair un ensemble possible d'autres caractères.

Substitution de polygrammes : substitue un groupe de caractères dans le


message par un autre groupe de caractères. (système de Hill) 15/01/2021
16
Chiffrement césar

En 58 avant Jésus-Christ, Jules César se lançait à la conquête


de la Gaule .

Pour communiquer avec ses généraux, il imagina un procédé


de chiffrement qui consistait à remplacer les lettres latines du
message à crypter par des lettres grecques.

15/01/2021
17
Chiffrement césar
Coder « Institut IAI Libreville » avec un décalage de 5.
Pour coder I, prendre l'alphabet et regarder 5 lettres plus loin. Donc I se
code N, …..

Une autre manière de coder: noter A=0, B=1, ..., Z=25, ajouter le décalage
et conserver le résultat modulo 26 (longueur de l'alphabet) pour récupérer
le texte codé.
Exemple : DCODEX
Pour coder D (qui vaut 3), ajouter le décalage 3 : 3+3=6 qui est
G, …..
Pour coder X=23, 23+3=26 et 26 modulo 26 = 0, comme 0=A, X 15/01/2021

est codé A, etc.


18
Attention: Modulo?
Le modulo est le reste de la division entière.

On écrit a mod n pour représenter le reste de la division


de a par n.

9 modulo 4 = 1 (9 divisé par 4 = 2 et un reste de 1),

9 modulo 3 = 0 (9 divisé par 3 = 3 et un reste de 0).

15/01/2021
19
Chiffrement césar

15/01/2021
20
Limites du chiffrement de cesar

Il n'existe que 26 façons différentes de crypter un message :


puisqu'on ne dispose que de 26 lettres, il n'y a que 26
décalages possibles. Dès lors, des attaques exhaustives
(tester toutes les décalages un à un) ne demanderaient
que très peu de temps.

15/01/2021
21 Attaque statistique ou Les fréquences d'AI Kindi
La principale faiblesse du chiffrement simple est qu’une même lettre
est toujours chiffrée de la même façon.

Dans les textes longs, les lettres n’apparaissent pas avec la même
fréquence. Ces fréquences varient suivant la langue utilisée.

En français, les lettres les plus rencontrées sont dans l’ordre :


ESAINTRULODCPMVQGFHBXJYZKW

15/01/2021
22 méthode Attaque statistique
Dans le texte crypté, on cherche la lettre qui apparaît le plus, et si le
texte est assez long cela devrait être le chiffrement du E,

La lettre qui apparaît ensuite dans l’étude des fréquences devrait être
le chiffrement du S, puis le chiffrement du A...

On obtient des morceaux de texte clair sous la forme d’une texte à


trous et il faut ensuite deviner les lettres manquantes.

Déchiffrons la phrase : LHLZ HFQ BC HFFPZ WH YOUPFH MUPZH

15/01/2021
23 méthode Attaque statistique
On compte les apparitions des lettres : H:6 F:4 P:3 Z:3
On suppose donc que le H crypte la lettre E, le F la lettre S, ce qui donne
LHLZ HFQ BC HFFPZ WH YOUPFH MUPZH
*E** ES* ** ESS** *E ***SE ****E

D’après les statistiques P et Z devraient se décrypter en A et I (ou I et A).


Le quatrième mot "HFFPZ", pour l’instant décrypté en "ESS**", se complète donc en
"ESSAI" ou "ESSIA". La première solution semble correcte ! Ainsi P crypte
A, et Z crypte I. La phrase est maintenant : *E*I ES* ** ESSAI *E ***ASE **AIE
En réfléchissant un petit peu, on décrypte le message :
CECI EST UN ESSAI DE PHRASE VRAIE

15/01/2021
TD: Un exemple de décryptage en utilisant Les fréquences d'AI Kindi
24
Montrer que le Texte en Rouge est le chiffré du texte en Blue

TIXIV KYWXEZ PINIYRI-HMVMGLPIX PETER GUSTAV LEJEUNE-DIRICHLET


IWX RI PI 13 ITZVMIV 1805 EST NÉ LE 13 FÉVRIER 1805
A DUREN, UNE VILLE D' ALLEMAGNE
E HYVIR, YRI ZMPPI H'EPPIQEKRI
SITUÉE A Ml-CHEMIN
WMXYII E QM-GLIQMR ENTRE AACHEN ET COLOGNE.
IRXVI EEGLIR IX GSPSKRI. WSR SON PÈRE Y ETAIT RECEVEUR
DES POSTES. DIRICHLET EST UN
TIVI C IXEMX VIGIZIYV HIW
ÉLEVE BRILLANT, QUI ACHÈVE
TSWXIW. HMVMGLPIX IWX YR SES ÉTUDES SECONDAIRES A 16 ANS.
IPIZI FVMPPERX, UYM EGLIZI
WIW IXYHIW WIGSRHEMVIW E
16 ERW.

15/01/2021
25

Le code de César étant cassable grâce à la méthode des


fréquences d' Al Kindi, Blaise de Vigenère (1523-1596) l'a
amélioré au moyen d'une clef.

15/01/2021
26
Chiffre de Vigénère
Chiffrer la phrase : “LE CHIFFRE DE VIGENERE” avec la clé : “BACHELIERS”.
Sachant que A=0, B=1, C=2, D=3, E=5, L=11, R=17….Z=25
plaintext L E C H I F F R E D E V I G E N E R E
clef B A C H E L I E R S B A C H E L I E R
Pour avoir décalage, voir clef dans A=0, B=1, …..

decalage 1 0 2 7 4 1 8 4 1 1 1 0 2 7 4 1 8 4 1
1 7 8 1 7
Pour avoir le chiffré, il suffit de faire: clair + décalage, exemple L+1=M, E+0=E, C+2=

ciphertext M E E O M Q

15/01/2021
27
Chiffre de Vigénère

TD: Réaliser chiffrement de vigénere

Chiffrer la phrase : “LICENCE INFORMATIQUE A UPSA”


avec la clé : “BARAKA”.
Sachant que A=1, B=2, C=3, D=4, E=5, …..

15/01/2021
28
Limites du chiffrement de Vigenere

Lorsque les messages sont beaucoup plus longs que la clef, il est
possible de repérer la longueur de la clef et d'utiliser pour chaque
séquence de la longueur de la clef la méthode consistant à
calculer la fréquence d'apparition des lettres, permettant de
déterminer un à un les caractères de la clef...

Pour éviter ce problème, une solution consiste à utiliser une clef


dont la taille est proche de celle du texte afin de rendre impossible
une étude statistique du texte crypté.

15/01/2021
système de Hill
29

15/01/2021
système de Hill
30

Le message chiffré sera donc: FGXGE DSPGV


15/01/2021
31
Transposition

On chiffre le message en permutant l'ordre des lettres du message


suivant des règles bien définies.

o Transposition simple par colonnes;

o Transposition complexe par colonnes;

o Transposition par carré polybique.

15/01/2021
32
Transposition simple par colonnes.

on écrit le message horizontalement dans une matrice prédéfinie, et on


trouve le texte à chiffrer en lisant la grille verticalement.

Le destinataire légal pour décrypter le message réalise le procédé


inverse.

Exemple: Chiffré le texte suivant « Tout chemin mène à IAI siège » en


utilisant une matrice [6,4]

15/01/2021
33
Transposition simple par colonnes.
T O U T

C H E M

I N M E

N E A I PLAINTEXT: Tout chemin mène à IAI siège

A I S I Ciphertext: TCINA EOHNE IGUEM ASETM EII

E G E

15/01/2021
34
Transposition complexe par colonnes.

Une clé est utilisée pour dériver une séquence de chiffres commençant
à 1 et finissant au nombre de lettres composant la clé. Cette séquence
est obtenue en numérotant les lettres du mot clé en partant de la
gauche vers la droite et en donnant l’ordre d’apparition dans
l’alphabet. Une fois que le séquence de transposition est obtenue, on
chiffre en écrivant d’abord le message par lignes dans un rectangle,
puis on lit le texte par colonnes en suivant l’ordre déterminé par la
séquence.

Exemple: Chiffré le texte suivant « cryptographie est passionnante » en


utilisant mot clef : JUNIOR

15/01/2021
35
Transposition simple par colonnes.

Séquence de chiffre à partir de clef JUNIOR 2 6 3 1 4 5


en allant de R vers J dans ordre apparition
C R Y P T O
alphabétique: I=1, J=2, N=3, O=4, R=5, U=6
Donc, la clef JUNIOR = 263145 G R A P H I

E E S T P A

S S I O N N
Message clair : cryptographie est passionnante
A N T E
Message chiffré: PPTOE CGESA YASIT THPN OIAN …..

15/01/2021
36 conclusion

Par la classe ?

15/01/2021
Mode de cryptage par bloc
37

Le mode de chiffrement correspond à la manière dont on va

utiliser un algorithme de chiffrement par bloc.

Ce mode de chiffrement consiste par exemple à rajouter de la

contre-réaction entre l'entrée et la sortie de l'algorithme afin de lui

rajouter des caractéristiques bien précises.


15/01/2021
Mode de cryptage par bloc
38

Le mode de chiffrement correspond à la manière dont on va utiliser un


algorithme de chiffrement donné.
o Carnet de Codage électronique: ECB
o Mode de Chiffrement avec chaînage de blocs: CBC
o Mode de chiffrement à rétroaction: CFB
o Mode de rétroaction de sortie: OFB
o CTR: CounTeR (basé sur un compteur)

Il y a ceux qui sont orientés bloc et ceux qui sont orienté flux ces modes
peuvent être appliqués sur n’importe quel algorithme de bloc
15/01/2021
39
Mode ECB

Le plaintext M est divisé en blocs M1, M2, M3 ….Mn de même taille


n et chaque bloc Mi est chiffré en Ci.

Pour chiffrer: C[n] = e(M[n]); pour n ≥ 1:

Pour déchiffrer: M[n] = d(C[n]); pour n ≥ 1:

15/01/2021
40

15/01/2021
Limites ECB
41

Avantages Limites

chaque bloc de texte en clair est une erreur dans Mi n’affecte que le
chiffré indépendamment des Ci correspondant
autres

on peut donc chiffrer les blocs La perte d’un bloc Ci n’affecte


dans n’importe quel ordre qu’un bloc de M

La procédure ECB n’est jamais utilisée en pratique. 15/01/2021


TD sur ECB
42

Chiffrer le message : « BONJOUR » avec la fonction de chiffrement


(permutation) suivante :

En utilisant le mode chiffrement par bloc ECB.


NB : On considérera les codes ASCII des caractères (codage sur l
octet) -
A : 65 ; B :66 ; etc...

15/01/2021
TD sur ECB
43

Sachant que: m = 1111000101 et Longueur de blocs: 4

1 2 3 4
Fonction de chiffrement : π = 2 3 1 4

1/ Trouver le plaintext

2/ Donner le ciphertext

3/ Que constatez-vous?

15/01/2021
Mode CBC
44

Ce mode consiste à effectuer l'opération XOR entre le bloc clair


actuel et le bloc chiffré précédent avant de chiffrer le bloc actuel.

Pour le premier bloc, il n'y a pas de bloc précédent.

On effectue l'opération XOR avec une variable aléatoire appelée


vecteur d'initialisation (IV), et on transmet l'IV en clair avec le texte
chiffré.

A été introduit pour qu’un bloc ne soit pas codé de la même manière.
15/01/2021
CBC
45

Chiffrement:
C[1] = e(M[1] ⊕ VI)
C[n] = e(M[n] ⊕ C[n − 1]); pour n > 1:

Déchiffrement:
M[1] = d(C[1]) ⊕ VI
M[n] = d(C[n]) ⊕ C[n − 1]; pour n > 1:

15/01/2021
46

15/01/2021
Limites & avantages CBC
47

Avantages Limites

rôle du vecteur d’initialisation est une erreur dans Mi affecte tous les
d’empêcher que si deux textes en ci suivants mais ne se retrouve
clair débutent de la même façon, que dans le mi correspondant.
les textes chiffrés correspondants le
font également.
Grâce au vecteur d’initialisation, une erreur dans ci affecte un bloc
même un bloc de texte en clair entier de mi et le bit
identique donnera un message correspondant dans Mi+1.
chiffré différent.

15/01/2021
48
TD sur CBC
Supposons qu’on utilise la permutation simple avec

1 2 3 4
𝜋=
2 3 4 1

comme algorithme de chiffrement et qu’on veuille chiffrer le texte en


clair M = 101100010100101 qui produit les 4 blocs avec pour vecteur
d’initialisation VI = 1010

chiffrer en utilisant le mode CBC.

15/01/2021
49
TD sur ECB et CBC
Soit l’alphabet suivant composé de 32 caractères :
{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,+,-,*,/,%,£}.

Chiffrer le message : MAEVAESTAUCINEMA avec la fonction de chiffrement :

1 2 3 4 5
𝜋=
2 1 3 5 4

1, En utilisant le chiffrement par bloc ECB.


2. En utilisant le mode CBC en considérant le vecteur d’initialisation :
(11010).

15/01/2021
50
Fonction OU exclusif
Table de vérité de XOR
A B R=A⊕B
0 0 0
0 1 1
1 0 1
1 1 0

15/01/2021
Mode CFB
51

A été introduit pour ne pas avoir a calculer la fonction inverse, D, de la


fonction de chiffrage E..

On commence par choisir un bloc initial M0, choisi suivant les mêmes
principes que le blocs C0 en mode CBC.

Chaque bloc clair Mi est XORé avec le crypté du bloc de sortie


précèdent, Ci−1

15/01/2021
Mode CFB
52

Pour chiffrer un texte en mode CFB :


C0 = E(M0)
C1 = M1 ⊕ E(C0)
C2 = M2 ⊕ E(C1)
……………………..

Ci = Mi ⊕ E(Ci−1)

L’interet est que le déchiffrement ne nécessite pas de calculer Dk, en

effet: Mi = Ci ⊕ E(Ci−1)

15/01/2021
53

15/01/2021
Mode OFB
54

variante de CFB qui permet d’avoir un cryptage et un décryptage


totalement symétrique:
Zi = E(Zi−1); Ci = Mi⊕ Zi

utilisée par exemple pour les cryptages satellites et se déchiffre Par


Zi = E(Zi−1); Mi = Ci⊕ Zi

15/01/2021
55

15/01/2021
Mode CTR (Counter)
56

Dans ce mode, le flux de clé est obtenu en chiffrant les valeurs


successives d’un compteur.

Chiffrement : Ci = Mi⊕ E(T + i)

Déchiffrer: Mi = Ci⊕ E(T + i)

15/01/2021
57

15/01/2021
58 conclusion
Par la Classe:

Faire un tableau comparatif des méthodes de chiffrement

15/01/2021

Vous aimerez peut-être aussi