Vous êtes sur la page 1sur 15

V. Chiffrement Asymétrique.

Des clé et des cadenas


Alice :
— crée une clé aléatoire (la clé privée) ;
— puis fabrique un grand nombre de cadenas (clé publique) qu'elle
met à disposition dans un casier accessible par tous (le casier joue
le rôle de canal non sécurisé).
Bob :
— prend un cadenas (ouvert) ;
— ferme une valisette contenant le document qu’il souhaite
envoyer ;
— envoie la valisette à Alice, propriétaire de la clé publique (le
cadenas).
Cette dernière pourra ouvrir la valisette avec sa clé privée

Introduction à la cryptographie 1
Dan Boneh
V. Chiffrement Asymétrique.

 Les contraintes pour un tel algorithme: Il faut trouver un couple


de fonctions f (fonction unidirectionnelle) et g (fonction de porte
arrière) : C'est un problème mathématique difficile !

 Au départ, le système à clé publique n'a d'abord été qu'une idée


dont la faisabilité restait à démontrer.
Des algorithmes ont été proposés par des mathématiciens
Un des premiers algorithmes proposé repose sur la factorisation du
produit de deux grands nombres entiers.
Cette factorisation demanderait un temps de calcul de plusieurs
millions d'années.

Introduction à la cryptographie 2
Dan Boneh
V. Chiffrement Asymétrique.
Problème de la Factorisation
 Il est facile de calculer Z =X*Y connaissant X et Y.
Alors qu’il est difficile de trouver X et Y à partir de Z.
pour des valeurs de Z très grandes
C'est un problème mathématique difficile !

 Exemple: Z = 42, (X, Y) = (21, 2), (7, 6), (14, 3)

Z = 896789453210446778 très difficile de trouver X et Y

si X e Y sont des nombres premiers (PB est plus difficile)

Introduction à la cryptographie 3
Dan Boneh
V. Chiffrement Asymétrique.
Le RSA
 Le problème est résolu !: Cet algorithme a été proposé par Rivest,
Shamir et Adleman en 1977, ce qui a donné naissance au RSA.

L'idée générale est la suivante :


— La clé publique est le produit de deux grands nombres entiers;
— La clé privée est l'un de ces deux nombres entiers;

Seul Bob, qui connaît la clé privé peut factoriser la clé publique et donc
déchiffrer le message chiffré.

Introduction à la cryptographie 4
Dan Boneh
V. Chiffrement Asymétrique.

 Le système de chiffrement à clé publique est universel si chacun


publie sa clé publique dans un annuaire.

 Pour envoyer un message chiffré à Bob, il suffit de trouver sa clé


publique dans l'annuaire et de s'en servir pour chiffrer le message
avant de le lui envoyer (seul Bob pourra déchiffrer le message).

 Il faut bien sûr que l'annuaire soit sure.

 Oscar peut avoir substitué sa propre clé publique à celle de Bob afin
de pouvoir lire les messages destinés à Bob.
Il peut même les renvoyer à Bob une fois lu !

Introduction à la cryptographie 5
Dan Boneh
V. Chiffrement Asymétrique.

 La notion d'inverse
Ce que fait l'algorithme de chiffrement devra être défait plus tard lors du
déchiffrement.

 En mathématique, l'idée de défaire est l'inverse.


Il existe des fonctions inverses.
Les fonctions inverses sont des paires d 'opérations : exemple la
multiplication et la division sont des fonctions inverses, ce que l'une fait,
l'autre le défait.
Exemple : 5 * 2 = 10, 10 / 2 = 5

 et des nombres inverses


Les nombres inverses sont des paires de nombres, ce qu'un nombre
fait, l'autre le défait. (par rapport à une opération donnée)
Exemple : 2 et ½ avec 5 * 2 = 10, et 10 * ½ = 5
Avec les nombres inverses, l'opération reste la même (ici, la
multiplication). Introduction à la cryptographie 6
Dan Boneh
V. Chiffrement Asymétrique.
Les nombres premiers
 Fascinent les mathématiciens
Basés sur un principe simple: c’est un nombre qui ne possède que
deux facteurs, 1 et lui-même.

 13 est premier car aucun nombre


autre que 1 et 13 ne donne un
résultat entier en divisant 13.

 II existe des problèmes insurmontable à base de nombres premiers


Tout nombre pair est la somme de deux nombres premiers
Conjoncture de Cristian. Goldbach 18ème siècle
Confirmé par Leonard Euler (Pas démontré jusqu’à présent)
Introduction à la cryptographie 7
Dan Boneh
V. Chiffrement Asymétrique.
Quelques remarques sur les mathématiques modulaires
Utilisation de nombre premier
Lorsque le module est premier, les opérations « se comportent » de
manière pratique.

le petit théorème de Fermat


Si on utilise un nombre premier comme module, alors
quand on élève un nombre à la puissance (nombre
premier-1),on obtient 1!

Pour n'importe quel nombre m et pour p premier entre eux:


m(p – 1) mod p = 1
Exemple : 710 mod 11 = 1 …pas besoin de calcul car 11 est
premier ! Et 7 et 10 sont premiers entre eux

Introduction à la cryptographie 8
Dan Boneh
V. Chiffrement Asymétrique.
Quelques remarques sur les mathématiques modulaires
Leonhard Euler
Lorsqu'on utilise un module comme étant le produit de deux nombres
premiers on a :
Soit n = p*q, avec p et q premiers, et quelque soit m
m(p – 1)(q – 1) mod n = 1
Exemple : soit p = 11 et q = 5, n = 55 et (p–1)(q–1) = 10*4 = 40
3840 mod 55 = 1...pas besoin de calcul !
Si on manipule le résultat d'Euler en multipliant par m l'équation:
m*m(p – 1)(q–1) mod n = m m(p – 1)(q–1)+1 mod n = m
Cela veut dire que si on élève m à une certaine puissance, on retombe
sur m !

