You are on page 1of 34

14/04/2023

Chronologie de la Cryptographie
Symétrique
Cryptographie Âge scientifique Asymétrique
quantique

Depuis 1984

Âge technique Âge artisanal

1936-1970

Antiquité
118

Terminologie

Cryptographie: écriture secrète qui consiste généralement à transposer les lettres de


l'alphabet ou à les représenter par des signes convenus, de manière à ce que le sens de l'écrit
ne soit accessible qu'au destinataire en possession du code.

Cryptosystème: Système composé d'algorithmes cryptographiques, de tous les textes clairs


possibles, de tous les textes chiffrés et de toutes les clés.

Cryptanalyse: Ensemble des méthodes et procédés de décryptage visant à rétablir en clair un


cryptogramme, sans connaissance préalable de la clé de chiffrement.

Cryptologie: est l’ensemble formé de la cryptographie et de la cryptanalyse

Un algorithme cryptographique est l’ensemble des fonctions (mathématiques ou non) utilisées


pour le chiffrement et le déchiffrement.

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 ;

6. il est nécessaire, vu les circonstances qui en commandent l'application, que le système


soit d'un usage facile, ne demandant ni tension d'esprit, ni la connaissance d'une longue
série de règles à observer.

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.

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


décaler les lettres dans l’autre sens

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 :

Par exemple, pour k = 3

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 :

En d’autres termes, si x est un nombre, on applique la fonction de chiffrement pour obtenir le


nombre crypté
ensuite la fonction de déchiffrement fait bien ce que l’on attend d’elle on retrouve
le nombre original x.

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

"6 19 18 14 19 25 22" ce qui correspond au mot crypté "GTSOTZW".

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

un chiffrement lettre à lettre

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 :

Pour crypter le message

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 :

Pour le décrypter, en connaissant les substitutions, on fait l’opération inverse


Avantage : nous allons voir que l’espace des clés est gigantesque et qu’il n’est plus question
d’énumérer toutes les possibilités.
Inconvénients : la clé à retenir est beaucoup plus longue, puisqu’il faut partager la clé constituée
des 26 lettres. Mais surtout, ce protocole de chiffrement est assez simple à « craquer »

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.

Ce qui fait environ 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 :

avec les fréquences:

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 :

On compte les apparitions des lettres :

On suppose donc que le H crypte la lettre E, le F la lettre S, ce qui donne

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.

En réfléchissant un peu, on décrypte le message :

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 :

un décalage de n1 pour la première lettre de chaque bloc,


un décalage de n2 pour la deuxième lettre de chaque bloc,
…………..
un décalage de nk pour la k-ème et dernière lettre de chaque bloc.
Pour notre exemple, si on choisit comme clé (3, 1,5, 2) alors pour le premier bloc "CETT" :
•un décalage de 3 pour C donne F,
•un décalage de 1 pour E donne F,
•un décalage de 5 pour le premier T donne Y,
•un décalage de 2 pour le deuxième T donne V

•les deux lettres T ne sont pas cryptées par la même lettre


"CETT" de vient "FFYV".
•les deux F ne cryptent pas la même lettre

On continue ensuite avec le deuxième 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,

Chacune des composantes de cette fonction est un chiffrement de César.

La fonction de déchiffrement est juste:


