Vous êtes sur la page 1sur 37

Standards de Chiffrement

Chiffres à clé publique

Cours Sécurité de Licence Pro 1


Limite du chiffrement symétrique

Les chiffres classiques comme le DES, et AES sont des chiffres à
clé symétrique et secrète.

Avant de commencer à échanger des informations, les
interlocuteurs doivent partager une clé confidentielle.

On se trouve alors face à un cercle vicieux:
- La confidentialité de l'information échangée est garantie par
la confidentialité de la clé.
- Comment garantir alors une distribution confidentielle des
clés ?
- Si les deux interlocuteurs disposent d'une ligne sécurisée
inviolable pour échanger la clé, à quoi bon chiffrer les
messages?

Cours Sécurité de Licence Pro 2


Cryptographie à clé publique

La cryptographie à clé publique, proposée par
Diffie et Hellman en 1976, apporte une réponse
au problème de la distribution des clés

Elle permet une communication chiffrée sans
canal sécurisé pour l'échange des clés

Les chiffres à clé publique constituent également
la base de plusieurs protocoles d'authentification

Cours Sécurité de Licence Pro 3


Principe des chiffres à clé publique

Un chiffre à clé publique est un chiffre
asymétrique, reposant sur l'utilisation de deux
clés distinctes par paire d'interlocuteurs.
- la clé publique, distribuée librement, permet de
chiffrer les messages
- la clé privée permet de déchiffrer les messages
chiffrés avec la clé publique correspondante. Elle
n’est pas partagée

Cours Sécurité de Licence Pro 4


Exemple

Bob distribue sa clé publique à tous ses interlocuteurs potentiels.

Il garde secrète sa clé privée.

Pour envoyer un message à Bob, Alice chiffre le texte avec la clé
publique de Bob.

Pour le déchiffrer, Bob utilise sa clé privée.

Cours Sécurité de Licence Pro 5


Principe des chiffres à clé publique

La confidentialité de l'information échangée est
garantie par la non symétrie des opérations de
chiffrement et de déchiffrement:
- la clé utilisée pour chiffrer ne peut pas être utilisé
pour déchiffrer;
- il est impossible de reconstituer une clé à partir de
l'autre.

Cours Sécurité de Licence Pro 6


Algorithmes impraticables

Pour qu'un chiffre à clé publique soit sûr, on doit
évidemment garantir qu'il est très difficile de déchiffrer
un message si on ne connaît que la clé publique qui a
servi à le chiffrer.

Plus précisément, on veut que le déchiffrement avec la
clé publique conduise à un algorithme impraticable.

Cours Sécurité de Licence Pro 7


Algorithmes impraticables


Un algorithme impraticable est un algorithme avec lequel il
est matériellement impossible de résoudre un problème de
grande taille, quels que soient le temps et la puissance de
calcul dont on dispose.

On considère comme impraticables les algorithmes dont la
complexité est au moins exponentielle: une augmentation de
1 de la taille des données double (au moins) le temps de
calcul.

Cours Sécurité de Licence Pro 8


Algorithmes impraticables

Une attaque à force brute constitue un exemple
d'algorithme impraticable, puisque son coût est
une fonction exponentielle de la taille de la clé.

Cours Sécurité de Licence Pro 9


Le chiffre RSA

Le chiffre RSA constitue actuellement le standard
de chiffrement à clé publique.

Baptisé d'après le nom de ses inventeurs, Rivest,
Shamir et Adleman, il permet de résoudre de
façon élégante le problème de l'authentification et
celui de la distribution des clés.

Cours Sécurité de Licence Pro 10


Le chiffre RSA
Exemple de fonctionnement:


Clé publique : (23,143) ; Clé privée : (47,143)

Normalement, les données sont compressées puis
découpées en morceaux de taille < n

1 car = 1 car ASCII :

Cours Sécurité de Licence Pro 11


