Vous êtes sur la page 1sur 79

Cryptographie à clé publique

Hervé Talé Kalachi

March 22, 2021

Herve KALACHI March 22, 2021 1 / 33


Cryptographie à clé publique
Par

Hervé Talé Kalachi

ENSP : Yaoundé

Herve KALACHI March 22, 2021 2 / 33


Limitations de la cryptographie à clé secrète

Chiffrement à clé secrète : la clé doit rester secrète !

Problème de communication de la clé (valise diplomatique).

Années 1970 : Explosion des communications =⇒ nombre de clés secrètes augmentent.

Enfer à gérer...

Problème d’authentification : utilisateur s’envoie un message fictif au nom de son


correspondant.
Falsification non prouvable (même clé) !

Idée saugrenue de quelques chercheurs à l’époque :


« Cherchons un moyen de communiquer sans qu’il y’ait besoin de s’échanger une clé
secrète...»
Révolution du principe de Kerckhoffs !

Réaction mitigée de la communauté cryptographique de l’époque

Herve KALACHI March 22, 2021 3 / 33


Idée d’une nouvelle méthode

Motivations des chercheurs :


Idée faisable physiquement
Alice et Bob veulent communiquer, mais ne se sont pas mis d’accord sur un secret commun.
Comment peuvent-ils communiquer ?
Par la poste ! !
...
Risque : les postiers peuvent ouvrir les paquets...

Affirmation

Alice et Bob peuvent s’échanger un paquet de manière sécurisée sans se rencontrer.

Herve KALACHI March 22, 2021 4 / 33


Idée d’une nouvelle méthode

Motivations des chercheurs :


Idée faisable physiquement
Alice et Bob veulent communiquer, mais ne se sont pas mis d’accord sur un secret commun.
Comment peuvent-ils communiquer ?
Par la poste ! !
...
Risque : les postiers peuvent ouvrir les paquets...

Affirmation

Alice et Bob peuvent s’échanger un paquet de manière sécurisée sans se rencontrer.

Herve KALACHI March 22, 2021 4 / 33


Idée d’une nouvelle méthode

Motivations des chercheurs :


Idée faisable physiquement
Alice et Bob veulent communiquer, mais ne se sont pas mis d’accord sur un secret commun.
Comment peuvent-ils communiquer ?
Par la poste ! !
...
Risque : les postiers peuvent ouvrir les paquets...

Affirmation

Alice et Bob peuvent s’échanger un paquet de manière sécurisée sans se rencontrer.

Herve KALACHI March 22, 2021 4 / 33


Comment ?

1 Alice met un message (une clé par exemple) dans un coffre, le ferme avec une de ses clés et
l’envoie à Bob.
Ni le facteur, ni Bob ne peut ouvrir le coffre.
2 Bob met un cadenas sur le coffre, et renvoie le coffre à Alice.
Le facteur ne peut toujours pas ouvrir le coffre.
3 Alice enlève son cadenas et envoie le coffre à Bob
Le facteur ne peut toujours pas ouvrir !
4 Bob enlève son cadenas et peut lire le message d’Alice.

Herve KALACHI March 22, 2021 5 / 33


Échange de clé en pratique

Herve KALACHI March 22, 2021 6 / 33


De la pratique à la théorie

Mise en évidence d’un protocole « pratique » d’échange de message à distance sans s’être
mis d’accord sur un secret commun.

Protocole lourd (3 envois, 2 chiffrements, 2 déchiffrements)

W. Diffie : « Si ça marche en pratique (sur un exemple simple), pourquoi on ne pourrait pas


appliquer ce principe au monde des télécommunications ? »

Théorisation : notion de fonction à sens unique

Herve KALACHI March 22, 2021 7 / 33


Fonctions à sens unique

=⇒ De bonnes fonctions à sens unique sont des fonctions telles que retrouver x à partir de F (x )
est un problème mathématique réputé difficile.

Herve KALACHI March 22, 2021 8 / 33


Fonctions à sens unique

=⇒ De bonnes fonctions à sens unique sont des fonctions telles que retrouver x à partir de F (x )
est un problème mathématique réputé difficile.

Herve KALACHI March 22, 2021 8 / 33


Exemples de fonction à sens unique

Non-Mathématiques

Mélanger deux pots de peinture

Faire une omelette

Mathématiques

Exponentiation modulaire

Herve KALACHI March 22, 2021 9 / 33


Exponentiation modulaire

Z/nZ anneau des entiers modulo n

(Z/nZ)* inversibles de Z/nZ

Exponentielle modulaire :
Soit a ∈ (Z/nZ)*
fa : (Z/nZ)* −→ (Z/nZ)*
x ↦−→ ax mod n

Exemple :
f2 : (Z/541Z)* −→ (Z/541Z)*
x ↦−→ 2x mod 541

f2 (10) = 210 mod 541 = 1024 mod 541 = 483

Herve KALACHI March 22, 2021 10 / 33


Exponentiation modulaire

Z/nZ anneau des entiers modulo n

(Z/nZ)* inversibles de Z/nZ

Exponentielle modulaire :
Soit a ∈ (Z/nZ)*
fa : (Z/nZ)* −→ (Z/nZ)*
x ↦−→ ax mod n

