Vous êtes sur la page 1sur 68

Cryptographie 1

R3.09 : Cryptographie et sécurité

CM3

1.
1/68 NSI Tle générale (spécialité). Hachette.
Le chirement symétrique

La cryptographie asymétrique pour distribuer des clefs

Le protocole HTTPS

2/68
Le chirement symétrique
Principe du chirement symétrique
Méthode de construction

La cryptographie asymétrique pour distribuer des clefs

Le protocole HTTPS

3/68
Le chirement symétrique
Principe du chirement symétrique
Méthode de construction

4/68
Principe du chirement symétrique
Tous les schémas de chirement utilisés jusque dans les
années 1970 sont dits symétriques, ce qui signie que la
même clef est utilisée pour chirer et pour déchirer.
On les appelle également schémas de chirement à
clef secrète.
Une analogie couramment utilisée est celle du core-fort :
l'expéditeur et le destinataire utilisent un core-fort
partagée pour s'échanger des messages.
Tous deux ont accès à la clef, aussi bien pour déposer des
messages que pour en retirer.
5/68
Principe. . .
Les systèmes de chirement symétrique sont composés
de trois algorithmes :
▶ un algorithme de génération de clef, qui retourne en
sortie une clef secrète K partagée entre les deux
utilisateurs ;
▶ un algorithme de chirement, qui prend en entrée un
message m (secret) et la clef secrète K et renvoie
un message chiré C public ;
▶ un algorithme de déchirement, qui prend en entrée
un message chiré C public et la clef secrète K
et renvoie le message message m secret.
6/68
Principe. . .

Chirement symétrique

7/68
Le système est correct si on a la propriété suivante :
dechiffrement(chiffrement(m,K),K)=m
Il est sûr s'il est impossible de retrouver de l'information
sur m à partir de C sans la connaissance de la clef K.

8/68
Par exemple, le chirement de Vernam (aussi appelé
masque jetable ou one-time-pad ) consiste à combiner
le message clair et la clef à l'aide de la fonction logique
XOR.
Dans ce cas particulier, l'algorithme de déchirement
est le même : il sut de combiner une nouvelle fois le
message chiré et la clef avec le XOR pour retrouver le
message clair.