Bits 3 2 1 0
Table ASCII
0 1 .... E
0000 0001.... 1111
010 SP ! " # $ %&' ( ) * +, - . /
011 0 1 2 3 4 5 6 7 8 9 : ; < = >?
100 @ ABC DE F GHI J KL MN O
101 PQ R S T U V W XY Z [ \ ] ^_
110 ` a b c d e f g h i j k l mn o
111 p q r s t uv wx y z { | } ~
Bits 6 5 4 code 1101010 soit 106 en décimal
Cours Sécurité de Licence Pro 12
Chiffrement

c = m mod n e



(e,n) est la clé

m le message en clair

c le message chiffré

Cours Sécurité de Licence Pro 13


Déchiffrement

m = c mod n d



(d,n) est la clé

m le message en clair

c le message chiffré

Cours Sécurité de Licence Pro 14


Le chiffre RSA

L'algorithme est fondé sur un théorème célèbre
d'arithmétique, dû au mathématicien Euler.

Théorème. Soient p et q deux nombres premiers.
Pour tout entier k et tout entier M tel que
0<M<pq, on a:

k ( p−1)(q−1)+1
M = M (mod pq)

Cours Sécurité de Licence Pro 15



Autrement dit, dans l'arithmétique modulo (pq),
M
k (p −1)(q−1)+1
est égale à M

Cours Sécurité de Licence Pro 16


k ( p−1)(q−1)+1
M = M (mod pq)

Exemple. Avec p=2 et q=3, on est dans


l'arithmétique modulo 6, et on a bien l’égalité
vérifiée pour M=1,2,3,4,5.
Ex : M=3 3 k (2−1)(3−1)+1 =3(mod (2∗3))
3 k (1)(2)+1 =3(mod 6)
2 k +1
3 =3(mod 6)

Cours Sécurité de Licence Pro 17


Fonctionnement de l'algorithme

On commence par construire les clés :
- on choisit secrètement deux grands nombres
premiers p et q.
- on calcule n= pq; le nombre n est public;
- on choisit e<(p-1)(q-1) et premier avec (p-1)(q-1); e
est public;
- on calcule d tel que ed=1 mod (p-1)(q-1); d est secret;

La clé publique est le couple (e,n) et la clé
privée le couple (d,n).

Cours Sécurité de Licence Pro 18


Fonctionnement de l'algorithme

On chiffre des blocs de k bits, k étant choisi de sorte que:
k k 1
2 n≤2

Chaque bloc est vu comme un entier M écrit sous forme binaire
donc:
k
M 2

On chiffre M par C, ainsi défini:
e
C=M (mod n)

Par construction, on a ed=k(p-1)(q-1)+1. Alors, le théorème
d'Euler montre que:
ed
M = M (mod n)

Donc, on déchiffre C en calculant:
d
M =C (mod n)
Cours Sécurité de Licence Pro 19
Exemple
Exemple

Soient p = 11, q = 13, deux nombres premiers
- On en déduit n = 143

On choisit e = 23,
- on a bien e<(11-1)(13-1), e<120, et e est bien premier avec 120

On en déduit d = 47
- (inverse modulaire de e sur Z120, 23*47 = 1 (mod 120))

⇒ Clé publique : (23,143) ; Clé privée : (47,143)

Normalement, les données sont compressées puis découpées en
morceaux de taille < n

1 car = 1 car ASCII :
Cours Sécurité de Licence Pro 20
Bits 3 2 1 0
Table ASCII
0 1 .... E
0000 0001.... 1111
010 SP ! " # $ %&' ( ) * +, - . /
011 0 1 2 3 4 5 6 7 8 9 : ; < = >?
100 @ ABC DE F GHI J KL MN O
101 PQ R S T U V W XY Z [ \ ] ^_
110 ` a b c d e f g h i j k l mn o
111 p q r s t uv wx y z { | } ~
Bits 6 5 4 code 1101010 soit 106 en décimal
Cours Sécurité de Licence Pro 21

Chiffrement

Cours Sécurité de Licence Pro 22



Déchiffrement

Cours Sécurité de Licence Pro 23


Pause exercice de nouveau
Soit (5,21) ma clé privée. Déchiffrez le message suivant que je viens
de recevoir, sachant que l'on associe à A le nombre 0, à B le nombre
1, ...

LQKAIKPAJJILODPCIEUQ
11-16-10-0-8-10-15-0-9-9-8-11-14-3-15-2-8-4-20-16

Cours Sécurité de Licence Pro 24


Pause exercice de nouveau
Soit (5,21) ma clé privée. Déchiffrez le message suivant que je viens
de recevoir, sachant que l'on associe à A le nombre 0, à B le nombre
1, …

Cours Sécurité de Licence Pro 25


Pause exercice de nouveau
Soit (5,21) ma clé privée. Déchiffrez le message suivant que je viens
de recevoir, sachant que l'on associe à A le nombre 0, à B le nombre
1, …

● L=11, 115 mod 21 = 2 → C


● Q=16, 165 mod 21 = 4 → E
● ...

Cours Sécurité de Licence Pro 26


Pause exercice de nouveau

Soit (5,21) ma clé privée. Décryptez le message suivant


que je viens de recevoir, sachant que l'on associe à a le
nombre 0, b, le nombre 1, ...
LQKAIKPAJJILODPCIEUQ
11-16-10-0-8-10-15-0-9-9-8-11-14-3-15-2-8-4-20-16
2-4-19-0-8-19-15-0-18-18-8-2-14-12-15-11-8-16-20-4
CETAITPASSICOMPLIQUE

Cours Sécurité de Licence Pro 27


Pause exercice de nouveau (Bonus)

Soit (5,21) ma clé privée. Décryptez le message suivant


que je viens de recevoir, sachant que l'on associe à a le
nombre 0, b, le nombre 1, ...