Ainsi, il est possible de « cycler » dans les exponentiations :


Exemple : 7^1 = 7 mod 55, 7^40 = 1 mod 55 7^41 = 7 mod 55
7^2 = 49 mod 55, 7^41 = 7 mod 55 7^42 = 49 mod 55
7^3 = 7*49 = 343 = 13 mod 55, 7^43 = 13 mod 55...
7^4 = 13 * 7 =Introduction
91 = 36à lamod 55, …
cryptographie 9
Dan Boneh
V. Chiffrement Asymétrique.
Idée de chiffrement à clé publique : le RSA
 Euler modifié
On sait que m(p–1)(q–1)+1 mod n = m
Il est possible d'aller de m vers m par une élévation au
(p –1)(q–1)+1 = e*d
m
m =𝑓(m)= me*dmod n = (me)dmod n
 Il ne suffit que de décomposer cette fonction en deux
sous fonctions :𝒇𝟏 𝑒𝑡𝒇𝟐 𝒇𝟏 permet de passer de m à une
𝒇𝟏
valeur intermédiaire 𝒇𝟏 (m);
m (m)  𝒇𝟐 permet de passer de cette
𝒇𝟐 valeur intermédiaire vers m;

10
Introduction à la cryptographie Dan Boneh
V. Chiffrement Asymétrique.
Idée de chiffrement à clé publique : le RSA

e * d = (p – 1)(q –1) + 1
Possibilité de chiffrement clé publique 𝒆 𝒇𝟏
𝒄 = 𝒇𝟏 (m)= me mod n m c
Et de déchiffrement avec la clé privé 𝒅
𝒇𝟐
𝒇𝟐 (c)= cd mod n = m

Problème: e*d: Nombre impair qui peut être premier!

Comment faire ?
utiliser l'arithmétique modulaire :
Trouver e * d tel que e * d = 1 mod { e * d – 1}
11
Dan Boneh
V. Chiffrement Asymétrique.
Chiffrement à clé publique : le RSA
Principe du RSA
 Utiliser deux modules, l'un pour la génération des clés et
l'autre pour le chiffrement.
pour les clés : (p–1)(q–1) = φ(n)
pour chiffrer : p*q = n

 Utilisation de de trois algorithmes.


 Pour la génération des clés publique et privé.
 Pour le chiffrement
 Pour le déchiffrement

Introduction à la cryptographie 12
Dan Boneh
V. Chiffrement Asymétrique.
Chiffrement/Déchiffrement par le RSA
Soient : — m le message en clair
— c le message encrypté (Cryptogramme)
— (e, n) constitue la clé publique
— (d, n) constitue la clé privée
— n le produit de 2 nombres premiers
— ^ l'opération de mise à la puissance (a^b : a puissance b)
— mod l'opération de modulo (reste de la division entière)
Pour chiffrer un message M, on fait: c = m^e mod n
Pour déchiffrer un cryptogramme C m = c^d mod n

Construction des clés


— Choisir deux nombres premiers p et q (de taille à peu près égale).
Calculer n = p*q.
— Choisir e qui n'a aucun facteur en commun avec φ(n) = (p-1)(q-1).
— calculer d tel que e*d mod φ(n) = 1
Le couple (e, n) constitue la clé publique. (d, n) est la clé privée.
Introduction à la cryptographie 13
Dan Boneh
V. Chiffrement Asymétrique.
Quelques éléments et rappels de mathématique

 Le calcul de l'exponentiation (Chiffrement/ Déchiffrement)


XY * XZ = XY+Z
(X Y) Z = XY*Z
 La méthode Naïve : utilisation de multiplications successives
Pour le calcul de V = AB = A*A*A*A*…..*A
B fois
B est sur 1024 bits et plus (RSA) B est de l’ordre de 10308
Problème
Nombre de multiplications énorme
Taille des résultats intermédiaires

Introduction à la cryptographie 14
Dan Boneh
V. Chiffrement Asymétrique.
Quelques éléments et rappels de mathématique
 Le calcul de l'exponentiation (Reduction du nombre d’opérations)
XY * XZ = XY+Z
(X Y) Z = XY*Z
 La méthode indienne :
soit le calcul de V = AB :
Initialiser V = 1
Tant que B ≥ 1 faire
- si B est impair, multiplier V par A et retrancher 1 à B
- sinon, élever A au carré et diviser B par 2
Exemple : V = 635 étape 0 : V = 1, B = 35, A = 6
étape 1 : B est impair alors V = 1*6 = 6, B = 34
étape 2 : B est pair A = 6*6 = 36, B = 17, V = 6
étape 3 : B est impair V = 6 * 36 = 216, B = 16, A = 36
étape 4 : B est pair A = 36 * 36 =1296, B = 8, V = 216
étape 5 : B est pair A = 216 * 216 =1679616, B = 4, V = 216
étape 6 : B est pair A = 1679616 2 = 2821109907456, B= 2, V = 216
étape 7: B est pair A = 28211099074562 = 7958661109946400884391936, B=1
étape 8 : B est impair, V = 216Introduction
* A = 171907079974842259102865817
à la cryptographie 15
Dan Boneh

Vous aimerez peut-être aussi