9/68
Remarque
Le XOR ( ou exclusif  en français) est une fonction qui
prend 2 bits en paramètre et qui renvoie 0 s'ils ont la
même valeur et 1 sinon.
C'est l'addition modulo 2 et sa table de vérité est la
suivante :
x y x XOR y
0 0 0
0 1 1
1 0 1
1 1 0
En pratique, on utilise souvent la fonction XOR par octet
et non bit par bit. La fonction XOR s'écrit  en Python.
10/68
Shannon a prouvé en 1949 que ce chirement est
inconditionnellement sûr (c'est-à-dire qu'il résiste à
n'importe quel attaquant tout-puissant), sous réserve que
les trois propriétés suivantes soient vériées :
▶ la clef est une suite de caractères au moins aussi
longue que le message à chirer ;
▶ la clef est totalement aléatoire ;
▶ chaque clef (ou masque) n'est utilisée qu'une seule
fois.

11/68
Repère historique
Shannon est un mathématicien américain à l'origine de la
théorie de l'information.
Il a déni la notion d'entropie en théorie de l'information.
L'entropie de Shannon :
▶ mesure la quantité d'information contenue dans un
chier informatique.
▶ permet de quantier le nombre minimum de bits à
utiliser dans un certain nombre d'applications,
comme la compression, l'imagerie ou l'apprentissage
automatique.
12/68
La sécurité (inconditionnelle) vient du fait qu'étant donné
un message chiré, on peut toujours trouver une clef
telle que le chiré puisse correspondre à n'importe quel
message clair.
Bien entendu, l'inconvénient est que cette méthode est
totalement inutilisable en pratique, du fait de la gestion
des clefs.

13/68
Le chirement symétrique
Principe du chirement symétrique
Méthode de construction
Chirement par ots
Chirement par blocs

14/68
Méthode de construction

Il existe deux principaux types de chirements


symétriques :
▶ les chirements par ots ;
▶ et ceux par blocs.
Les données (messages et clefs) sont généralement codées
en binaire et les clefs sont des suites de bits aléatoires.

15/68
Chirement par ots
Dans un chirement par ots, les bits du message clair
sont chirés un à un, en utilisant à chaque fois un bit de
masque, sur le modèle du chirement de Vernam.
Le masque est appelé suite chirante et doit être
généré de façon pseudo-aléatoire (à défaut de
totalement aléatoire) à partir de la clef.
Diverses techniques peuvent être utilisées pour cela, par
exemple celle des registres à décalage à rétroaction linéaire
(LFSR, de l'anglais linear feedback shift register ).
Le chirement par ots le plus utilisé actuellement est
sans doute ChaCha20, par exemple dans les dernières
versions de la TLS (Transport Layer Security ou 
Sécurité de la couche de transport ).
16/68
Chirement par blocs
Les chirements par blocs consistent à découper le
message en morceaux de taille xe (les blocs) et à
chirer chaque bloc à l'aide de la clef correspondant au
bloc, dérivée de la clef initiale.
Les chirements par blocs procèdent en général de façon
itérative, en un certain nombre de tours.
Si le chirement est bien construit, la meilleure attaque
connue est la recherche exhaustive de la clef.
Comme on considère actuellement que les schémas de
chirement doivent résister à des attaquants en 2128
opérations, cela impose des clefs de plus de 128 bits.
17/68
Chirement par blocs
(Suite. . .)

Le DES (Data Encryption Standard ) fur le premier schéma


standardisé de chirement symétrique, en 1977.
Il utilisait des blocs de 64 bits et des clefs de 56 bits.
Désormais obsolète, il a été remplacé par AES (Advanced
Encryption Standard ), vainqueur du concours de
standardisation du NIST en 2001.
Il utilise des blocs de 128 bits et des clefs de 128, 192, ou
256 bits (pour un nombre de tours respectivement égal à
10, 12, ou 14).

18/68
Le fonctionnement d'un tour de AES est assez complexe,
mais dans les grandes lignes, le principe de
fonctionnement est le suivant :
▶ on ajoute d'abord la clef avec le XOR ;
▶ on applique une substitution non-linéaire (appelée
S-box ) à des petits morceaux de bloc pour créer de la
confusion dans le message chiré ;
▶ à l'aide de permutations et d'opération linéaires,
on mélange le résultat obtenu pour diuser la
confusion obtenue à l'étape précédente à tout le bloc.

19/68
Remarque

Dans un chirement par blocs, les blocs chirés


doivent ensuite être combinés pour créer un message
chiré global.
On eectue cette opération à l'aide des modes
opératoires, par exemple le mode CBC ou le mode
compteur.
Certains modes, comme ECB, ne sont pas sécurisés et
doivent être proscrits.

20/68
Image d'origine, puis chirée avec ECB
Le chirement symétrique

La cryptographie asymétrique pour distribuer des clefs


Problème de la distribution des clefs
Chirement asymétrique et distribution de clefs
Échange de clefs asymétrique
Signature électronique et authentication

Le protocole HTTPS

22/68
La cryptographie asymétrique pour distribuer des clefs
Problème de la distribution des clefs
Chirement asymétrique et distribution de clefs
Échange de clefs asymétrique
Signature électronique et authentication

23/68
Problème de la distribution des clefs

Le principal inconvénient du chirement symétrique


est la nécessité d'utiliser une clef secrète par couple
d'utilisateurs.
Sur un réseau de grande taille comme Internet, il est
totalement illusoire de distribuer ces clefs à l'avance et de
les stocker.
Une meilleure solution est de parvenir à créer cette clef à
la volée, au début de la communication, sans supposer
d'information partagée au préalable entre les deux
utilisateurs.

24/68
Problème de la distribution des clefs
(Suite. . .)

Mais comment faire en sorte que deux personnes, qui ne


se sont potentiellement jamais parlé, parviennent de
manière sûre à construire un secret commun ?
Ce problème a trouvé sa solution en 1976, avec l'invention
de la cryptographie asymétrique par Die et
Hellman, créateurs du schéma d'échange de clefs qui
porte à présent leur nom.

25/68
Problème de la distribution des clefs
(Suite. . .)

Il y a deux principales possibilités :


▶ une première solution est qu'Alice choisisse une clef
symétrique et la transmette à Bob grâce à du
chirement asymétrique,
▶ une deuxième est qu'ils se mettent d'accord et
construisent ensemble une clef.
On appelle généralement la première solution une
distribution de clefs et la seconde un échange de
clefs.
26/68
La cryptographie asymétrique pour distribuer des clefs
Problème de la distribution des clefs
Chirement asymétrique et distribution de clefs
Chirement asymétrique RSA
Échange de clefs asymétrique
Signature électronique et authentication

27/68
Chirement asymétrique et distribution de
clefs
Dans un système de chirement symétrique, Alice et
Bob doivent s'être mis d'accord sur la clef secrète à
utiliser.
Une conséquence est que seule Alice peut envoyer à Bob
des messages déchirables avec cette clef.
A l'inverse, dans un système de chirement
asymétrique (également appelé chirement à clef
publique), n'importe qui peut envoyer des messages à
Bob, et lui seul pourra les déchirer.
Cela permet de s'aranchir de la mise en accord initiale de
clef.
28/68
Chirement asymétrique. . .

Une analogie couramment utilisée est celle de la boîte aux


lettres :
N'importe quel expéditeur peut faire parvenir un message
au destinataire. Il n'a besoin que de son adresse publique
pour cela.
A l'inverse, seul le propriétaire de la boîte aux lettres, qui
possède sa clef (privée), pourra prendre le courrier et
lire le message.

29/68
Chirement asymétrique. . .
Un système de chirement asymétrique vers Bob est
donc composé de trois algorithmes :
▶ un algorithme de génération de clef, qui retourne en
sortie une clef publique pk et la clef privée sk
associée (uniquement envoyée à Bob) ;
▶ un algorithme de chirement qui prend en entrée
un message m secret et la clef publique pk et
renvoie un message chiré C public ;
▶ un algorithme de déchirement qui prend en entrée
un message chiré C public et la clef privée sk
et renvoie à Bob le message clair m secret.
30/68
Chirement asymétrique. . .

Chirement asymétrique

31/68
Chirement asymétrique. . .

Le système est correct si on a la propriété suivante :


dechiffrement(chiffrement(m,pk),sk)=m
Et il est sûr s'il est impossible de retrouver de
l'information sur m à partir de C et de pk sans la
connaissance de la clef privée sk.

32/68
Chirement asymétrique. . .
Les systèmes de chirement asymétrique reposent sur
l'existence de fonctions à sens unique à trappe. Ceci
signie que l'opération de chirement est facile, tandis
que l'opération inverse de déchirement est dicile.
La fonction de chirement est ainsi dite à sens
unique.
Mais Bob doit être en mesure de déchirer les messages
reçus, donc il existe une trappe (construite à partir de la
clef privée connue de lui seul) lui permettant d'inverser
la fonction de chirement pour obtenir la fonction de
déchirement.
33/68
Chirement asymétrique. . .
Cette propriété rend les systèmes asymétriques
vulnérables à des attaquants tout puissants (qui sauraient
retrouver la trappe).
On dit qu'ils sont calculatoirement sûrs, ce qui
suppose qu'ils sont sûrs contre des attaquants ne pouvant
pas dépasser une certaine puissance de calcul.
Une conséquence est que les paramètres utilisés sont
souvent plus grands qu'en chirement symétrique (de
256 bits pour les courbes elliptiques à 2 048 bits pour
RSA).

34/68
Chirement asymétrique RSA
Le système de chirement asymétrique le plus utilisé
actuellement est RSA, inventé en 1978 par Rivest,
Shamir et Adleman. Il exploite les propriétés de
l'arithmétique modulaire de la façon suivante.
Étant donnés un entier n (par exemple n = 77) et un
entier e (par exemple e = 13), il est facile de calculer le
message chiré correspondant à un message clair
(assimilé à un entier m < n) par la formule C ≡ me
mod n.
Par exemple, m = 35 se chire en C = 63.

35/68
En revanche, il est très dicile d'inverser ce procédé en
retrouvant m à partir de C et de la clef publique (n, e).
La fonction m 7→ me mod n est bien à sens unique.
Elle est également à trappe, car si l'on connaît la clef
privée (un entier d, ici d = 77, que l'on peut construire à
partir de e et de la factorisation de n), on est en mesure
de déchirer C à l'aide de la formule m ≡ C d mod n.
Ici, 63 se déchire bien en 35.

36/68
Remarque

Rappelons que C ≡ me mod n signie que C est égal au


reste de la division euclidienne de me par n.
En Python :
▶ l'opération modulo s'écrit %,
▶ et la puissance modulaire est obtenue à l'aide de la
fonction pow qui prend en paramètre m, e et n.
Le chirement de m est donc obtenu par pow(m,e,n) et
le déchirement de c par pow(c,d,n).

37/68
La cryptographie asymétrique pour distribuer des clefs
Problème de la distribution des clefs
Chirement asymétrique et distribution de clefs
Échange de clefs asymétrique
Signature électronique et authentication

38/68
Échange de clefs asymétrique
L'objectif du protocole d'échange de clefs de
Die-Hellman est de permettre à Alice et Bob, sans
avoir jamais échangé d'information, de se mettre d'accord
sur une clef secrète.
Comme RSA, il est basé sur des propriétés d'arithmétique
modulaire.
Pour simplier sa description, on utilise souvent l'analogie
des pots de peinture :
▶ Alice et Bob se mettent d'accord publiquement sur
des paramètres publics, soit la peinture jaune.
39/68
Échange de clefs. . .
▶ Ils possèdent chacun une donnée privée, soit la
peintures orange (respectivement turquoise) pour
Alice (resp. Bob).
▶ Chacun en déduit une donnée publique, soit la
peinture saumon (resp. bleu) pour Alice (resp. Bob)
obtenue en mélangeant la peinture en commun jaune
et la peinture secrète orange (resp. turquoise).
Cette donnée publique obtenue est transmise
publiquement à l'autre.
On suppose que ce mélange est une fonction à sens
unique à trappe : il est facile de mélanger les
couleurs, mais très dicile de les dissocier ensuite,
40/68
même en connaissant les données publiques.
Échange de clefs. . .

▶ Quand ils reçoivent la donnée publique de leur


interlocuteur : soit la peinture publique bleu (resp.
saumon) pour Alice (resp. Bob),
il ne leur reste plus qu'à y mélanger leur donnée
privée (orange pour Alice, turquoise pour Bob) an
obtenir une clef secrète commune : soit une peinture
kaki résultant du mélange du jaune (public) et du
orange (resp. turquoise) pour Alice (resp. Bob).

41/68
L'analogie des pots de peinture pour l'échange de clefs Die-Hellman
La cryptographie asymétrique pour distribuer des clefs
Problème de la distribution des clefs
Chirement asymétrique et distribution de clefs
Échange de clefs asymétrique
Signature électronique et authentication

43/68
Signature électronique et authentication

Dans la distribution ou l'échange de clefs, il manque la


propriété d'authentication.
En eet, quand Bob reçoit un message chiré
asymétrique, il n'a aucune garantie sur l'identité de la
personne qui lui a écrit.
C'est encore pire pour l'échange de clefs de
Die-Hellman, qui est vulnérable à l'attaque dite de
l'homme du milieu (man in the middle ).

44/68
Signature électronique. . .

En eet, un attaquant peut intercepter les mélanges


publics de couleur, y ajouter sa couleur privée et
construire ainsi deux clefs secrètes, l'une partagée avec
Alice et l'autre avec Bob, sans que ces derniers ne s'en
soient rendus compte.
Ainsi, le MITM construit deux clefs secrètes, l'une
partagée avec Alice et l'autre avec Bob, sans que ces
derniers ne s'en soient rendus compte.

45/68
Signature électronique. . .
Pour éviter cela, comme dans la vie réelle, Alice peut
signer les messages qu'elle envoie, cette signature étant
publiquement vériable (en particulier par Bob).
Un protocole de signature électronique est composé
de trois algorithmes :
▶ un algorithme de génération de clef, qui retourne en
sortie une clef publique de vérication pk et la clef
privée de signature sk associée (envoyée à Alice) ;
▶ un algorithme de signature, qui prend en entrée un
message m (public ou secret) et la clef sk
(privée) et renvoie une signature S (publique) ;
46/68
Signature électronique. . .

▶ un algorithme de vérication, qui prend en entrée un


message et sa signature (m, S) et la clef pk
(publique) et renvoie un booléen (vrai si la
signature est valide, faux sinon).
Ainsi, dans le cas du chirement asymétrique, au lieu
d'envoyer seulement C à Bob, Alice lui envoie (C, S).
Bob, qui possède la clef publique de vérication des
signatures d'Alice, peut donc s'assuer que c'est bien elle
qui lui a envoyé le message C.

47/68
De même, dans l'échange de clefs de
Die-Hellman, Alice et Bob envoient leur mélange
public (resp. saumon et bleu) accompagné de leur
signature.
Avant d'utiliser le mélange qu'ils reçoivent, ils vérie la
signature pour s'assurer que c'est bien leur interlocuteur
qui a envoyé ce mélange.

48/68
Remarque

Si la factorisation devenait une opération facile, le système


RSA serait totalement cassé car il serait facile de
retrouver l'exposant privé d à partir de l'exposant public
e.
Shor a décrit en 1994 un algorithme quantique pour
résoudre le problème de la factorisation.
Il ne sera donc plus recommandé d'utiliser le système RSA
ou l'échange de Die-Hellman si un ordinateur quantique
voit le jour dans les prochaines décennies.

49/68
Un concours de standardisation par le NIST (National
Institute of Standards and Technology ) est en cours
(2016-2024) pour trouver des protocoles de chirement
et de signature résistants à un potentiel ordinateur
quantique. Ils sont dits post-quantiques.

50/68
Le chirement symétrique

La cryptographie asymétrique pour distribuer des clefs

Le protocole HTTPS
Principe de fonctionnement
Les autorités de certication
Initialisation de la connexion

51/68
Le protocole HTTPS
Principe de fonctionnement
Les autorités de certication
Initialisation de la connexion

52/68
Principe de fonctionnement

Si un client eectue une requête HTTP vers un serveur


web, qui répond à cette requête (par exemple en lui
envoyant une page HTML), n'importe quel individu
malveillant pourrait lire les données transitant, voire les
modier.
Diverses attaques (entre autres celles de type  DNS
spoong ) permettent même à un serveur pirate de se
faire passer pour le site web en question.

53/68
C'est pour cette raison qu'il existe une version sécurisée de
HTTP, nommée HTTPS, qui assure la condentialité
et l'intégrité des données, ainsi que l'authentication
côté serveur.
HTTPS est un protocole hybride qui combine algorithmes
de chirement symétrique et asymétrique
(distribution de clefs) permettant ainsi d'assurer la
sécurité de la communication sur Internet.

54/68
Voici les grandes lignes du mécanisme utilisé :
1. initialisation de la connexion client-serveur :
▶ le client eectue une requête HTTPS vers le serveur,
qui lui envoie en retour un certicat contenant sa clef
publique pour un protocole asymétrique ;
▶ le client et le serveur interagissent à l'aide de ce
protocole asymétrique pour se mettre d'accord sur une
clef secrète K de chirement symétrique ;

55/68
2. échange des données : elles seront toutes chirées
avec la clef K, ce qui garantit la condentialité
de la communication.
Un protocole de MAC (Message Authentication
Code ), non décrit dans ce cours, exploitera également
cette clef pour assurer l'intégrité des données.

56/68
Le protocole HTTPS
Principe de fonctionnement
Les autorités de certication
Exemple de certicat HTTPS
Initialisation de la connexion

57/68
Les autorités de certication
Le point faible du protocole HTTPS est que le client doit
avoir une garantie que la clef publique reçue est bien
celle du serveur.
Pour cela, le serveur fournit une preuve de son identité
dans un certicat d'authentication, qui est délivré
par une autorité habilitée.
Les vérications sont menées par le navigateur du client,
qui met un terme à la connexion en cas de certicat non
valide.
Le certicat fait au minimum apparaître l'identité du
serveur, sa clef publique, la date de validité, l'identité
de l'autorité de certication et sa signature.
58/68
Exemple de certicat HTTPS
Consultons le site Web de l'ANSSI (Agence Nationale de
la Sécurité des Systèmes d'Information).
Achons les informations du site en cliquant sur le
cadenas situé (à gauche) dans la barre d'adresse du
navigateur :
▶ nom de l'autorité émettrice du certicat
▶ dates de validité du certicat
▶ algorithme de chirement utilisé
▶ clef publique
59/68
Le protocole HTTPS
Principe de fonctionnement
Les autorités de certication
Initialisation de la connexion
Initialisation basée sur RSA
Initialisation basée sur Die-Hellman

60/68
Initialisation de la connexion

À l'issue de l'initialisation de la connexion, une clef est


établie et le serveur est authentié (ce qui signie que le
client est sûr de parler à ce serveur).
Deux principales méthodes sont possibles pour
l'initialisation de la connexion :
▶ Initialisation basée sur RSA
▶ Initialisation basée sur Die-Hellman

61/68
Initialisation basée sur RSA
❶ Le serveur possède une clef publique pk de
chirement RSA (certiée par une autorité) ainsi que
la clef privée de déchirement sk associée.
❷ La clef publique pk est envoyée par le serveur au
client.
❸ Le client choisit alors la clef secrète K de
chirement symétrique, la chire avec la clef pk et
envoie le chiré C obtenu au serveur.
Ce dernier peut alors déchirer C grâce à sa clef
privée sk et obtenir K.
62/68
Initialisation de HTTPS basée sur RSA
Initialisation basée sur Die-Hellman

❶ Le serveur possède une clef publique pk de


vérication de signature électronique (certiée par
une autorité) ainsi que la clef privée de signature sk
associée.
❷ La clef publique pk est envoyée par le serveur au
client.
❸ Le serveur envoie alors le premier message A d'un
échange Die-Hellman et le signe avec sa clef
privée sk. Il envoie A et la signature S au client.

64/68
Initialisation basée sur Die-Hellman
(Suite. . .)

❹ Le client vérie la signature S avec la clef pk et


abandonne la connexion si elle est invalide.
Si elle est valide, le serveur est désormais authentié (le
client est bien sûr de parler au serveur en question). Le
client envoie alors le deuxième message B pour conclure
l'échange Die-Hellman.
A partir des messages A et B, le client et le serveur ont
calculé de la clef secrète commune K de chirement
symétrique sans que celle-ci ait transité, même cryptée,
sur le réseau. ☞ Explication en vidéo
65/68
Initialisation de HTTPS avec l'échange de clefs Die-Hellman signé
Remarque

Le protocole HTTPS ne garantit en général que


l'authentication du serveur.
Autrement dit, le client a la garantie de parler au bon
serveur.
Quand c'est nécessaire, l'authentication du client
vis-à-vis du serveur (est-ce bien ce client qui se connecte à
ce site Web ?) s'eectue ensuite (généralement par mot de
passe) dans le cadre de la conversation chirée.

67/68

Vous aimerez peut-être aussi