Analyse de sécurité
•Il y a 26k choix possibles de clés, lorsque les blocs sont de longueur k.
•Pour des blocs de longueur k = 4 cela en donne déjà 456 976
•même si un ordinateur teste toutes les combinaisons possibles sans problème, il n’est pas
question de parcourir cette liste pour trouver le message en clair, c’est-à-dire celui qui est
compréhensible !
•Il persiste tout de même une faiblesse du même ordre que celle rencontrée dans le chiffrement
mono-alphabétique : la lettre A n’est pas toujours cryptée par la même lettre, mais si deux
lettres A sont situées à la même position dans deux blocs différents (comme par exemple "ALLO
Aller") alors elles seront cryptées par la même lettre

Une attaque possible :


on découpe notre message en plusieurs listes, les premières lettres de chaque bloc, les
deuxièmes lettres de chaque bloc... et on fait une attaque statistique sur chacun de ces
regroupements.
Ce type d’attaque n’est possible que si la taille des blocs est petite devant la longueur du
texte.

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 ,

Diviser le message chiffré en paires de lettres ,

Trouver la position de chaque paire de lettres dans la matrice,

Appliquer les règles de déchiffrement suivantes :


•Si les deux lettres de la paire se trouvent sur la même ligne de la matrice, on remplace
chaque lettre par la lettre qui se trouve à sa gauche dans la même ligne .
•Si les deux lettres de la paire se trouvent sur la même colonne de la matrice, on remplace
chaque lettre par la lettre qui se trouve au-dessus dans la même colonne.
•Si les deux lettres de la paire ne se trouvent ni sur la même ligne ni sur la même colonne, on
remplace chaque lettre par la lettre qui se trouve à l'intersection du rang de la première lettre
et de la colonne de la deuxième lettre, et vice versa.

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 ?

impossible de répondre car il y a plusieurs possibilités


0 + 50, 1 + 49, 2 + 48,...
Par contre, si je vous donne aussi b alors vous trouvez a immédiatement a = 50 - b .
Alice veut envoyer à Bob le message secret M suivant : ATTAQUE
Alice a d’abord choisi une clé secrète C qu’elle a transmise à Bob.
Cette clé secrète est de la même longueur que le message

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

ce système est-il inviolable?

Il y a trois principes à respecter pour que ce système reste inviolable :

1. La longueur de la clé est égale à la longueur du message.


2. La clé est choisie au hasard.
3. La clé ne sert qu’une seule fois.

Ce système appelé "masque jetable"

Afin de s’approcher de ce protocole de chiffrement parfait, il faut trouver un moyen de


générer facilement de longues clés, comme si elles avaient été générées au hasard.

Histoire de la machine Enigma


Enigma est une machine à chiffrer inventée initialement par Arthur Scherbius et Richard Ritter
en 1918.
L’armée allemande, qui sait l'importance du renseignement dans les conflits modernes, se
dote alors massivement d'une version militaire de cette machine. Elle se présente sous la
forme d'une caisse en bois .
Elle est composée:
•d'un clavier alphabétique
•d'un tableau de connexion
•de 3 rotors mobiles à 26 positions
•d'un rotor renvoi à 26 positions (le réflecteur)
•d'un tableau de 26 ampoules correspondant aux 26
lettres de l'alphabet.

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

Cet anneau est mobile et effectue une rotation à


chaque touche tapée au clavier. Il représente la clé
secrète.

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 2: Première lettre


L’opérateur tape la première lettre du message : B, la machine affiche la correspondance 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 4: Deuxième lettre

L’opérateur tape la deuxième lettre du message A, la machine affiche la correspondance,


c’est de nouveau W.

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

Etape 6: Troisième lettre


L’opérateur tape la troisième lettre du message C, la machine affiche la correspondance U.
Etape 7: Rotation.
L’anneau intérieur effectue sa rotation.

Le message crypté est donc "WWU"

La machine Enigma génère mécaniquement un alphabet différent à chaque caractère crypté,


tentant de se rapprocher d’un chiffrement parfait.

14
14/04/2023

Les cryptosystèmes symétriques


Le terme de cryptosystème symétrique s'applique lorsque les clés de chiffrement et
déchiffrement peuvent se déduire (en temps polynômial) l'une de l'autre.
En pratique la clé utilisée pour le déchiffrement est identique à celle utilisée pour le
chiffrement.
Caractéristiques :
Les clés sont identiques : KE = KD = K,
La clé doit rester secrète,
Les algorithmes les plus répandus sont le DES, AES, ...
Au niveau de la génération des clés, elle est choisie aléatoirement dans l’espace des clés,
Ces algorithmes sont basés sur des opérations de transposition et de substitution des bits
du texte clair en fonction de la clé,
La taille des clés est souvent de l’ordre de 128 bits. Le DES en utilise 56, mais l’AES peut
aller jusque 256,
L’avantage principal de ce mode de chiffrement est sa rapidité,

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

Pour n interlocuteurs puissent échanger des informations d’ où un problème de fabrication et


d’´echange de clés fiables.

sans tiers de confiance le partage des clés est impossible

15
14/04/2023

Les cryptosystèmes asymétriques


Ce sont des algorithmes dont la clé de chiffrement est différente de la clé de déchiffrement
Le principe de la cryptographie à clé public a été introduit par Whitfield Diffie et Martin
Hellman en 1976 (aussi introduit séparément par Ralph Merkle)
Fonctions à sens unique
En d’autres termes, étant donnée une fonction f , il est possible connaissant x de calculer
«facilement» f (x) ; mais connaissant un élément de l’ensemble image de f , il est «difficile» ou
impossible de trouver son antécédent.
Dans le cadre de la cryptographie, posséder une fonction à sens unique qui joue le rôle de
chiffrement n’a que peu de sens.
En effet, il est indispensable de trouver un moyen efficace afin de pouvoir déchiffrer les
messages chiffrés .
On parle alors de fonction à sens unique avec trappe secrète.
Prenons par exemple le cas de la fonction f suivante :

Connaissant x, trouver y = f (x) est facile.


Connaissant y image par f d’un élément x ( y = f (x)), retrouver x est difficile.

Tentons de résoudre le problème suivant : trouver x tel que

soit faire une recherche exhaustive, c’est-à-dire essayer successivement 1, 2, 3, ..., 99, on trouve
alors :

soit utiliser la trappe secrète : qui fournit directement le résultat:

le problème est dur à résoudre, sauf pour ceux qui connaissent la trappe secrète.

Chiffrement à clé publique


Les fonctions à sens unique à trappe donnent naissance à des protocoles de chiffrement à
clé publique .
L’association «clé» et «publique» peut paraître incongrue, mais il signifie que le principe de
chiffrement est accessible à tous mais que le déchiffrement nécessite une clé qu’il faut bien
sûr garder 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

L’objective du schéma de Feistel est de construire des bijections aléatoires.

on suppose par exemple qu’on a une fonction f presque aléatoire

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

L’algorithme de chiffrement va procéder en chiffrant des blocs de 2n bits, qu’on partage


en 2, partie gauche G, partie droite D.

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

Aspects techniques de DES


DES est un cryptosystème par blocs qui travaille sur des blocs de 64 bits.
L'algorithme consiste à effectuer des combinaisons, des substitutions et des permutations
entre le texte à chiffrer et la clé, en faisant en sorte que les opérations puissent se faire dans
les deux sens (pour le déchiffrement).
La combinaison entre substitutions et permutations est appelée code produit
La clé est codée sur 64 bits et formée de 16 blocs de 4 bits, généralement notés k1 à k16.
Etant donné que « seuls » 56 bits servent effectivement à chiffrer, il peut exister 256

18
14/04/2023

Générer les clés


La première opération de ce traitement est une transposition, dite "transposition ou
permutation initiale" connue sous le nom de « IP » (« Initial Permutation »), transposition qui
mélange suivant une liste de transposition les 64 bits du bloc traité.

Etape 1: La permutation initial du clé (56 bits)

19
14/04/2023

Etape 2: divisé la clé en deux parties droite et gauche

Etape 3: Permutation du clé (16 clés) droite et gauche se basant sur le tableau suivant

Etape 4: fusionner les 16 clés droites avec les clés gauches

Etape 5: compresser les 16 clés se basant sur la matrice suivante

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.

L'algorithme du DES Permutation d’un


Fractionnement du texte en blocs de 64 bits; bloc de 64 bits
Permutation initiale des blocs ; Séparation en bloc de 32 bits

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)

