Chapitre 2 Off
Chapitre 2 Off
Chapitre 2 :
Initiation à la cryptographie
Introduction
L’objectif fondamental de la cryptographie est de permettre à deux
personnes de communiquer à travers un canal peu sûr de telle sorte
qu’un opposant passif ne puisse pas comprendre ce qui est échangé et
que les données échangées ne puissent pas être modifiées ou manipulées
par un opposant actif.
1
Sécurité informatique : Initiation à la cryptographie
Introduction
La cryptologie est une science très ancienne : les hommes ont
toujours eu besoin de dissimuler des informations et de transmettre
des messages en toute confidentialité.
Le terme cryptologie vient du grec ”kruptos” signifiant secret, caché
et de logos signifiant discours.
La cryptologie est donc la science du secret. Elle regroupe la
cryptographie et la cryptanalyse,
La cryptographie a pour but de concevoir des systèmes visant à
assurer la sécurité des communications sur un canal public,
La cryptanalyse vise à trouver des failles dans ces systèmes..
1. Vocabulaire et définitions
Protocole de chiffrement
2
Sécurité informatique : Initiation à la cryptographie
1. Vocabulaire et définitions
Cryptologie : Il s’agit d’une science mathématique comportant deux branches : la
cryptographie et la cryptanalyse.
Cryptographie : La cryptographie est l’étude des méthodes donnant la possibilité
d’envoyer des données de manière confidentielle sur un support donné.
Texte en clair(Plain text) : Données lisibles et compréhensible sans intervention
spécifique.
Texte chiffré(Cipher text) :Texte inintelligible résultant du chiffrement.
Cryptage(chiffrement) : Méthode permettant de crypter un texte en clair en
changeantsoncontenu.Cetteopérationpermets’assurerqueseuleslespersonnesauxquel
leslesinfos.Sontdestinéespourrontyaccéder.
Décryptage(déchiffrement): Processus inverse de transformation du texte chiffré
en texte clair.
Clé : Il s’agit du paramètre impliqué et autorisant des opérations de chiffrement
et/ou déchiffrement.
1. Vocabulaire et définitions
Cryptanalyse : Opposée à la cryptographie, elle a pour but de retrouver le texte
clair à partir de textes chiffrés en déterminant les failles des algorithmes utilisés.
Cryptosystème : Il est défini comme l’ensemble des clés possibles (espace de
clés), des textes clairs et chiffrés possibles associés à un algorithme donné.
L’algorithme est en réalité un triplet d’algorithmes :
3
Sécurité informatique : Initiation à la cryptographie
Notations
• En cryptographie, la propriété de base est que :
M = D(E(M))
où :
- K est la clé (dans le cas d’un algorithme à clé symétrique), Ek et Dk dans le cas
d’algorithmes asymétriques,
Principe de Kerckhoff
• En 1883 Auguste Kerckhoffs posa les principes de la cryptographie moderne.
• Les systèmes conçus dans le secret révèlent souvent rapidement des défauts de sécurité
qui n’avaient pas été envisagés par les concepteurs.
• Si un algorithme est supposé être secret, il se trouvera toujours quelqu’un soit pour
vendre l’algorithme, soit pour le percer à jour, soit pour en découvrir une faiblesse
ignorée de ses concepteurs. À ce moment là c’est tout le cryptosystème qui est à
changer et pas seulement la clé.
4
Sécurité informatique : Initiation à la cryptographie
L'attaque à texte clair connu : Le cryptanalyste a non seulement accès aux textes
chiffrés de plusieurs messages, mais aussi aux textes clairs correspondants. La tâche est
de retrouver la ou les clés qui ont été utilisées pour chiffrer ces messages ou un
algorithme qui permet de déchiffrer d'autres messages chiffrés avec ces mêmes clés.
L'attaque à texte clair choisi : Le cryptanalyste a non seulement accès aux textes
chiffrés et aux textes clairs correspondants, mais de plus il peut choisir les textes en
clair. Cette attaque est plus efficace que l'attaque à texte clair connu, car le cryptanalyste
peut choisir des textes en clair spécifiques qui donneront plus d'informations sur la clé.
10
5
Sécurité informatique : Initiation à la cryptographie
3. Cryptographie Classique
La science de la cryptographie est utilisée depuis l'antiquité.
Elle est basée sur l’utilisation des lettres de la langue pour le chiffrement des
textes.
La même clé est utilisée pour le chiffrement et pour le déchiffrement.
Cette catégorie continué jusqu'à la fin de deuxième guerre mondiale.
Ces cryptosystèmes sont appliques pour protéger les documents physiques dans
les domaines militaires et diplomatiques.
11
• Ils ont fait l’objet d’une critique sévère de A. Kerchkoffs dans son article fondateur.
12
6
Sécurité informatique : Initiation à la cryptographie
La technique assyrienne
Cette technique de cryptage est vraisemblablement la première preuve de l’utilisation de
moyens de chiffrement en Grèce dès 600 avant Jésus Christ pour dissimuler des messages
écrits sur des bandes de papyrus.
13
La technique assyrienne
La technique consistait à:
enrouler une bande de papyrus sur un cylindre appelé scytale ;
écrire le texte longitudinalement sur la bandelette ainsi enroulée
Question :
comment le destinataire déchiffrerait le message sur le scytale ?
• Le message une fois déroulé n’est plus compréhensible
• Il suffit au destinataire d’avoir un cylindre de même rayon pour pouvoir déchiffrer le
message
14
7
Sécurité informatique : Initiation à la cryptographie
Exemple :
Soit la matrice M(6,5)=
15
- Le but est de pouvoir changer facilement le cryptage d’un message tout en gardant le même
algorithme de codage. Pour cela on rajoute une clé secrète constituée par l’ordre de lecture des col
- On numérote les colonnes en fonction du rang des lettres du mot CAPTER dans l’alphabet c’est-à-
dire : 2, 1, 4, 6, 3, 5
- Pour décoder le message précédent on range en colonne sur la grille en suivant l’ordre des colonnes
donné par le mot de code :
donnes.
16
8
Sécurité informatique : Initiation à la cryptographie
17
Il s’agit d’un des plus simples et des chiffres classiques les plus populaires.
Son principe est un décalage des lettres de l’alphabet.
Jules César pendant la guerre des Gaules avait utilisé le code de substitution par
flot suivant :
lettre codée = lettre claire + 3 modulo 26
Exemple :
Le message en clair :
- Devient :
18
9
Sécurité informatique : Initiation à la cryptographie
19
Analyse de fréquences
• Le chiffre de César repose sur une simple méthode de substitution de lettres.
• Ce sont les érudits et savants de l’empire arabe qui sont à l’origine de la cryptanalyse
de ce chiffre.
• En effet Abu Yusuf Al-Kindi découvre aux alentours du IXème siècle, une méthode
très simple permettant de venir à bout du chiffre de César : l’attaque par analyse des
fréquences.
• Cette analyse des fréquences consiste à répertorier toutes les lettres du texte chiffré et
de comparer leur nombre avec le tableau des fréquences des lettres de la langue
correspondante.
20
10
Sécurité informatique : Initiation à la cryptographie
Analyse de fréquences
• Ainsi, dans un texte chiffré en français, si une lettre apparaît aux environs des 16%,
nous pourrons assimiler cette lettre à un E ; et ainsi de suite avec les autres lettres du
texte chiffré.
21
• Exemple
- Voici par ordre décroissant des fréquences la répartition des lettres en français :
- Voici un texte chiffré en utilisant le chiffre de César ; on ne connait pas ici la clé utilisée :
SEGELAZEW AOP QJ LNKFAP Z AJYUYHKLAZEA CNWPQEPA AYNEPA
YKKLANWPERAIAJP
- Nous pouvons constater que c'est la lettre A qui est la plus fréquente dans le message
chiffré. Celle-ci a donc de grande chance de représenter la lettre E dans le message clair.
- Nous obtiendrons dans ce cas un décalage de 22 lettres puisque l’on a supposé A = E. Muni
de cette clé, nous pouvons décrypter le reste du message, ce qui nous donne :
22
11
Sécurité informatique : Initiation à la cryptographie
23
• Carré de Vigenère :
24
12
Sécurité informatique : Initiation à la cryptographie
Exemple :
Chiffrement du texte "CHIFFRE DE VIGENERE" avec la clé "BACHELIER" (cette clé est
éventuellement répétée plusieurs fois pour être aussi longue que le texte clair).
La grande force du chiffre de Vigenère est que la même lettre sera chiffrée de différentes
manières d’où perte de la fréquence des lettres, ce qui rend inutilisable l’analyse de fréquence
classique
25
y = (ax + b) mod 26
• Propriété de neutralité : si b = 0, alors "a" est toujours chiffré "A" car il ne subit aucun
décalage. L’alphabet de départ se retrouve chiffré par lui même, et donc ne subit aucune
modification.
• Pour le chiffre affine, la clé est constituée de (k1, k2) où k1, k2 ϵ [0, 25] et telle que :
26
13
Sécurité informatique : Initiation à la cryptographie
• Par le chiffre affine, on obtient 312 clés possibles. En effet, pour respecter la propriété de
k1, il n’y a que 12 choix possibles. Et puisque k2 peut prendre n’importe quelle valeur dans
[0, 25], il vient 12 * 26 = 312.
- Transformation de déchiffrement :
27
• Il faut tout d’abord établir la fréquence relative de chaque lettre du texte chiffré, par
analyse de fréquence.
• Supposons que le langage original du texte est le français. Sur base de l’analyse de
fréquences, on en déduit les équations suivantes :
E → G => f(E) = G
S → A => f(S) = A
18 → 0 => f(18) = 0
28
14
Sécurité informatique : Initiation à la cryptographie
• Et donc : HGAHYRAEFTGAGRHDGAGMOEHIYRAAOTZGAGJGKFDGAZGSB
INNTGKGRHENNIRG
devient : TESTONSAPRESENTLESEQUATIONSSURDESEXEMPLESDECHIFFRE
MENTAFFINE
29
• On remplit la grille avec les lettres du mot clé (en ignorant les doublons), ligne par
ligne. Ensuite, on comble la grille avec les lettres restantes de l’alphabet.
30
15
Sécurité informatique : Initiation à la cryptographie
• Exemple :
1. Si les lettres sont sur des "coins", les lettres chiffrées sont les 2 autres coins.
Ex : LA → ER , CA → BY
2. Si les lettres sont sur la même ligne, il faut prendre les deux lettres qui les suivent
immédiatement à leur droite.
Ex : EM → XP , CH → DB
31
3. Si les lettres sont sur la même colonne, il faut prendre les deux lettres qui les suivent
immédiatement en dessous.
Ex : YK → CT , MU → FM
4. Si elles sont identiques (ou s'il n'en reste qu'une), il faut insérer une nulle
(habituellement le X) entre les deux pour éliminer ce doublon.
digramme.
• Exemple de chiffrement
CA CH EL OR DA NS LA SO UC HE DE LA RB RE
- Devient :
BY DB XE QI BF JU ER VJ TD BL BM ER AH AL
32
16
Sécurité informatique : Initiation à la cryptographie
33
• Si on pose m = 3, on a donc :
• Exemple
34
17
Sécurité informatique : Initiation à la cryptographie
dont le déterminant est 21. Comme 5 × 21 = 105 ≡ 1 (mod 26), 5 est un inverse de
det(K) modulo 26.
- TEXTEACRYPTER → 19 ; 4 ; 23 ; 19 ; 4 ; 0 ; 2 ; 17 ; 24 ; 15 ; 19 ; 4 ; 17
- On regroupe les lettres par paires créant ainsi 7 vecteurs de dimension deux, la
dernière paire étant complétée arbitrairement :
- On multiplie (modulo 26) ensuite ces vecteurs par la matrice K, par exemple pour le
premier vecteur :
35
→ ZAITMYNPRJZADW
Connaissant les couples Y, il suffit de les multiplier (modulo 26) par la matrice B pour
retrouver les couples X et réussir à déchiffrer le message. Par exemple pour le premier
vecteur :
36
18
Sécurité informatique : Initiation à la cryptographie
Protéger la clé,
• Exemple
37
- Résultat : BONJOURLATERRE
- Résultat : MASQUESJETABLE
38
19
Sécurité informatique : Initiation à la cryptographie
4. Machines à rotors
• Très vite après la première guerre, on s’est rendu compte que si l'on souhaitait diffuser
beaucoup de documents chiffrés rapidement, et pouvoir changer de clé de chiffrement
facilement, il fallait fabriquer des machines à chiffrer et à déchiffrer.
• Les machines utilisées à ces fins sont les machines à rotors (dont la plus célèbre était la
machine ENIGMA à 3 rotors inventée dans les années 30).
• Cette machine électrique est composée d'un clavier alphabétique, d'un écran lumineux et de
trois rotors. Le système est simple : l’utilisateur tape une lettre sur le clavier et le texte chiffré
apparaît alors sur l’écran. A chaque frappe sur le clavier, le premier rotor tournait d'une unité
puis à la fin d'un tour complet décalait le deuxième rotor d'une unité et ainsi de suite. On
positionnait initialement les rotors comme on voulait, ce qui définissait ainsi la clé.
• Pour chiffrer un message, une fois la clé fixée, il suffisait de le taper sur la machine et pour
le déchiffrer de mettre les rotors dans la même position initiale et de taper le message chiffré.
39
• Chaque message commençait par la donnée de la clé choisie par l'opérateur, qu'il cryptait
elle aussi selon une liste de clé changeant tous les jours.
• La machine ENIGMA a été utilisée pendant toute la seconde guerre mondiale par l'armée
allemande qui croyait en son inviolabilité.
20
Sécurité informatique : Initiation à la cryptographie
4. Cryptographie moderne
41
2. Histoire de la cryptographie
Avec l'apparition de l'informatique son utilisation se popularise et se vulgarise. En
1977, le standard de chiffrement symétrique DES est proposé comme standard par
le NIST. En 1976, le cryptage asymétrique est né avec le chiffrement de
Diffie-Hellman et en 1977 RSA une autre idée sur le cryptage asymétrique est née
et mondialement utilisée. Le chiffrement AES est le standard actuel en termes de
cryptographie symétrique, il est proposé en 2000.
Enfin, la Cryptographie post-quantique permet de dépasser les limites de la
cryptographie mathématique.
42
21
Sécurité informatique : Initiation à la cryptographie
4. Cryptographie moderne
4.1. Cryptographie symétrique (à clé secrète)
43
4. Cryptographie moderne
4.1. Cryptographie symétrique (à clé secrète)
La cryptographie symétrique utilise la même clé pour les processus
de chiffrement et de déchiffrement ; cette clé est le plus souvent
appelée "secrète" car toute la sécurité de l’ensemble est directement
liée au fait que cette clé n’est connue que par l’expéditeur et le
destinataire.
La cryptographie symétrique est très utilisée et se caractérise par une
grande rapidité (opérations simples, chiffrement à la volée) et par des
implémentations aussi bien software que hardware ce qui accélère
nettement les débits et autorise son utilisation massive.
44
22
Sécurité informatique : Initiation à la cryptographie
4. Cryptographie moderne
4.1. Cryptographie symétrique (à clé secrète)
45
4. Cryptographie moderne
4.1. Cryptographie symétrique (à clé secrète)
46
23
Sécurité informatique : Initiation à la cryptographie
4. Cryptographie moderne
4.1.1. DES (Data Encryption Standard)
Consiste à effectuer des combinaisons, des substitutions et des permutations
entre le texte à chiffrer et la clé
Chiffrement symétrique par bloc. La clé est codée sur 64 bits (16 blocs de 4
bits) dont 56 utiles et 8 de parité
Principe:
Fractionnement du texte en blocs de 64 bits (8 octets) ;
• Permutation initiale des blocs ;
• Découpage des blocs en 2 parties: gauche et droite (G et D) ;
• Etapes de permutation et de substitution répétées 16 fois(appelées rondes) ;
• Recollement des parties G et D et permutation initiale inverse.
47
4. Cryptographie moderne
4.1.2. AES (Advenced Encryption Standard)
• 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.).
• En Janvier 1997, la NIST (National Institute of Standards and Technology) lance un appel
d’offre international pour remplacer le vieillissant DES : il en résulte 15 propositions.
• En octobre 2000 la NIST élit Rijndael comme nouveau standard qu’on nomme aussi AES
(Advanced Encryption Standard).
• Rijndael, du nom condensé de ses concepteurs Rijmen et Daemen, est un algorithme de
chiffrement par blocs à plusieurs tours similaire à DES mais avec une taille de blocs et de clefs
supérieures et variables, choisis entre 128, 196 et 256 bits.
Rq : AES est un sous-ensemble de Rijndael, il ne travaille qu'avec des blocs de 128 bits. La
différence entre AES-128, AES-192 et AES-256 , c'est la longueur de la clé : 128, 192 ou 256
bits.
48
24
Sécurité informatique : Initiation à la cryptographie
4. Cryptographie moderne
4.1.2. AES (Advenced Encryption Standard)
49
50
25
Sécurité informatique : Initiation à la cryptographie
51
SubByte
• Tous les octets ai,j de la table d’état sont transformés en appliquant une S-Box
inversible (afin de permettre un déchiffrement unique).
52
26
Sécurité informatique : Initiation à la cryptographie
Table S-Box 53
ShiftRow
• Cette étape effectue un décalage des lignes de l’état courant (table d’état).
Etape du ShiftRow
• Selon la taille des blocs de message (la valeur de Nb), les décalages ne seront pas toujours
identiques.
54
27
Sécurité informatique : Initiation à la cryptographie
MixColumn :
• La transformation MixColumn
consiste à prendre chaque
colonne de l'état et à la multiplier
par la matrice suivante :
Etape du MixColumn
55
Nombre de rondes
• Selon la taille des blocs à traiter et la taille de la
clé, le nombre de rondes évolue.
56
28
Sécurité informatique : Initiation à la cryptographie
Avantages d’AES
57
4. Cryptographie moderne
4.2. Cryptographie asymétrique (à clé publique)
58
29
Sécurité informatique : Initiation à la cryptographie
4. Cryptographie moderne
4.2. Cryptographie asymétrique (à clé publique)
•Dans le cas des systèmes symétriques, la même clef est utilisée pour le chiffrement et
le déchiffrement. Le problème essentiel de la cryptographie symétrique est la
distribution des clefs : pour que n personnes puissent communiquer de manière
confidentielle il faut n (n-1)/2 clefs.
• L’idée de base des cryptosystèmes à clefs publiques a été proposée dans un article
fondamental de Diffie et Hellman en 1976. Le principe fondamental est d’utiliser des
clefs de chiffrement et déchiffrement différentes, non reconstructibles l’une à partir de
l’autre :
Une clef publique pour le chiffrement.
Une clef privée (secrète) pour le déchiffrement.
• Ce système est basé sur une fonction à sens unique, soit une fonction facile à calculer
dans un sens mais très difficile à inverser sans la clef privée.
59
4. Cryptographie moderne
4.2. Cryptographie asymétrique (à clé publique)
•Le gros avantage de ce système est qu’il n’y ait pas besoin d’avoir
partagé un secret au préalable pour s’échanger des messages cryptés.
60
30
Sécurité informatique : Initiation à la cryptographie
4.2. Cryptographie asymétrique (à clé publique)
4.2.1. RSA (Rivest - Shamir - Adleman)
• 1978: Rivest, Shamir Adleman
• Les clé publiques et privées sont des fonctions d'une paire de grands nombres premiers.
• Clef publique = (n, e) ; Clef privee = (n, d) , d calculé à partir de p,q (secrets)
• n produit de p q premiers
• Le chiffrement de x est
y= xe mod n
• Le déchiffrement de y est
x=yd mod n
• Afin d’assurer qu’il n’y ait aucune ambiguïté dans la reconstitution de x à travers le module n,
il suffit de découper le message en blocs codés par des entiers m qui soient tous <= n -1.
61
62
31
Sécurité informatique : Initiation à la cryptographie
Exemple
• Alice choisit p = 17 et q = 19
- On détermine, alors, que d =173 (inverse modulaire de e sur Zφ(n) : 173*5= 3*288+1).
- La clé publique est donc (5, 323) et la clé privée est (173, 323).
• Après avoir chiffré en remplaçant chaque nombre b par (be mod n) on obtient le
message que Bob envoie à Alice :
63
• RSA est basé sur la difficulté de factoriser n. En effet celui qui arrive à
factoriser n peut retrouver facilement la clef secrète d’Alice connaissant
seulement sa clef publique.
• Il n’est pas très astucieux de choisir d’aussi petites valeurs car on peut
retrouver d très facilement. En pratique, il faut prendre de très grandes valeurs
de p et q.
64
32
Sécurité informatique : Initiation à la cryptographie
• Une fonction de hachage est une fonction mathématique qui assure l’intégrité des
informations qui circulent sur le réseau.
• La fonction de hachage sert à calculer une courte empreinte de taille fixe à partir d’une
information de taille arbitraire.
• Le résultat d’une fonction de hachage peut être appelé : somme de contrôle, empreinte,
hash, résumé de message, ou condensé, …
• La probabilité d’avoir deux messages avec le même haché doit être extrêmement
faible. Le haché ne contient pas assez d’informations en lui-même pour permettre la
reconstitution du texte original. L’objectif est d’être représentatif d’une donnée
particulière et bien définie (en l’occurrence le message).
65
Propriétés
• Les fonctions de hachage possèdent de nombreuses propriétés :
- Pour un h donné, il est impossible de trouver x tel que H(x) = h => propriété à sens
unique.
- Pour un x donné, il est impossible de trouver y tel que H(y) = H(x) => résistance faible
de collision.
- Il est impossible de trouver x, y tels que H(y) = H(x) => résistance forte de collision.
66
33
Sécurité informatique : Initiation à la cryptographie
• Conçu par Ronald Rivest, un des créateurs de RSA, est un des plus connus algorithmes
de hachage. C’est le dernier d’une série (MD2, MD4). Cet algorithme produit un
condensé de 128 bits.
• Il a été conçu par NIST et NSA en 1993, et révisé 1995 pour étendre ses capacités en
matière de sécurité. Contrairement au MD5 qui produit des condensés de 128 bits, le
SHA produit des valeurs condensées de 160 bits.
• Jusqu’à 2005, il était l’algorithme généralement préféré pour le hachage, mais des
rumeurs de cassage le font peu à peu évoluer vers des versions plus sophistiquées.
• Depuis 2001, une nouvelle version de SHA-1, SHA-2, ainsi que les versions SHA-
256, SHA-384 et SHA-512 sont en cours de validation (256, 384, 512 est la taille en bits
de l’empreinte).
67
6. La signature électronique
•La signature électronique (par fois appelée digitale/numérique) est
un mécanisme de sécurité permettant de chiffrer un message ou un
document en utilisant la clé privée de l’émetteur (ou l’auteur).
68
34
Sécurité informatique : Initiation à la cryptographie
6. La signature électronique
•La signature électronique (par fois appelée digitale/numérique) est
un mécanisme de sécurité permettant de chiffrer un message ou un
document en utilisant la clé privée de l’émetteur (ou l’auteur).
69
6. La signature électronique
Applications des signatures numériques:
70
35
Sécurité informatique : Initiation à la cryptographie
6. La signature électronique
Comment fonctionne la signature numérique?
71
Un certificat est un fichier émis par une CA composé de deux parties, une contenant des
informations, l’autre contenant la signature de l'autorité de certification. Il comprend donc:
Date de validité
72
36
Sécurité informatique : Initiation à la cryptographie
73
37
Sécurité informatique : Initiation à la cryptographie
75
38
Sécurité informatique : Initiation à la cryptographie
77
39