Exemple :
f2 : (Z/541Z)* −→ (Z/541Z)*
x ↦−→ 2x mod 541

f2 (10) = 210 mod 541 = 1024 mod 541 = 483

Herve KALACHI March 22, 2021 10 / 33


Les entiers modulo p, rappels
Corps
Z/nZ est un corps ssi n est premier.

Générateur, groupe cyclique


Soit n un entier premier.

(Z/nZ)* est un groupe multiplicatif cyclique :

il existe un élément g de (Z/nZ)* , appelé élément générateur tel que :

(Z/nZ)* = {g 0 , g 1 , ..., g n−2 }

Exemple
7 est premier ⇒ Z/7Z est un corps.

g = 3 est un générateur de (Z/7Z)* :

{g i mod 7, 0 6 i 6 5} = {1, 3, 2, 6, 4, 5}

Herve KALACHI March 22, 2021 11 / 33


Intérêt

Théorème 1
Soit n un entier premier et g un générateur de (Z/nZ)* . La fonction :
fg : (Z/nZ)* −→ (Z/nZ)*
x ↦−→ g x mod n
est bijective.

Propriété indispensable pour « inverser » une fonction à sens unique

Exemple
2 est un générateur de (Z/541Z)* (admis)

f : {1, · · · , 540} −→ {1, · · · , 540}


x ↦−→ 2x mod 541

est une fonction à sens unique bijective.

Herve KALACHI March 22, 2021 12 / 33


Calcul pratique de l’exponentielle modulaire

g x mod n
Méthode naïve : x − 1 multiplications modulaires (a × a × · · · × a)
Méthode performante : « square and multiply »

Square and multiply : Principe


Décomposition de l’exposant x en base 2
k−1
∑︁
x= xℓ 2ℓ
ℓ=0

On fixe P = 1 pour commencer, puis :


Si xℓ = 0, P ← P 2
Si xℓ = 1, P ← P 2 × g

Herve KALACHI March 22, 2021 13 / 33


Square and multiply

Exemple de calcul
g 19 mod n