Message chiffré de 64 bits Permutation final

22
14/04/2023

Attaques sur le DES


Plusieurs attaques existent pour casser le DES :

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

La progression de la puissance des ordinateurs a causé la mort du DES.


Ce dernier n’est plus jamais utilisé lorsque la sécurité demandée est forte (utilisation militaire,
documents “secrets”, etc.).

Cahier des charges

La sécurité générale

Le coût en terme de calculs (rapidité),

La simplicité de l’algorithme et ses facilités d’implémentation,

Une lecture facile de l’algorithme, puisqu’il est destiné à être rendu public,

La résistance aux attaques connues,

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):

décalage circulaire gauche de


Byte Substitution (S-Box):

Ajout un rond constant

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

II) 2ème méthode: Méthode des soustractions successives


On cherche le Pgcd de 60 et 48
Etape 1 : Soustraire le plus petit des deux nombres au plus grand : 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

III) 3e méthode: Algorithme d'Euclide

Etape 1 : On fait la division euclidienne du plus grand nombre par le plus petit :

Etape 2 : On recommence avec le diviseur et le reste de la division précédente :

Etape 3 : On s'arrête lorsque le reste est nul :

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

lorsque pgcd (a,b)=1, on dit que a et b sont premiers entre eux.

29
14/04/2023