On peut également retrouver la clé publique


associée :
●n=21, donc p=3, q=7 car 3*7=21, 3,7 sont

premiers
●(p-1)(q-1)=2*6=12

●d=5, car e*d= 5*5 = 25 = 1 mod 12

Cours Sécurité de Licence Pro 28



Remarques:
- Il n’est pas très astucieux de choisir d’aussi
petites valeurs :
→ On peut retrouver d très facilement :

21 ne peut pas être autre chose que 3*7

- En pratique :
→ Prendre de très grandes valeurs de p et q
→ Pour trouver ces grandes valeurs :

 Jacobi + test de Solovay-Strassen

 Rabin-Miller

Cours Sécurité de Licence Pro 29



Il est important de noter que, contrairement au
chiffre de Merkle-Hellman, les clés publique et
privée du chiffre RSA sont permutables. Un texte
chiffré avec la clé privée pourra être déchiffré
avec la clé publique.

Cours Sécurité de Licence Pro 30


Sûreté du chiffre RSA

Si on est capable de décomposer n en produit n=pq
de deux nombres premiers, on peut calculer d.

Une attaque à force brute contre le chiffre RSA peut
réussir si la taille des clés est petite.

Il est conseillé d’utiliser des nombres premiers p et q
sur 2048 bits

Cours Sécurité de Licence Pro 31


Sûreté du chiffre RSA

Connaissances actuelles sur la factorisation:
- lentes améliorations au cours des années
- 1999 : Factorisation d’un nombre à 155
chiffres décimaux (512 bits)
- 2009 : Factorisation d’un nombre à 232
chiffres décimaux (768 bits)

Cours Sécurité de Licence Pro 32


Sûreté du chiffre RSA

Meilleure amélioration : optimisation des algorithmes

Mais rien ne dit que casser le RSA est aussi difficile que
de factoriser n.

Il existe peut-être un autre moyen d'inverser la clé
publique sans passer par la factorisation de n.
- Mauvaise utilisation de la cryptographie RSA
exposant e trop petit


Excepté un changement dramatique : RSA- 2048 est
sûr:
- S’assurer p, q ont une telle taille et respecter les autres
contraintes
Cours Sécurité de Licence Pro 33
Sûreté du chiffre RSA

Les chercheurs de l'EPFL (Ecole polytechnique fédérale
de Lausanne), associés à des confrères de l'université de
Bonn et du Japonais NTT, sont parvenus à extraire les
facteurs premiers d'un nombre de 307 chiffres en mai
2007 (puissance de traitement de 300 à 400 micros
pendant 11 mois)

La performance de l'EPFL équivaut au décryptage d'une
clé RSA de 700 bit, soit un bond par rapport au record de
factorisation détenu jusque-là par l'université de Bonn
avec celle d'un nombre RSA de 200 chiffres.

Cours Sécurité de Licence Pro 34


Sûreté du chiffre RSA

Déterminer si un nombre de 200 chiffres est premier ou non : moins
de 5 minutes (en 2002)

le 44ème nombre de Mersenne est trouvé le 4 septembre 2006 c'est:
32582657 9808358
2 −1 Ordre de grandeur: 10

le 46ème nombre de Mersenne est trouvé le 23 août 2008 c'est:
43112609 12 978189
2 −1 Ordre de grandeur: 10

le 48ème nombre de Mersenne est trouvé le 25 janvier 2013 c'est:
57885161 17425170
2 −1 Ordre de grandeur: 10


Le 49ème nombre de Mersenne est trouvé en janvier 2016

Cours Sécurité de Licence Pro 35


Sûreté du chiffre RSA

Enfin, les progrès de la physique vont peut-être sonner le
glas de la cryptographie mathématique.

Il a été défini, du moins en théorie, un modèle
d'ordinateur quantique qui, s'il était réalisé, permettrait
de factoriser très rapidement des entiers.

On a estimé qu'un ordinateur classique requiert 10
millions de milliards de milliards d'années pour
factoriser un nombre constitué de 1000 chiffres. En
appliquant l'algorithme de Shor, notre programmeur
obtiendra son résultat en… 20 minutes !

Les ordinateurs quantiques n'en sont encore qu'à leurs
prémices
Cours Sécurité de Licence Pro 36
Faiblesses de RSA

On constate que la structure du texte clair n'est que très
partiellement masquée.

L'algorithme est environ 1000 fois plus lent que le DES.

Ces faiblesses se retrouvent, à peu de choses près, dans
tous les chiffres à clé publique connus.

Seuls les algorithmes à clé symétrique et secrète comme
le DES sont suffisamment simples et rapides pour
permettre une utilisation efficace. La sûreté de la
communication repose alors sur la confidentialité de la
gestion et de la distribution des clés secrètes.

Cours Sécurité de Licence Pro 37

Vous aimerez peut-être aussi