19 = 24 + 21 + 20 = (10011)2
P = 1 //initialisation
(︀ )︀
x4 = 1 ⇒ P = 1 2 × g
(︀(︀ )︀ )︀2
x3 = 0 ⇒ P = 1 2 × g
(︁(︀(︀ )︀ )︀2 )︁2
x2 = 0 ⇒ P = 12 × g
)︀2 )︁2 2
(︂(︁ )︂
(︀(︀ 2 )︀
x1 = 1 ⇒ P = 1 ×g ×g
(︃(︂ )︃2
)︀2 )︁2 2
(︁(︀(︀ )︀ )︂
2
x0 = 1 ⇒ P = 1 ×g ×g ×g

5 «square» et 3 «multiply»

Calcul simple (linéaire en la taille de x ).

Exemple : Calculer 519 mod 541

Herve KALACHI March 22, 2021 14 / 33


Square and multiply

Exemple de calcul
g 19 mod n

19 = 24 + 21 + 20 = (10011)2
P = 1 //initialisation
(︀ )︀
x4 = 1 ⇒ P = 1 2 × g
(︀(︀ )︀ )︀2
x3 = 0 ⇒ P = 1 2 × g
(︁(︀(︀ )︀ )︀2 )︁2
x2 = 0 ⇒ P = 12 × g
)︀2 )︁2 2
(︂(︁ )︂
(︀(︀ 2 )︀
x1 = 1 ⇒ P = 1 ×g ×g
(︃(︂ )︃2
)︀2 )︁2 2
(︁(︀(︀ )︀ )︂
2
x0 = 1 ⇒ P = 1 ×g ×g ×g

5 «square» et 3 «multiply»

Calcul simple (linéaire en la taille de x ).

Exemple : Calculer 519 mod 541

Herve KALACHI March 22, 2021 14 / 33


Square and multiply

Exemple de calcul
g 19 mod n

19 = 24 + 21 + 20 = (10011)2
P = 1 //initialisation
(︀ )︀
x4 = 1 ⇒ P = 1 2 × g
(︀(︀ )︀ )︀2
x3 = 0 ⇒ P = 1 2 × g
(︁(︀(︀ )︀ )︀2 )︁2
x2 = 0 ⇒ P = 12 × g
)︀2 )︁2 2
(︂(︁ )︂
(︀(︀ 2 )︀
x1 = 1 ⇒ P = 1 ×g ×g
(︃(︂ )︃2
)︀2 )︁2 2
(︁(︀(︀ )︀ )︂
2
x0 = 1 ⇒ P = 1 ×g ×g ×g

5 «square» et 3 «multiply»

Calcul simple (linéaire en la taille de x ).

Exemple : Calculer 519 mod 541

Herve KALACHI March 22, 2021 14 / 33


Square and multiply

Exemple de calcul
g 19 mod n

19 = 24 + 21 + 20 = (10011)2
P = 1 //initialisation
(︀ )︀
x4 = 1 ⇒ P = 1 2 × g
(︀(︀ )︀ )︀2
x3 = 0 ⇒ P = 1 2 × g
(︁(︀(︀ )︀ )︀2 )︁2
x2 = 0 ⇒ P = 12 × g
)︀2 )︁2 2
(︂(︁ )︂
(︀(︀ 2 )︀
x1 = 1 ⇒ P = 1 ×g ×g
(︃(︂ )︃2
)︀2 )︁2 2
(︁(︀(︀ )︀ )︂
2
x0 = 1 ⇒ P = 1 ×g ×g ×g

5 «square» et 3 «multiply»

Calcul simple (linéaire en la taille de x ).

Exemple : Calculer 519 mod 541

Herve KALACHI March 22, 2021 14 / 33


Square and multiply

Exemple de calcul
g 19 mod n

19 = 24 + 21 + 20 = (10011)2
P = 1 //initialisation
(︀ )︀
x4 = 1 ⇒ P = 1 2 × g
(︀(︀ )︀ )︀2
x3 = 0 ⇒ P = 1 2 × g
(︁(︀(︀ )︀ )︀2 )︁2
x2 = 0 ⇒ P = 12 × g
)︀2 )︁2 2
(︂(︁ )︂
(︀(︀ 2 )︀
x1 = 1 ⇒ P = 1 ×g ×g
(︃(︂ )︃2
)︀2 )︁2 2
(︁(︀(︀ )︀ )︂
2
x0 = 1 ⇒ P = 1 ×g ×g ×g

5 «square» et 3 «multiply»

Calcul simple (linéaire en la taille de x ).

Exemple : Calculer 519 mod 541 = 123

Herve KALACHI March 22, 2021 15 / 33


2ème propriété d’une fonction à sens unique

Exponentielle modulaire facile à calculer dans un sens.

Et dans l’autre sens ?

Problème du logarithme discret


Étant donné, y ∈ (Z/nZ)* trouver x tel que g x mod n = y

Exemple
trouver x tel que 2x = 69 mod 541.

Herve KALACHI March 22, 2021 16 / 33


2ème propriété d’une fonction à sens unique

Exponentielle modulaire facile à calculer dans un sens.

Et dans l’autre sens ?

Problème du logarithme discret


Étant donné, y ∈ (Z/nZ)* trouver x tel que g x mod n = y

Exemple
Trouver x tel que 2x = 69 mod 541.
Même avec quelques indications :

2280 mod 541 = 582290 mod 541 = 4232300 mod 541 = 352

Herve KALACHI March 22, 2021 17 / 33


2ème propriété d’une fonction à sens unique

Exponentielle modulaire facile à calculer dans un sens.

Et dans l’autre sens ?

Problème du logarithme discret


Étant donné, y ∈ (Z/nZ)* trouver x tel que g x mod n = y

Exemple
Trouver x tel que 2x = 69 mod 541.
Même avec quelques indications :

2280 mod 541 = 582290 mod 541 = 4232300 mod 541 = 352

Bonne réponse : 2292 mod 541 = 69

Le calcul du logarithme discret est un problème difficile !

Herve KALACHI March 22, 2021 18 / 33


Application : protocole d’échange de clé de Diffie-Hellman (1976)

Soit p un entier premier d’au moins 230 chiffres (768 bits) et g un générateur de (Z/pZ)* .

Alice : Bob :

Choisit xa ∈ (Z/pZ)* Choisit xb ∈ (Z/pZ)*

Calcule ya = g xa mod p Calcule yb = g xb mod p

Envoie ya à Bob Envoie yb à Alice

Reçoit yb de Bob Reçoit ya de Alice

Calcule K = ybxa mod p Calcule K = yaxb modp


Bilan :
ybxa = (g xb )xa = g xa xb = (g xa )xb = yaxb
Paramètres publics : p et g
Paramètres secrets : xa (connu uniquement d’Alice) et xb (connu uniquement de Bob) et
K = g xa xb le secret commun partagé par Alice et Bob.

Herve KALACHI March 22, 2021 19 / 33


Sécurité de l’échange de clé de Diffie-Hellman

Un attaquant veut trouver K = g xa xb mod p

Problème de Diffie-Hellman
Étant donné un nombre premier p et un générateur g de (Z/pZ). Étant donné les valeurs g xa
mod p et g xb mod p, Calculer g xa xb mod p.

Problème ouvert
Peut-on résoudre le problème de Diffie-Hellman sans résoudre celui du logarithme discret modulo
p?

Herve KALACHI March 22, 2021 20 / 33


Sécurité de l’échange de clé de Diffie-Hellman

Un attaquant veut trouver K = g xa xb mod p

Problème de Diffie-Hellman
Étant donné un nombre premier p et un générateur g de (Z/pZ). Étant donné les valeurs g xa
mod p et g xb mod p, Calculer g xa xb mod p.

Problème ouvert
Peut-on résoudre le problème de Diffie-Hellman sans résoudre celui du logarithme discret modulo
p?

Herve KALACHI March 22, 2021 20 / 33


Sécurité de l’échange de clé de Diffie-Hellman

Un attaquant veut trouver K = g xa xb mod p

Problème de Diffie-Hellman
Étant donné un nombre premier p et un générateur g de (Z/pZ). Étant donné les valeurs g xa
mod p et g xb mod p, Calculer g xa xb mod p.

Problème ouvert
Peut-on résoudre le problème de Diffie-Hellman sans résoudre celui du logarithme discret modulo
p?

Herve KALACHI March 22, 2021 20 / 33


Protocole de Diffie-Hellman

Utilisation
Protocole de partage d’un secret commun à distance ̸= Protocole de chiffrement !

Secret commun = clé secrète d’un algorithme de chiffrement symétrique (DES, AES par
exemple)

Puis chiffrement classique du message à envoyer.

Diffie-Hellman déçus : méthode ne permet pas de chiffrer... mais pensent que c’est possible.

Herve KALACHI March 22, 2021 21 / 33


Chiffrement à clé publique

Les prémices
Diffie-Hellman : Chaque utilisateur à un couple de clé
Une clé publique (disponible dans un annuaire par exemple)
Une clé privée (gardée soigneusement secrète)
| ⇒ Pas de secret partagé !

Principe en deux temps :


1 Alice utilise la clé publique de Bob pour chiffrer son message.
2 Bob utilise sa clé privée pour déchiffrer le message d’Alice
Protocole dissymétrique !

Tout le monde peut envoyer des messages à Bob

Mais seul Bob peut lire ses messages

Herve KALACHI March 22, 2021 22 / 33


Chiffrement à clé publique

Les prémices
Diffie-Hellman : Chaque utilisateur à un couple de clé
Une clé publique (disponible dans un annuaire par exemple)
Une clé privée (gardée soigneusement secrète)
| ⇒ Pas de secret partagé !

Principe en deux temps :


1 Alice utilise la clé publique de Bob pour chiffrer son message.
2 Bob utilise sa clé privée pour déchiffrer le message d’Alice
Protocole dissymétrique !

Tout le monde peut envoyer des messages à Bob

Mais seul Bob peut lire ses messages

Herve KALACHI March 22, 2021 22 / 33


Chiffrement à clé publique

Les prémices
Diffie-Hellman : Chaque utilisateur à un couple de clé
Une clé publique (disponible dans un annuaire par exemple)
Une clé privée (gardée soigneusement secrète)
| ⇒ Pas de secret partagé !

Principe en deux temps :


1 Alice utilise la clé publique de Bob pour chiffrer son message.
2 Bob utilise sa clé privée pour déchiffrer le message d’Alice
Protocole dissymétrique !

Tout le monde peut envoyer des messages à Bob

Mais seul Bob peut lire ses messages

Herve KALACHI March 22, 2021 22 / 33


Chiffrement à clé publique

Les prémices
Diffie-Hellman : Chaque utilisateur à un couple de clé
Une clé publique (disponible dans un annuaire par exemple)
Une clé privée (gardée soigneusement secrète)
| ⇒ Pas de secret partagé !

Principe en deux temps :


1 Alice utilise la clé publique de Bob pour chiffrer son message.
2 Bob utilise sa clé privée pour déchiffrer le message d’Alice
Protocole dissymétrique !

Tout le monde peut envoyer des messages à Bob

Mais seul Bob peut lire ses messages

Herve KALACHI March 22, 2021 22 / 33


Chiffrement à clé publique

Les prémices
Diffie-Hellman : Chaque utilisateur à un couple de clé
Une clé publique (disponible dans un annuaire par exemple)
Une clé privée (gardée soigneusement secrète)
| ⇒ Pas de secret partagé !

Principe en deux temps :


1 Alice utilise la clé publique de Bob pour chiffrer son message.
2 Bob utilise sa clé privée pour déchiffrer le message d’Alice
Protocole dissymétrique !

Tout le monde peut envoyer des messages à Bob

Mais seul Bob peut lire ses messages

Herve KALACHI March 22, 2021 22 / 33


Chiffrement à clé publique

Les prémices
Diffie-Hellman : Chaque utilisateur à un couple de clé
Une clé publique (disponible dans un annuaire par exemple)
Une clé privée (gardée soigneusement secrète)
| ⇒ Pas de secret partagé !

Principe en deux temps :


1 Alice utilise la clé publique de Bob pour chiffrer son message.
2 Bob utilise sa clé privée pour déchiffrer le message d’Alice
Protocole dissymétrique !

Tout le monde peut envoyer des messages à Bob

Mais seul Bob peut lire ses messages

Herve KALACHI March 22, 2021 22 / 33


Chiffrement à clé publique

Les prémices
Diffie-Hellman : Chaque utilisateur à un couple de clé
Une clé publique (disponible dans un annuaire par exemple)
Une clé privée (gardée soigneusement secrète)
| ⇒ Pas de secret partagé !

Principe en deux temps :


1 Alice utilise la clé publique de Bob pour chiffrer son message.
2 Bob utilise sa clé privée pour déchiffrer le message d’Alice
Protocole dissymétrique !

Tout le monde peut envoyer des messages à Bob

Mais seul Bob peut lire ses messages

Herve KALACHI March 22, 2021 22 / 33


Analogies

Clé secrète = Coffre fort a double serrure Clé publique = Boîte aux lettres
Alice et Bob ont chacun une clé du coffre Seul Bob à la clé de sa boîte aux lettres
1 Alice utilise sa clé pour déposer un
1 Alice cherche l’adresse de Bob dans un
message dans le coffre annuaire et dépose un courrier dans la
boîte de Bob
2 Bob utilise la clé du coffre pour
récupérer le message d’Alice
2 Bob utilise sa clé secrète pour ouvrir sa
boîte aux lettres
Propriétés du coffre :
Propriétés de la boîte aux lettres :
Seuls Alice et Bob peuvent déposer du
courrier dans le coffre Toute personne peut envoyer du courrier
à Bob
Seuls Alice et Bob peuvent récupérer du
courrier dans le coffre Seul Bob peut récupérer son courrier.

Herve KALACHI March 22, 2021 23 / 33


Analogies

Clé secrète = Coffre fort a double serrure Clé publique = Boîte aux lettres
Alice et Bob ont chacun une clé du coffre Seul Bob à la clé de sa boîte aux lettres
1 Alice utilise sa clé pour déposer un
1 Alice cherche l’adresse de Bob dans un
message dans le coffre annuaire et dépose un courrier dans la
boîte de Bob
2 Bob utilise la clé du coffre pour
récupérer le message d’Alice
2 Bob utilise sa clé secrète pour ouvrir sa
boîte aux lettres
Propriétés du coffre :
Propriétés de la boîte aux lettres :
Seuls Alice et Bob peuvent déposer du
courrier dans le coffre Toute personne peut envoyer du courrier
à Bob
Seuls Alice et Bob peuvent récupérer du
courrier dans le coffre Seul Bob peut récupérer son courrier.

Herve KALACHI March 22, 2021 23 / 33


Fonction à sens unique avec trappe

Reprise et complément des « fonctions à sens unique » introduites par Diffie et Hellman.

Une fonction f est dite à sens unique avec trappe si :


1 Étant donné x il est facile de calculer f (x )
2 Étant donné f (x ), il est très difficile de retrouver x , sauf si on connaît une trappe s.

Diffie et Hellman n’avaient pas trouvé d’exemple de telles fonctions.

Herve KALACHI March 22, 2021 24 / 33


Fonction à sens unique avec trappe

Reprise et complément des « fonctions à sens unique » introduites par Diffie et Hellman.

Une fonction f est dite à sens unique avec trappe si :


1 Étant donné x il est facile de calculer f (x )
2 Étant donné f (x ), il est très difficile de retrouver x , sauf si on connaît une trappe s.

Diffie et Hellman n’avaient pas trouvé d’exemple de telles fonctions.

Herve KALACHI March 22, 2021 24 / 33


Fonction à sens unique avec trappe

Reprise et complément des « fonctions à sens unique » introduites par Diffie et Hellman.

Une fonction f est dite à sens unique avec trappe si :


1 Étant donné x il est facile de calculer f (x )
2 Étant donné f (x ), il est très difficile de retrouver x , sauf si on connaît une trappe s.

Diffie et Hellman n’avaient pas trouvé d’exemple de telles fonctions.

Herve KALACHI March 22, 2021 24 / 33


Fonction à sens unique avec trappe

Reprise et complément des « fonctions à sens unique » introduites par Diffie et Hellman.

Une fonction f est dite à sens unique avec trappe si :


1 Étant donné x il est facile de calculer f (x )
2 Étant donné f (x ), il est très difficile de retrouver x , sauf si on connaît une trappe s.

Diffie et Hellman n’avaient pas trouvé d’exemple de telles fonctions.

Herve KALACHI March 22, 2021 24 / 33


Example of Trapdoor function

Exemple trouvé par Rivest, Shamir, Adleman (RSA)

La fonction puissance
Soit p et q deux entiers premiers et n = pq

Soit e un entier inférieur à n, premier avec (p − 1)(q − 1)

La fonction
fe,n : {0, · · · , n − 1} −→ {0, · · · , n − 1}
x ↦−→ x e mod n
est une fonction à sens unique avec trappe.

Le calcul de fe,n (x ) est linéaire en la taille de n.


Et l’autre sens ?
L’inversion doit être très difficile...
...Sauf si on connaît la trappe

Herve KALACHI March 22, 2021 25 / 33


Example of Trapdoor function

Exemple trouvé par Rivest, Shamir, Adleman (RSA)

La fonction puissance
Soit p et q deux entiers premiers et n = pq

Soit e un entier inférieur à n, premier avec (p − 1)(q − 1)

La fonction
fe,n : {0, · · · , n − 1} −→ {0, · · · , n − 1}
x ↦−→ x e mod n
est une fonction à sens unique avec trappe.

Le calcul de fe,n (x ) est linéaire en la taille de n.


Et l’autre sens ?
L’inversion doit être très difficile...
...Sauf si on connaît la trappe

Herve KALACHI March 22, 2021 25 / 33


Example of Trapdoor function

Exemple trouvé par Rivest, Shamir, Adleman (RSA)

La fonction puissance
Soit p et q deux entiers premiers et n = pq

Soit e un entier inférieur à n, premier avec (p − 1)(q − 1)

La fonction
fe,n : {0, · · · , n − 1} −→ {0, · · · , n − 1}
x ↦−→ x e mod n
est une fonction à sens unique avec trappe.

Le calcul de fe,n (x ) est linéaire en la taille de n.


Et l’autre sens ?
L’inversion doit être très difficile...
...Sauf si on connaît la trappe

Herve KALACHI March 22, 2021 25 / 33


Example of Trapdoor function

Exemple trouvé par Rivest, Shamir, Adleman (RSA)

La fonction puissance
Soit p et q deux entiers premiers et n = pq

Soit e un entier inférieur à n, premier avec (p − 1)(q − 1)

La fonction
fe,n : {0, · · · , n − 1} −→ {0, · · · , n − 1}
x ↦−→ x e mod n
est une fonction à sens unique avec trappe.

Le calcul de fe,n (x ) est linéaire en la taille de n.


Et l’autre sens ?
L’inversion doit être très difficile...
...Sauf si on connaît la trappe

Herve KALACHI March 22, 2021 25 / 33


Example of Trapdoor function

Exemple trouvé par Rivest, Shamir, Adleman (RSA)

La fonction puissance
Soit p et q deux entiers premiers et n = pq

Soit e un entier inférieur à n, premier avec (p − 1)(q − 1)

La fonction
fe,n : {0, · · · , n − 1} −→ {0, · · · , n − 1}
x ↦−→ x e mod n
est une fonction à sens unique avec trappe.

Le calcul de fe,n (x ) est linéaire en la taille de n.


Et l’autre sens ?
L’inversion doit être très difficile...
...Sauf si on connaît la trappe

Herve KALACHI March 22, 2021 25 / 33


Example of Trapdoor function

Exemple trouvé par Rivest, Shamir, Adleman (RSA)

La fonction puissance
Soit p et q deux entiers premiers et n = pq

Soit e un entier inférieur à n, premier avec (p − 1)(q − 1)

La fonction
fe,n : {0, · · · , n − 1} −→ {0, · · · , n − 1}
x ↦−→ x e mod n
est une fonction à sens unique avec trappe.

Le calcul de fe,n (x ) est linéaire en la taille de n.


Et l’autre sens ?
L’inversion doit être très difficile...
...Sauf si on connaît la trappe

Herve KALACHI March 22, 2021 25 / 33


Example of Trapdoor function

Exemple trouvé par Rivest, Shamir, Adleman (RSA)

La fonction puissance
Soit p et q deux entiers premiers et n = pq

Soit e un entier inférieur à n, premier avec (p − 1)(q − 1)

La fonction
fe,n : {0, · · · , n − 1} −→ {0, · · · , n − 1}
x ↦−→ x e mod n
est une fonction à sens unique avec trappe.

Le calcul de fe,n (x ) est linéaire en la taille de n.


Et l’autre sens ?
L’inversion doit être très difficile...
...Sauf si on connaît la trappe

Herve KALACHI March 22, 2021 25 / 33


Encore un peu de Mathématiques
Petit théorème de Fermat
Soit p un entier premier.
∀x ∈ {1, ..., p − 1}, x p−1 = 1 mod p

Proof.
pour tout x ̸= 0, la multiplication par x est une bijection de {1, ..., p − 1} Donc,
p−1
∏︁ p−1
∏︁
x .i mod p = i
i=1 i=1

⇒ x p−1 (p − 1)! = (p − 1)! mod p


Comme gcd ((p − 1)!, p) = 1, on a x p−1 = 1 mod p.

Corollaire 0.1
Soit p et q deux nombres premiers distincts. Soit 𝜆 = 1 mod (p − 1)(q − 1), alors

∀x , x 𝜆 = x mod n
Herve KALACHI March 22, 2021 26 / 33
Encore un peu de Mathématiques
Petit théorème de Fermat
Soit p un entier premier.
∀x ∈ {1, ..., p − 1}, x p−1 = 1 mod p

Proof.
pour tout x ̸= 0, la multiplication par x est une bijection de {1, ..., p − 1} Donc,
p−1
∏︁ p−1
∏︁
x .i mod p = i
i=1 i=1

⇒ x p−1 (p − 1)! = (p − 1)! mod p


Comme gcd ((p − 1)!, p) = 1, on a x p−1 = 1 mod p.

Corollaire 0.1
Soit p et q deux nombres premiers distincts. Soit 𝜆 = 1 mod (p − 1)(q − 1), alors

∀x , x 𝜆 = x mod n
Herve KALACHI March 22, 2021 26 / 33
Encore un peu de Mathématiques
Petit théorème de Fermat
Soit p un entier premier.
∀x ∈ {1, ..., p − 1}, x p−1 = 1 mod p

Proof.
pour tout x ̸= 0, la multiplication par x est une bijection de {1, ..., p − 1} Donc,
p−1
∏︁ p−1
∏︁
x .i mod p = i
i=1 i=1

⇒ x p−1 (p − 1)! = (p − 1)! mod p


Comme gcd ((p − 1)!, p) = 1, on a x p−1 = 1 mod p.

Corollaire 0.1
Soit p et q deux nombres premiers distincts. Soit 𝜆 = 1 mod (p − 1)(q − 1), alors

∀x , x 𝜆 = x mod n
Herve KALACHI March 22, 2021 26 / 33
Encore un peu de Mathématiques
Petit théorème de Fermat
Soit p un entier premier.
∀x ∈ {1, ..., p − 1}, x p−1 = 1 mod p

Proof.
pour tout x ̸= 0, la multiplication par x est une bijection de {1, ..., p − 1} Donc,
p−1
∏︁ p−1
∏︁
x .i mod p = i
i=1 i=1

⇒ x p−1 (p − 1)! = (p − 1)! mod p


Comme gcd ((p − 1)!, p) = 1, on a x p−1 = 1 mod p.

Corollaire 0.1
Soit p et q deux nombres premiers distincts. Soit 𝜆 = 1 mod (p − 1)(q − 1), alors

∀x , x 𝜆 = x mod n
Herve KALACHI March 22, 2021 26 / 33
Encore un peu de Mathématiques
Petit théorème de Fermat
Soit p un entier premier.
∀x ∈ {1, ..., p − 1}, x p−1 = 1 mod p

Proof.
pour tout x ̸= 0, la multiplication par x est une bijection de {1, ..., p − 1} Donc,
p−1
∏︁ p−1
∏︁
x .i mod p = i
i=1 i=1

⇒ x p−1 (p − 1)! = (p − 1)! mod p


Comme gcd ((p − 1)!, p) = 1, on a x p−1 = 1 mod p.

Corollaire 0.1
Soit p et q deux nombres premiers distincts. Soit 𝜆 = 1 mod (p − 1)(q − 1), alors

∀x , x 𝜆 = x mod n
Herve KALACHI March 22, 2021 26 / 33
Inversion de la fonction puissance

But : inverser la fonction puissance, c’est à dire trouver des racines modulo pq

Formalisation du problème
Soit n = pq le produit de deux nombres premiers.
Soit e ∈ {1, ..., n − 1}, premier avec (p − 1)(q − 1)
soit y ∈ {1, ..., n − 1}.
Trouver x ∈ {1, ..., n − 1} tel que y = x e mod n.

Si on connaît p et q c’est facile en un temps polynomial en la taille de n.

Principe
e et (p − 1)(q − 1) étant premiers entre eux, on cherche un couple de Bézout, c’est à dire a
et b tels que : ae + b(p − 1)(q − 1) = 1
Pour d = a mod (p − 1)(q − 1), on a ed = 1 mod (p − 1)(q − 1).
D’où
yd mod n = (x e )d mod n = x 1+k(p−1)(q−1) = x
Herve KALACHI March 22, 2021 27 / 33
Exemple de calcul de racine modulo n

p = 127 et q = 179 d’où n = pq = 22 733 et e = 17.


But : Trouver x tel que x 17 mod 22733 = 18763 ?
On cherche d tel que 17d = 1 mod (p − 1)(q − 1)
Euclide étendu :
−10 × 22428
⏟ ⏞ +13193 × 17 = 1
(p−1)(q−1)

Donc d = 13193 et

(x 17 )13193 = x × x 10×22428 = x mod 22733

Finalement,
x = 1876313193 mod 22733 = 17564

Herve KALACHI March 22, 2021 28 / 33


Exemple de calcul de racine modulo n

p = 127 et q = 179 d’où n = pq = 22 733 et e = 17.


But : Trouver x tel que x 17 mod 22733 = 18763 ?
On cherche d tel que 17d = 1 mod (p − 1)(q − 1)
Euclide étendu :
−10 × 22428
⏟ ⏞ +13193 × 17 = 1
(p−1)(q−1)

Donc d = 13193 et

(x 17 )13193 = x × x 10×22428 = x mod 22733

Finalement,
x = 1876313193 mod 22733 = 17564

Herve KALACHI March 22, 2021 28 / 33


Exemple de calcul de racine modulo n

p = 127 et q = 179 d’où n = pq = 22 733 et e = 17.


But : Trouver x tel que x 17 mod 22733 = 18763 ?
On cherche d tel que 17d = 1 mod (p − 1)(q − 1)
Euclide étendu :
−10 × 22428
⏟ ⏞ +13193 × 17 = 1
(p−1)(q−1)

Donc d = 13193 et

(x 17 )13193 = x × x 10×22428 = x mod 22733

Finalement,
x = 1876313193 mod 22733 = 17564

Herve KALACHI March 22, 2021 28 / 33


Exemple de calcul de racine modulo n

p = 127 et q = 179 d’où n = pq = 22 733 et e = 17.


But : Trouver x tel que x 17 mod 22733 = 18763 ?
On cherche d tel que 17d = 1 mod (p − 1)(q − 1)
Euclide étendu :
−10 × 22428
⏟ ⏞ +13193 × 17 = 1
(p−1)(q−1)

Donc d = 13193 et

(x 17 )13193 = x × x 10×22428 = x mod 22733

Finalement,
x = 1876313193 mod 22733 = 17564

Herve KALACHI March 22, 2021 28 / 33


Et lorsque p et q ne sont pas connus ?

Méthode la plus efficace connue à ce jour : Chercher d tel que ed = 1 mod (p − 1)(q − 1)

Cela revient à trouver les deux facteurs premiers de n, p et q.

La fonction puissance est à sens unique avec trappe s’il est difficile de factoriser n.

Herve KALACHI March 22, 2021 29 / 33


Et lorsque p et q ne sont pas connus ?

Méthode la plus efficace connue à ce jour : Chercher d tel que ed = 1 mod (p − 1)(q − 1)

Cela revient à trouver les deux facteurs premiers de n, p et q.

La fonction puissance est à sens unique avec trappe s’il est difficile de factoriser n.

Herve KALACHI March 22, 2021 29 / 33


Et lorsque p et q ne sont pas connus ?

Méthode la plus efficace connue à ce jour : Chercher d tel que ed = 1 mod (p − 1)(q − 1)

Cela revient à trouver les deux facteurs premiers de n, p et q.

La fonction puissance est à sens unique avec trappe s’il est difficile de factoriser n.

Herve KALACHI March 22, 2021 29 / 33


Et lorsque p et q ne sont pas connus ?

Méthode la plus efficace connue à ce jour : Chercher d tel que ed = 1 mod (p − 1)(q − 1)

Cela revient à trouver les deux facteurs premiers de n, p et q.

La fonction puissance est à sens unique avec trappe s’il est difficile de factoriser n.

Herve KALACHI March 22, 2021 29 / 33


La factorisation

Défi de «pour la science» - 1977


Le nombre
114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 561 842
935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543
541
est le produit de deux nombres premiers, lesquels ?

Réponse en 1995 (Atkins, Graff, Lenstra, Leyland) 8 mois de calcul fait par 600 volontaires
dans 20 pays et 45 heures sur une machine massivement parallèle.

1er nombre premier


3 490 529 510 847 650 949 147 849 619 903 898 133 417 764 638 493 387 843 990 820 577

2nd nombre premier


32 769 132 993 266 709 549 961 988 190 834 461 413 177 642 967 992 942 539 798 288 533

Herve KALACHI March 22, 2021 30 / 33


La factorisation

Défi de «pour la science» - 1977


Le nombre
114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 561 842
935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543
541
est le produit de deux nombres premiers, lesquels ?

Réponse en 1995 (Atkins, Graff, Lenstra, Leyland) 8 mois de calcul fait par 600 volontaires
dans 20 pays et 45 heures sur une machine massivement parallèle.

1er nombre premier


3 490 529 510 847 650 949 147 849 619 903 898 133 417 764 638 493 387 843 990 820 577

2nd nombre premier


32 769 132 993 266 709 549 961 988 190 834 461 413 177 642 967 992 942 539 798 288 533

Herve KALACHI March 22, 2021 30 / 33


La factorisation

Défi de «pour la science» - 1977


Le nombre
114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 561 842
935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543
541
est le produit de deux nombres premiers, lesquels ?

Réponse en 1995 (Atkins, Graff, Lenstra, Leyland) 8 mois de calcul fait par 600 volontaires
dans 20 pays et 45 heures sur une machine massivement parallèle.

1er nombre premier


3 490 529 510 847 650 949 147 849 619 903 898 133 417 764 638 493 387 843 990 820 577

2nd nombre premier


32 769 132 993 266 709 549 961 988 190 834 461 413 177 642 967 992 942 539 798 288 533

Herve KALACHI March 22, 2021 30 / 33


La factorisation

Défi de «pour la science» - 1977


Le nombre
114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 561 842
935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543
541
est le produit de deux nombres premiers, lesquels ?

Réponse en 1995 (Atkins, Graff, Lenstra, Leyland) 8 mois de calcul fait par 600 volontaires
dans 20 pays et 45 heures sur une machine massivement parallèle.

1er nombre premier


3 490 529 510 847 650 949 147 849 619 903 898 133 417 764 638 493 387 843 990 820 577

2nd nombre premier


32 769 132 993 266 709 549 961 988 190 834 461 413 177 642 967 992 942 539 798 288 533

Herve KALACHI March 22, 2021 30 / 33


les records de factorisation

Société RSA publiait des challenges de factorisation (avec des nombres particuliers
particulièrement difficiles à factoriser).

Dotation pour chaque challenge jusqu’à plusieurs dizaines de milliers de dollars.

Records sont tombés les uns après les autres.

L’un des derniers en date : RSA-829 factorisé en février 2020 par Fabrice Boudot, Pierrick
Gaudry, Aurore Guillevic, Nadia Heninger, Emmanuel Thomé et Paul Zimmermann

Herve KALACHI March 22, 2021 31 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Le chiffrement RSA (Rivest, Shamir, Adleman - 1978

Bob Choisit deux nombres premiers p et q et un entier e premier avec (p − 1)(q − 1).

Il calcule n = pq et d tel que ed mod (p − 1)(q − 1) = 1

⇒ Clé publique = (e, n) et Clé privée = d.

Bob publie sa clé publique.

1 Alice récupère la clé publique de Bob


2 Elle chiffre son message m : C = me mod n et l’envoie à Bob.
3 Bob reçoit C et calcule C d mod n à l’aide de sa clé secrète.
4 Il retrouve ainsi m.

Un attaquant veut trouver m à partir de C , autrement dit calculer une racine e−ième modulo n,
ce qui est aussi difficile que de factoriser n.

Herve KALACHI March 22, 2021 32 / 33


Exemple de chiffrement RSA

Bob choisit p = 127 et q = 179 et calcule n = 22733.

Bob choisit e = 17 et calcule d = e − 1 mod (p − 1)(q − 1) ⇒ d = 13193

Exercice : Bob reçoit d’Alice le message

KPG = (11, 16, 7) = 11 + 16 × 26 + 7 × 262 = 5159.

Aidez Bob a déchiffrer le message d’Alice.

Herve KALACHI March 22, 2021 33 / 33