On peut exprimer que a et b sont congruents modulo n sous quatre formes :

a ≡ b (n) ; a ≡ b [n] ; a ≡ b (mod n) ; a ≡ b mod n (notation de Gauss)

Petit théorème de Fermat


Théorème :
Si p est un nombre premier, alors pour tout entier a on a :
ap ≡ a (mod p)
ap-1 ≡ 1 (mod p)

L’arithmétique pour RSA


Pour un entier n, sachant qu’il est le produit de deux nombres premiers, il est difficile de
retrouver les facteurs p et q tels que n = pq.
Le principe du chiffrement RSA, chiffrement à clé publique, repose sur cette difficulté.
Le petit théorème de Fermat

30
14/04/2023

Inverse modulo n
Soit , on dit que est un inverse de a modulo n si

Factorisations des entiers


si je vous demande combien font 5 × 7= 35
Si je vous demande de factoriser 35= 5 × 7
Si je vous demande de factoriser 1591? vous aller devoir faire plusieurs tentatives

si je vous avais directement demandé de calculer 37 × 43 cela ne pose pas de problème.


Pour des entiers de plusieurs centaines de chiffres le problème de factorisation ne
peut être résolu en un temps raisonnable, même pour un ordinateur

C’est ce problème asymétrique qui est à la base de la cryptographie RSA

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

Le déchiffrement fonctionne grâce à une variante du petit théorème de Fermat.

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.

Calcul de la clé publique et de la clé privée


Choix de deux nombres premiers
Alice effectue, une fois pour toute, les opérations suivantes (en secret) :
elle choisit deux nombres premiers distincts p et q (dans la pratique ce sont de très
grand nombres, jusqu’à des centaines de chiffres)
Elle calcule n = p × q
Elle calcule f(n) = (p - 1) × (q - 1).
Exemple 1
p = 5 et q = 17
n = p × q = 85
f(n) = (p - 1) × (q - 1)=64.
Exemple 2
p = 101 et q = 103

n = p × q = 10 403

f(n) = (p - 1) × (q - 1)= 10 200 .

32
14/04/2023

Choix d’un exposant


Alice continue :
elle choisit un exposant e tel que pgcd(e,f(n)) = 1
elle calcule l’inverse d de e module f(n) : d × e ≡ 1 (mod f(n)). Ce calcul se fait par
l’algorithme d’Euclide étendu
Exemple
Alice choisit par exemple e = 5 et on a bien pgcd(e,f(n)) = pgcd(5,64) = 1,
Alice applique l’algorithme d’Euclide étendu pour calculer les coefficients de
Bézout correspondant à pgcd(e,f(n)) =1.

5 × 13 + 64 × (-1) = 1

5 × 13 ≡ 1 (mod 64) et l’inverse de e modulo f(n) est d = 13

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

Exemple 1. Bob veut envoyer le message m = 10


Exemple 2. Bob veut envoyer le message m = 1234
Message chiffré
Bob récupère la clé publique d’Alice : n et e avec laquelle il calcule, à l’aide de l’algorithme
d’exponentiation rapide, le message chiffré :

Il transmet ce message x à Alice


Exemple 1. m = 10, n = 85 et e = 5

33
14/04/2023

Le message chiffré est donc x = 40.


Exemple 2. m = 1234, n = 10 403 et e = 7 donc

On utilise l’ordinateur pour obtenir que x = 10 378.


Déchiffrement du message
Alice reçoit le message x chiffré par Bob, elle le décrypte à l’aide de sa clé privée d, par
l’opération :

Exemple 1. c = 40, d = 13, n = 85 donc


on note que 13 = 8 + 4 + 1, donc

Exemple 2. c = 10 378, d = 8743, n = 10 403.


On calcule par ordinateur

exactement le message original de Bob m = 1234.


Clés d’Alice :
•publique : n, e
•privée : d

34

You might also like