Académique Documents
Professionnel Documents
Culture Documents
Chronologie de la Cryptographie
Symétrique
Cryptographie Âge scientifique Asymétrique
quantique
Depuis 1984
1936-1970
Antiquité
72
1
09/04/2022
Terminologie
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 ;
2
09/04/2022
Théorème : Tout nombre entier supérieur à 1 peut se décomposer comme un produit unique
de nombres premiers
Décomposition en nombres premiers :
Pour décomposer un nombre en produits de nombres premiers, il faut trouver tous les
nombres premiers qui divisent ce nombre. Pratiquement on part du plus petit (2) et on
cherche les différents diviseurs jusqu'à obtenir 1.
Exemple
Décomposons 462 en nombres premiers
462 | 2 462 est pair
231 | 3 231 est divisible par 3 car 2+3+1 = 6 est divisible par 3
77 | 7
11 | 11
1
On écrit : 462 = 2 x 3 x 7 x 11
la multiplication est donc une fonction à sens unique (sous certaines conditions)
Si n=pq (p et q grand), connaissant p et q il est facile de calculer n
MAIS connaissant n il est difficile de trouver p et q
La division dans Z
Définition : Soient a et b deux éléments de Z. Nous dirons que a est divisible par b ou encore
que a est multiple de b s'il existe un élément q dans Z tel que a = bq. On note b|a.
Propriétés :
a|a, 1|a, a|0, a|ab
Si a|b et b|c alors a|c
Si d|a et d|b alors d|ab, d|(a+b), d|(a-b)
Théorème : Soit a un entier et b un entier non nul. Il existe un unique entier q et un unique
entier r tels que a = qb + r ou r est 0 ≤ r < |b|.
3
09/04/2022
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
4
09/04/2022
Congruences
Définition
5
09/04/2022
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.
6
09/04/2022
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.
7
09/04/2022
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 d’abord 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
8
09/04/2022
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
9
09/04/2022
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.
10
09/04/2022
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 :
11
09/04/2022
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 :
12
09/04/2022
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,
13
09/04/2022
Chiffrement polygraphique: Il s’agit ici de chiffrer un groupe de n lettres par un autre groupe de n
symboles. On citera notamment le chiffre de Playfair et le chiffre de Hill. Ce type de chiffrement
porte également le nom de substitutions polygrammiques.
le chiffre de Hill généralise celui de Vigenère. Il a été publie par Lester Hill en 1929.
Son idée est de continuer à utiliser des décalages du même type que celui du chiffre de César,
mais en effectuant ces décalages simultanément sur des groupes de m lettres! Bien sûr, plus m
est grand, plus les analyses statistiques deviennent difficiles!
•nous remplaçons chaque lettre par son ordre dans l'alphabet
Les lettres deviennent
•Cependant, sa taille n’est pas fixée à 2. Elle grandira selon le nombre de lettres à chiffrer
simultanément.
Chaque digramme clair (P1 et P2) sera chiffré (C1 et C2) selon :
en effectuant des combinaisons
linéaires : y1=ax1+bx2
y2=cx1+dx2
Exemple de chiffrement :
On souhaite coder le mot ELECTION avec le chiffre de Hill, pour m=2, a=3, b=5, c=1 et d=2.
Etape 1 : On partage en blocs de 2 : EL EC TI ON.
Etape 2 : On remplace les lettres par leur nombre associé : 4-11 | 4-2 | 19-8 | 14-13.
Etape 3 : On effectue les combinaisons linéaires pour chaque bloc. Par exemple, pour le
premier bloc, où x1=4 et x2=11, on a :
y1=3×4+5×11=67.
y2=1×4+2×11=26.
De même
y3=22 y4=8 y5=97 y6=35 y7=107 y8=40
14
09/04/2022
On peut remarquer que le premier E de ELECTION est transformé en P, tandis que le second
est transformé en W.
Le critère des chiffrements polyalphabétiques est bien respecté : les analyses statistiques
directes sur la fréquence des lettres sont impossibles.
Déchiffrement
Pour déchiffrer un message codé connaissant la clé, on procède exactement de la même façon.
En découpe donc en blocs de m lettres, mais cette fois il faut inverser les relations
données par les combinaisons linéaires
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 ?
15
09/04/2022
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.
Un secret parfait
Bob reçoit X et connaît C, il effectue donc X - C = M
16
09/04/2022
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
17
09/04/2022
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).
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,..
18
09/04/2022
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,...
19
09/04/2022
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.
20
09/04/2022
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.
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 .
21
09/04/2022
Nous allons voir une autre méthode, cette fois numérique: le DES (Data Encryption Standard) .
Le DES est un protocole de chiffrement par blocs.
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.
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).
22
09/04/2022
23
09/04/2022
Etape 3: Permutation du clé (16 clés) droite et gauche se basant sur le tableau suivant
24
09/04/2022
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
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
25
09/04/2022
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.
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.
26
09/04/2022
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)
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.
27
09/04/2022
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é
28
09/04/2022
1. AddRoundKey
2. SuBytes
29
09/04/2022
3. SiftRows
4. MixColumns
*
La matrice utilisée est définie par Rijndael.
30
09/04/2022
Nombre de rondes
Selon la taille des blocs à traiter et la taille de la clé, le nombre de rondes évolue.
Exemple
Two One Nine Two
Texte en hexadécimal (128 bits):
31
09/04/2022
1. AddRoundKey
2. SuBytes
3. SiftRows
4. MixColumns
32