Professional Documents
Culture Documents
Cryptographie
Cryptographie
Chronologie de la Cryptographie
Symétrique
Cryptographie Âge scientifique Asymétrique
quantique
Depuis 1984
1936-1970
Antiquité
118
Terminologie
1
14/04/2023
Principes de Kerckhoffs
Les articles d'Auguste Kerckhoffs ( La cryptographie militaire , Journal des sciences militaires,
vol. IX, pp. 5 - 38, Janvier 1883, pp. 161 - 191, Février 1883) sont les précurseurs des fondements
de la cryptographie moderne.
Les règles de Kerckhoffs
les six règles de Kerckhoffs pour la conception de «cryptosystème militaire » :
1. Le système doit être matériellement, sinon mathématiquement, indéchiffrable ;
2. Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconvénient tomber entre les
mains de l'ennemi ;
3. La clé doit pouvoir en être communiquée et retenue sans le secours de notes écrites,
et être changée ou modifiée au gré des correspondants ;
4. Il faut qu'il soit applicable à la correspondance télégraphique ;
5. Il faut qu'il soit portable, et que son maniement ou son fonctionnement n'exige pas le
concours de plusieurs personnes ;
Définition
Un chiffrement par substitution est un algorithme par lequel chaque caractère du message clair
est substitué par un autre caractère dans le message chiffré .
En cryptographie classique, quatre types de chiffrement par substitution sont distingués:
Substitution simple
Substitution simple : Un caractère du message clair est substituer par un caractère unique du
message chiffré.
Cela correspond le plus souvent à une permutation des caractères de l'alphabet des messages
clairs.
Substitution homophonique
Un caractère du message clair correspond à plusieurs caractères du message chiffré.
Le principe est qu'à chaque caractère de l'alphabet des messages clairs est associé une liste
de lettre dans l'alphabet des messages chiffrés (qui est en général beaucoup plus gros que
celui pour les messages clairs), l'ensemble de ces listes formant une partition de l'alphabet des
messages chiffrés.
Par exemple on peut envoyer A vers un nombre de la liste {26; 40; 73; 58}, B vers un nombre
parmi {12; 7; 26; 41}, etc. On choisit alors soit aléatoirement, soit suivant une clé, les nombres
associés aux caractères de l'alphabet des messages clairs.
Substitution polygramique
le principe est de substituer des blocs de caractères, au lieu d'un seul caractère.
2
14/04/2023
Substitution polyalphabétique
Il s'agit d'un ensemble de substitutions simples. Suivant la position du caractère dans le message
clair, on applique une des substitutions simples. Ce sont des sortes de permutations à paramètres .
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. Pour chiffrer la lettre suivante on utilise alors le
caractère suivant de la clé et ainsi de suite. On recommence au début de la clé quand tous ses
caractères sont épuisés
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 :
Exemple
pour crypter un message, A devient D, B devient E, C devient F,...
Pour prendre en compte aussi les dernières lettres de l’alphabet, il est plus judicieux de
représenté l’alphabet sur un anneau. Ce décalage est un décalage circulaire sur les lettres de
l’alphabet.
3
14/04/2023
Chiffrer et déchiffrer
Le chiffrement de César est simplement une addition dans
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
dans lui-même :
Pour déchiffrer, 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 :
le principe du chiffrement
•Alice veut envoyer des messages secrets à Bob par exemple le mot "BONJOUR"
. Ils se sont mis d’accord sur une clé secrète k, par exemple k = 5.
Alice transforme le message "BONJOUR " en "1 14 13 9 14 20 17".
Elle applique la fonction de chiffrement
Elle transmet le mot crypté à Bob, qui selon le même principe applique la fonction de
déchiffrement
GTSOTZW BONJOUR
ALICE BONJOUR GTSOTZW BOB
1 14 13 9 14 20 17
1 14 13 9 14 20 17 6 19 18 14 19 25 22 6 19 18 14 19 25 22
4
14/04/2023
Analyse de sécurité
Combien existe-t-il de possibilités de chiffrement par la méthode de César ?
Il y a 26 fonctions différentes, k = 0,1,. .. ,25. Encore une fois, k appartient à .
Le décalage k s’appelle la clé de chiffrement, c’est l’information nécessaire pour crypter
le message.
Il y a donc 26 clés différentes et l’espace des clés est
Le chiffrement de César est d’une sécurité très faible.
L’attaque la plus simple pour Eve est de tester ce que donne chacune des 26 combinaisons
possibles et de reconnaître parmi ces combinaisons laquelle donne un message compréhensible.
Il est plus facile de manipuler des nombres que des lettres, aussi nous passons à une formulation
mathématique.
Nous associons à chacune des 26 lettres de A à Z un nombre de 0 à 25. En termes mathématiques,
nous définissons une bijection :
Exemple
Le mots "A L E A" devient "0 11 4 0"
Le chiffrement de César est un cas particulier de chiffrement mono-alphabétique
5
14/04/2023
Chiffrement mono-alphabétique
La faiblesse des codes de César et des systèmes analogues est que la fréquence des lettres est
conservée ce qui permet une cryptanalyse aisée par analyse de fréquences.
Au lieu de faire correspondre circulairement les lettres, on associe maintenant à chaque lettre
une autre lettre (sans ordre fixe ou règle générale).
Exemple :
Se basant sur la correspondance et on remplace la lettre E par la lettre X, puis la lettre T par la
lettre G, puis la lettre R par la lettre K...
Le message crypté est alors :
Analyse de sécurité
Mathématiquement, le choix d’une clé revient au choix d’une bijection de l’ensemble
{A, B, .. ., Z} vers le même ensemble {A, B,. .. , Z} .
Il y a 26! choix possibles. •Pour la lettre A , il y a 26 choix
•Pour la lettre B , il y a 25 choix
•Pour la lettre C , il y a 24 choix
………………………………………………….
………………………………………………….
Au final il y a :
………………………………………………….
26 × 25 × 24 × · · · × 2 × 1
•Pour la lettre Z , il y a 1 choix
26! choix de clés.
Si un ordinateur pouvait tester 1 000 000 de clés par seconde, il lui faudrait alors 12 millions
d’années pour tout énumérer.
6
14/04/2023
La principale faiblesse du chiffrement mono-alphabétique est qu’une même lettre est
toujours chiffrée de la même façon. Par exemple, ici E devient X.
Dans les textes longs, les lettres n’apparaissent pas avec la même fréquence. Ces fréquences
varient suivant la langue utilisée.
Par exemple, en français, les lettres les plus rencontrées sont dans l’ordre :
Le principe d’attaque
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...
Par exemple, déchiffrons la phrase :
7
14/04/2023
Le chiffrement de Vigenère
L’espace des clés du chiffrement mono-alphabétique est immense, mais le fait qu’une lettre
soit toujours cryptée de la même façon représente une trop grande faiblesse.
Le chiffrement de Vigenère remédie à ce problème. On regroupe les lettres de notre texte par
blocs
par exemple ici par blocs de longueur 4 :
les espaces sont purement indicatifs, dans la première phrase ils séparent les mots, dans la
seconde ils séparent les blocs
Si k est la longueur d’un bloc, alors on choisit une clé constituée de k nombres de 0 à 25 :
(n1, n2,. .. , nk)
Le chiffrement consiste à effectuer un chiffrement de César, dont le décalage dépend du rang de
la lettre dans le bloc :
8
14/04/2023
L’élément de base n’est plus une lettre mais un bloc, c’est-à-dire un regroupement de lettres.
La fonction de chiffrement associe à un bloc de longueur k, un autre bloc de longueur k,
9
14/04/2023
Le chiffre de Playfair est un chiffrement par substitution polygraphique inventé par l'ingénieur
anglais Charles Wheatstone en 1854 et perfectionné par son collègue Baron Playfair. Il est
nommé d'après ce dernier.
Le chiffre de Playfair utilise une matrice 5x5 contenant les lettres de l'alphabet (la lettre J et I
dans la même case) pour chiffrer les messages. Pour créer cette matrice, on commence par
écrire une clé secrète (un mot ou une phrase) sans répétition de lettres, puis on complète les
cases vides avec les lettres de l'alphabet, en évitant la lettre J.
Pour chiffrer un message, on divise celui-ci en paires de lettres et on applique une série de
règles pour remplacer chaque paire par une autre paire de lettres.
Méthode de chiffrement
•Si les deux lettres sont sur les coins d'un rectangle, alors les lettres chiffrées sont sur les
deux autres coins. La première des deux lettres chiffrées est sur la même ligne que la
première lettre claire.
•Si deux lettres sont sur la même ligne, on prend les deux lettres qui les suivent immédiatement
à leur droite
•Si deux lettres sont sur la même colonne, on prend les deux lettres qui les suivent
immédiatement en dessous
•Si le bigramme est composé de deux fois la même lettre, on insère une nulle (usuellement le X)
entre les deux pour éliminer ce doublon.
Déchiffrement
Obtenir la matrice de Playfair ,
Recomposer le message original : En appliquant les règles de déchiffrement pour chaque paire
de lettres, on peut recomposer le message original en utilisant les lettres retrouvées. Si une lettre
fictive a été ajoutée à la fin du message chiffré, elle doit être supprimée du message déchiffré
final.
10
14/04/2023
Un secret parfait
L’inconvénient des chiffrements précédents est qu’une même lettre est régulièrement
chiffrée de la même façon, car la correspondance d’un alphabet à un ou plusieurs autres est
fixée une fois pour toutes, ce qui fait qu’une attaque statistique est toujours possible
Nous allons voir qu’en changeant la correspondance à chaque lettre, il est possible de créer
un chiffrement parfait !
Pour deux entiers a et b tels que a + b = 50. Que vaut a ?
Un secret parfait
La clé doit composée d’entiers de 0 à 25, tirés au hasard.
Par exemple C : [4, 18, 2, 0, 21, 12, 18]
Elle crypte le message par le décalage de César
ATTAQUE
Alice obtient le message chiffré:
A E Q L
T L U G ELVALGW
T V
E W
A A
Pour le décrypter, Bob, qui connaît la clé, n’a qu’à faire le décalage dans l’autre sens.
On identifie A avec 0, B avec 1, ..., Z avec 25.
Alors le message crypté X est juste la "somme" du message M avec la
clé secrète C, la somme s’effectuant lettre à lettre, terme à terme,
modulo 26.
11
14/04/2023
Un secret parfait
Bob reçoit X et connaît C, il effectue donc X - C = M
12
14/04/2023
Le principe de fonctionnement
Nous symbolisons l’élément de base de la machine Enigma par deux anneaux :
Un anneau extérieur contenant l’alphabet "ABCDE..." symbolisant le clavier de saisie des
messages. Cet anneau est fixe .
Un anneau intérieur contenant un alphabet dans le désordre
Exemple:
Le chiffrement du mot "BAC"
Etape 1: Choix du position initiale
L’opérateur tourne l’anneau intérieur de sorte que le A extérieur et fixe soit en face du G
intérieur (et donc B en face de W).
13
14/04/2023
Etape 3: Rotation
L’anneau intérieur tourne de 1/26ème de tour, maintenant le A extérieur et fixe est en face
du W, le B en face du Q,..
Etape 5: Rotation
L’anneau intérieur tourne de 1/26ème de tour, maintenant le A extérieur et fixe est en face du
Q, le B en face du R, le C en face du U,...
14
14/04/2023
Pour une meilleure sécurité, on préfèrera l’échange manuel. Malheureusement, pour de grands
systèmes, le nombre de clés peut devenir conséquent. C’est pourquoi on utilisera souvent des
échanges sécurisés pour transmettre les clés.
15
14/04/2023
soit faire une recherche exhaustive, c’est-à-dire essayer successivement 1, 2, 3, ..., 99, on trouve
alors :
le problème est dur à résoudre, sauf pour ceux qui connaissent la trappe secrète.
16
14/04/2023
Caractéristiques :
Une clé publique PK
Une clé privée secrète SK
La connaissance de PK ne permet pas de déduire SK
Le principe de ce genre d’algorithme est qu’il s’agit d’une fonction unidirectionnelle à trappe.
La taille des clés s’étend de 512 bits à 2048 bits en standard.
La distribution des clés est grandement facilitée car l’échange de clés secrètes n’est plus
nécessaire .
Il a été, entre 1977 et 2001, le standard de chiffrement pour les organisations du gouvernement
des États-Unis et par extension pour un grand nombre de pays dans le monde.
Le DES est un protocole de chiffrement par blocs.
C’est un système cryptographique produit, basé sur un schéma de Feistel
Schema de Feistel
F prend comme argument un mot de n bits, et renvoie un mot de n bits (qui donne
l’impression d’avoir été choisi au hasard).
17
14/04/2023
L’image du bloc (G,D) par le schéma de Feistel est le bloc (L,R), avec L = D, et R = G⊕f(D)
où ⊕ est l’operation XOR
Cette transformation est cette fois bijective, car si on a un tel couple (L,R), on retrouve
(G,D) par D = L et G = R ⊕ f(L).
La partie droite n’a pas été transformée (juste envoyée à gauche). C’est pourquoi on répété
le schéma de Feistel un certain nombre de fois (on parle de tour - le DES en comporte 16).
18
14/04/2023
19
14/04/2023
Etape 3: Permutation du clé (16 clés) droite et gauche se basant sur le tableau suivant
Fonction d'expansion
Les 32 bits du bloc D0 sont étendus à 48 bits grâce à une table (matrice) appelé table
d'expansion (notée E), dans laquelle les 48 bits sont mélangés et 16 d'entre eux sont
dupliqués :
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
20
14/04/2023
S1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S5
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
1 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
1 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
Chaque bloc de 6 bits est ainsi substitué en un bloc de 4 bits. Ces bits sont
regroupés pour former un bloc de 32 bits.
21
14/04/2023
Permutation
Le bloc de 32 bits obtenu est enfin soumis à une permutation P dont voici la table
P
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
OU Exclusif
L'ensemble de ces résultats en sortie de P est soumis à un OU Exclusif avec le G0 de départ
(comme indiqué sur le premier schéma) pour donner D1, tandis que le D0 initial donne G1.
G0 K0 D0
Découpage des blocs en deux parties: G et D ; + f Première permutation
G1=D0 K1 D1=G0 + f(D0,K0)
+ f
Etapes de permutation et de substitution Seconde permutation
répétées 16 fois (appelées rondes) ;
………………………………………………………………..
K15
G15=D14 D15=G14 + f(D14,K14)
+ f
Seizième permutation
G16=D15 D16=G15 + f(D15,K15)
22
14/04/2023
La recherche exhaustive par force brute : on teste toutes les clés possibles, l’une après
l’autre, afin de déchiffrer un bloc de données On a besoin, en moyenne, de essais.
Une machine dédiée au calcul des clés : Deep Crack (Des Cracker, élaboré par l’Electronic
Frontier Foundation) a coûté moins de 250’000 dollars. Elle disposait de 1850 processeurs en
parallèle pour un temps de recherche de 56 heures (1998).
Le calcul distribué : un regroupement d’ordinateurs par Internet qui partagent leur
puissance de calcul. En 1998, Distributed.net a pu décrypter un message en 39 jours. Le 19
janvier 1999, EFF et Distributed.net ont cassé en travaillant conjointement une clé en 22
heures et 15 minutes.
Une lecture facile de l’algorithme, puisqu’il est destiné à être rendu public,
Flexibilité - Portabilité : l’algorithme devant remplacer le DES, il est destiné à servir aussi bien
dans les cartes à puces, aux processeurs 8 bits peu puissants, que dans des processeurs
spécialisés pour chiffrer des milliers de télécommunications à la volée.
Techniquement, le chiffrement doit se faire par blocs de 128 bits, les clés comportant 128, 192
ou 256 bits.
23
14/04/2023
Texte Clair
À chaque ronde, quatre transformations sont appliquées :
1. substitution d’octets dans le tableau d’état
2. décalage de rangées dans le tableau d’état
3. déplacement de colonnes dans le tableau d’état (sauf à la
dernière ronde)
4. addition d’une "clé de ronde" qui varie à chaque ronde
Cycle de cryptage
Dernier tour
Texte chiffré
1. AddRoundKey
24
14/04/2023
2. SuBytes
3. SiftRows
25
14/04/2023
4. MixColumns
*
La matrice utilisée est définie par Rijndael.
Nombre de rondes
Selon la taille des blocs à traiter et la taille de la clé, le nombre de rondes évolue.
26
14/04/2023
Exemple
Texte en hexadécimal (128 bits):
27
14/04/2023
Le chiffrement RSA
Le système RSA est un moyen puissant de chiffrer des données personnelles. Aujourd'hui, il
nous entoure sans même que nous le sachions. Il est dans nos cartes bancaires, nos
transactions, nos messageries, nos logiciels..
Le système de chiffrement RSA a été inventé par trois mathématiciens : Ron Rivest, Adi Shamir
et Len Adleman, en 1977 (On retrouve le sigle RSA dans les noms des inventeurs).
28
14/04/2023
Le pgcd
Définition : Parmi l’ensemble des diviseurs communs à deux entiers a et b, le PGCD, est le plus
grand commun diviseur.
I)1ère méthode : Listes de diviseurs
On cherche le Pgcd de 60 et 48
Etape 1 : On donne la liste des diviseurs de 60 : 1 2 3 4 5 6 10 12 15 20 30 60
Etape 2 : On donne la liste des diviseurs de 48 : 1 2 3 4 6 8 12 16 24 48
Etape 3 : On en déduit que 12 est le Plus Grand Commun diviseur, donc Pgcd (60;48)=12
Etape 2 : Ensuite, on prend les deux plus petits nombres (dans ce cas 48 et12) et on
recommence: 48-12=36
Etape 3 : On continue jusqu'à obtenir un résultat nul : 36-12=24 ==> 24-12=12 ==>12-12=0
Etape 4 : Le Pgcd est le dernier résultat non nul :Donc Pgcd (60;48)=12
Etape 1 : On fait la division euclidienne du plus grand nombre par le plus petit :
Etape 4 : Le Pgcd est le dernier reste non nul : Donc Pgcd (494;143)=13
Propriétés :
pgcd(a; b) =pgcd(b; a) pgcd(a; 1) = 1
29
14/04/2023
30
14/04/2023
Inverse modulo n
Soit , on dit que est un inverse de a modulo n si
31
14/04/2023
Pour crypter un message on commence par le transformer en un –ou plusieurs– nombres. Les
processus de chiffrement et déchiffrement font appel à plusieurs notions :
On choisit deux nombres premiers p et q que l’on garde secrets et on pose n = p × q. Le principe
étant que même connaissant n il est très difficile de retrouver p et q (qui sont des nombres ayant
des centaines de chiffres).
La clé secrète et la clé publique se calculent à l’aide de l’algorithme d’Euclide et des
coefficients de Bézout.
Les calculs de cryptage se feront modulo n
les systèmes asymétriques utilisent deux clés. Une pour chiffrer et une autre pour déchiffrer.
On appelle clé publique la clé servant à chiffrer et clé privée la clé servant à déchiffrer.
•La clé publique est visible par tout le monde dans une espèce d'annuaire qui
associe à chaque personne sa clé publique.
•La clé privée n'est visible et connue que par son propriétaire. Il ne faut en aucun
cas que quelqu'un d'autre que le propriétaire entre en possession de celle-ci.
n = p × q = 10 403
32
14/04/2023
5 × 13 + 64 × (-1) = 1
Chiffrement du message
Bob veut envoyer un message secret à Alice. Il se débrouille pour que son message soit un
entier (quitte à découper son texte en bloc et à transformer chaque bloc en un entier).
Message
33
14/04/2023
34