Vous êtes sur la page 1sur 26

CRYPTOGRAPHIE

Cryptographie symétrique.

Chiffrer Déchiffer

Cryptographie asymétrique.

Chiffrer Déchiffer
Chiffrements symétriques

Bob veut envoyer un message secret à Alice. Il utilise une clé secrète k pour

brouiller son message en clair m et le transformer en un texte chiffré c. Alice,

après avoir reçu c, utilise la clé secrète k pour déchiffrer c et reconstituer m.

Si cette procédure doit fonctionner correctement, alors Alice et Bob doivent

posséder des copies de la clé secrète k, et si le système doit assurer la

sécurité, alors leur adversaire Eve ne doit pas connaître k, ne doit pas

pouvoir deviner k, et ne doit pas pouvoir récupérer m de c sans connaître k .

Nous observons qu'ils doivent partager leurs connaissances de la clé secrète

k. En utilisant cette clé secrète, ils peuvent à la fois chiffrer et déchiffrer les

messages, donc Bob et Alice ont des connaissances et des capacités égales

(ou symétriques). Pour cette raison, les chiffrements de ce type sont appelés

chiffrements symétriques.

Chiffrer Déchiffrer

1
Un peu de vocabulaire
 Chiffrement: opération qui consiste à rendre le document illisible pour
toute personne non autorisée.
 Clé: paramètre utilisé en entrée d’une opération cryptographique.
 Déchiffrement: opération qui consiste à rendre le document chiffré en
document original (lisible).
 Décrypter: opération qui consiste à rendre le document chiffré en
document lisible sans avoir la clé.
 Message clair: Message lisible.
 Message chiffré: Message illisible, également appelé cryptogramme.

1. Le chiffre de César
Description : Le chiffre de César est une des méthodes de cryptographie les
plus anciennes. Il consiste en une substitution mono-alphabétique, où la
substitution est simplement définie par un décalage de lettres. Par exemple, si
on décide de remplacer A par D, alors ensuite on remplace B par E, C par F, D
par G, etc... Ainsi, à partir de ce décalage de trois lettres, on obtient le tableau
suivant :

Texte A B C D E F G H I
clair

Texte D E F G H I J K L
codé

Texte J K L M N O P Q R
clair

Texte M N O P Q R S T U
codé

Texte S T U V W X Y Z
clair

Texte V W X Y Z A B C
codé

2
Exemple: Le texte que nous souhaitons coder est le suivant.

LES YEUX VERS LE SOLEIL IL ETAIT BAS ; DANS MOINS D'UNE HEURE
JE LEVAI
IL ARRIVERAIT JUSTE AUDESSUS DES BRANCHES SUPERIEURES DU VIEUX
CHENE.

Le texte codé est alors :

MH OHYDL OHV BHXA YHUV OH VROHLO LO HWDLW EDV ; GDQV PRLQV


G'XQH KHXUH LO

DUULYHUDLW MXVWH DX-GHVVXV GHV EUDQFKHV VXSHULHXUHV GX


YLHXA FKHQH

Espace des clés

Combien existe-t-il de possibilités de chiffrement par la méthode de César ? Il


y a 26 fonctions 𝐶𝑘 différentes, k = 0,1,...,25. Encore une fois, k appartient à
ℤ/26ℤ, car par exemple les fonctions 𝐶29 et 𝐶3 sont identiques. Le décalage k
s’appelle la clé de chiffrement, c’est l’information nécessaire pour chiffrer le
message. Il y a donc 26 clés différentes et l’espace des clés est ℤ/26ℤ.

Remarque : On choisit un alphabet à M ≥ 2 lettres, on associe à chaque lettre


de l’alphabet un entier entre 0 et M. Un code affine sur cet alphabet est un code
dont la fonction de codage est

ℤ ℤ
𝐶: ⟶ 𝑥 ⟼ 𝑎𝑥 + 𝑏,
𝑀ℤ 𝑀ℤ

avec a (mod 𝑀ℤ) et premier à M, b (mod 𝑀ℤ).

2. Chiffre de Vigenère
Description : L'idée de Vigenère est d'utiliser un chiffre de César, mais
où le décalage utilisé change de lettres en lettres. Pour cela, on utilise une table
composée de 26 alphabets, écrits dans l'ordre, mais décalés de ligne en ligne
d'un caractère. On écrit encore en haut un alphabet complet, pour la clé, et à
gauche, verticalement, un dernier alphabet, pour le texte à coder :

3
Pour coder un message, on choisit une clé qui sera un mot de longueur
arbitraire. On écrit ensuite cette clé sous le message à coder, en la répétant
aussi souvent que nécessaire pour que sous chaque lettre du message à coder,
on trouve une lettre de la clé. Pour coder, on regarde dans le tableau
l'intersection de la ligne de la lettre à coder avec la colonne de la lettre de la
clé.

Exemple: On veut coder le texte "CRYPTOGRAPHIE" avec la clé


"MATHWEB". On commence par écrire la clef sous le texte à coder :
C R Y P T O G R A P H I E
M A T H W E B M A T H W E

Pour coder la lettre C, la clé est donnée par la lettre M. On regarde dans le
tableau l'intersection de la ligne donnée par le C de la première colonne (en
vert), et de la colonne donnée par le M de la première ligne (en violet).

4
On trouve O. Puis on continue. Sous le R on trouve le A. La lettre dans le tableau
correspondant au R dans la colonne A est R. On remplace donc le R par lui-
même. Pour le Y, la lettre de la clé est T. Dans la colonne T, le Y est remplacé
par R. On continue ainsi et on trouve finalement le message chiffré :

ORRWPSHDAIOEI.

Cet algorithme de cryptographie comporte beaucoup de points forts. Il est très


facile d'utilisation, et le déchiffrement est tout aussi facile si on connait la clé.
Il suffit, sur la colonne de la lettre de la clé, de rechercher la lettre du message
codé. A l'extrémité gauche de la ligne, on trouve la lettre du texte clair. Vous
pouvez vous entrainer avec le message codé TYQFLJ, qu'on a codé avec la clé
EKETHR.

En outre, l'exemple précédent fait bien apparaitre la grande caractéristique du


code de Vigenère : la lettre E a été chiffrée en R, puis en M, la lettre P en W

5
puis en I. Impossible par une analyse statistique simple de retrouver les lettres
les plus courantes. Dernière chose, on peut produire une infinité de clés et il
est très facile de convenir avec quelqu'un d'une clé donnée. Il résista aux
travaux des cryptanalystes jusqu'au XIXè siècle. Pourtant, à quelques
exceptions près, comme par exemple dans la correspondance de Marie-
Antoinette, ce chiffre, et plus généralement les chiffres polyalphabétiques,
furent peu utilisés. On leur préférait les codes à répertoires.

Espace des clés et attaque

Il y a 26𝑘 choix possibles de clés, lorsque les blocs sont de longueur k. Pour
des blocs de longueur k = 4 cela en donne déjà 456 976, et même si un
ordinateur teste toutes les combinaisons possibles sans problème, il n’est pas
question de parcourir cette liste pour trouver le message en clair, c’est-à-dire
celui qui est compréhensible ! Il persiste tout de même une faiblesse du même
ordre que celle rencontrée dans le chiffrement mono-alphabétique : la lettre A
n’est pas toujours cryptée par la même lettre, mais si deux lettres A sont
situées à la même position dans deux blocs différents (comme par exemple
"ALPH ABET") alors elles seront cryptées par la même lettre. Une attaque
possible est donc la suivante : on découpe notre message en plusieurs listes,
les premières lettres de chaque bloc, les deuxièmes lettres de chaque bloc...
et on fait une attaque statistique sur chacun de ces regroupements. Ce type
d’attaque n’est possible que si la taille des blocs est petite devant la longueur
du texte.

3. Le chiffre de Hill
Description : Le sujet proposé ici regroupe deux thèmes
principaux : le calcul matriciel et le calcul modulo 26. Le chiffre que nous
allons étudier a été publié par Lester S. Hill en 1929. C'est un chiffre
polygraphique, c'est-à-dire qu'on ne (dé)chiffre pas les lettres les unes après
les autres, mais par paquets. Nous étudierons la version bigraphique, c'est-
à-dire que nous grouperons les lettres deux par deux, mais on peut imaginer
des pâquets plus grands. Les lettres sont d'abord remplacées par leur rang
dans l'alphabet :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0

Les lettres 𝑝𝑘 et 𝑝𝑘+1 du texte clair seront chiffrées 𝑐𝑘 et 𝑐𝑘+1 avec la formule
ci-dessous :
𝑐𝑘 𝑎 𝑏 𝑝𝑘
( )≡( )( ) (mod 26)
𝑐𝑘+1 𝑐 𝑑 𝑝𝑘+1

6
Ce qui signifie que
𝑐𝑘 ≡ (𝑎𝑝𝑘 + 𝑏𝑝𝑘+1 )mod26
𝑐𝑘+1 ≡ (𝑐𝑝𝑘 + 𝑑𝑝𝑘+1 ) mod26.

Pour fixer les idées, les deux premières lettres du message clair (𝑝1 et
𝑝2 ) seront chiffrées (𝑐1 et 𝑐2 ) selon les deux équations suivantes :

𝑐1 ≡ (𝑎𝑝1 + 𝑏𝑝2 ) mod26


𝑐2 ≡ (𝑐𝑝1 + 𝑑𝑝2 ) mod26.
Exemple de chiffrement

Alice prend comme clef de cryptage la matrice

9 4
( )
5 7
pour chiffrer le message "je vous aime".

AprŁs avoir remplacé les lettres par leur rang dans l’alphabet (A = 1; B = 2;
etc:); elle obtiendra
𝑐1 ≡ (9 × 10 + 4 × 5) ≡ 110 ≡ 6 mod26
𝑐2 ≡ (5 × 10 + 7 × 5) ≡ 85 ≡ 7 mod26.
Elle fera de même avec les 3ème et 4ème lettres, les 5ème et 6ème …
Et obtiendra finalement:
Lettres j e v o u s a i m e
Rangs (𝒑𝒌 ) 10 5 22 15 21 19 1 9 13 5
Rangs chiffrés (𝒄𝒌 ) 6 7 25 7 5 4 19 16 7 22
Lettres chiffrées F G X G E D S P G V

Remarque
Certains auteurs posent "A" = 1; "B" = 2; …; "Z" = 0: On a utilisé ici cette
convention. Cependant, d’autres auteurs posent "A" = 0; "B" = 1; …; "Z" = 25.
Les deux conventions se défendent. L’essentiel est que les protagonistes se
mettent d’accord avant d’échanger des messages. On pourrait même imaginer
de prendre un alphabet désordonné, par exemple
"A" = 15; "B" = 16; etc; ce qui constituerait un surchiffrement.

Déchiffrement

Pour déchiffrer, le principe est le même que pour le chiffrement: on prend les
lettres deux par deux, puis on les multiplie par une matrice

7
𝑝𝑘 𝑎 𝑏 −1 𝑐𝑘
( )≡( ) ( ) (mod 26).
𝑝𝑘+1 𝑐 𝑑 𝑐𝑘+1

Cette matrice doit être l’inverse de matrice de chiffrement (modulo 26):

Ordinairement l’inverse de la matrice est:

𝑎 𝑏 −1 1 𝑑 −𝑏
( ) ≡ (− ) (mod 26).
𝑐 𝑑 𝑎𝑑 − 𝑏𝑐 𝑐 𝑎

Mais que cela signifie-t-il dans le contexte ℤ/26 ℤ? Reprenons notre exemple.

Exemple de déchiffrement
Pour déchiffrer le message d’Alice, Bob doit calculer

9 4 −1 1 7 −4 7 −4
( ) ≡ ( ) (mod 26) = 43−1 (− ) (mod 26).
5 7 43 −5 9 5 9
−1
Comme gcd(43; 26) = 1; 43 est égale à 23. Bob a donc maintenant la matrice
de déchiffrement:

9 4 −1 7 −4 161 −92
( ) ≡ 23 (− ) (mod 26) = (− ) (mod 26)
5 7 5 9 115 207
5 12
≡ (15 25) (mod 26).
Bob prend donc la matrice
5 12
( ) (mod 26)
15 25
pour déchiffrer le message "FGXGE DSP GV ". Après avoir remplacé les lettres
par leur rang dans l’alphabet (A = 1; B = 2; etc:); il obtiendra
𝑝1 ≡ (5 × 6 + 12 × 7) ≡ 114 ≡ 10 mod26
𝑝2 ≡ (15 × 6 + 25 × 7) ≡ 265 ≡ 5 mod26.
Il fera de même avec les 3ème et 4ème lettres, 5ème et 6ème, etc. Il obtiendra
finalement:
Lettres chiffrées F G X G E D S P G V
Rangs chiffrés (𝒄𝒌 ) 6 7 25 7 5 4 19 16 7 22
Rangs (𝒑𝒌 ) 10 5 22 15 21 19 1 9 13 5
Rangs chiffrés (𝒄𝒌 ) 6 7 25 7 5 4 19 16 7 22
Lettres j e v o u s a i m e

8
Exercie: Chiffrement

Chiffrez à la main le message suivant avec le chiffre de Hill en utilisant

la matrice
3 2
( )
1 3
"Rendez-vous ce soir".
Déchiffrement
Déchiffrez à la main le cryptogramme suivant qui a été chiffré avec la

matrice
3 2
( )
1 3
"UDZBI WLOSR VSSAY STAIE AM"

La cryptanalyse
Il est temps de donner une leçon importante sur le côté pratique de la science
de cryptographie :
Votre adversaire utilise toujours sa meilleure stratégie pour vous vaincre, pas
la stratégie que vous voulez qu’il utilise. Ainsi, la sécurité d’un système de
cryptage dépend des meilleures méthodes pour le casser.
Au fur et à mesure que que de nouvelles méthodes améliorées sont
developpées, le niveau de sécurité ne peut s’empirer, jamais meilleur.

But de la cryptanalyse:
L’objectif est de retrouver la clé secrète (casser les protections mises en place)
pas simplement le plaintext. Les techniques sont
 brute force attack (attaque à force brute) :
essayer toutes les combinaisons (sur une ciphertext pour le déchiffrer) de la
clé jusqu’à trouver la bonne. En moyenne, il faut essayer au moins la moitié
des clés disponibles pour arriver à casser un cryptosystème.
 cryptanalytic attack :
plus intelligente, exploite une connaissance sur l’algorithme et la manière dont
le plaintext est traité.

Les limites du Chiffre de César

9
Un code de substitution comme le code de César ne résiste pas à une attaque
à texte chiffré connu.
 Décodage par analyse de fréquence, cette méthode a été mise au point
au moyen âge par des lettrés arabes.
Voici un diagramme des fréquences des lettres en français.

Cryptanalyse des codes de Vigenre.


La cryptanalyse du cryptosystème de Vigénère peut se faire à texte chiffré
connu si le message est assez long. On remarque que des répétitions de lettres
assez longues (en général on cherche des triplets ou trigrammes) doivent
correspondre dans le texte clair à des répétitions de lettres aussi. Ceci permet
de majorer la taille de la clé. On se ramène alors à la cryptanalyse d’un
chiffrement de César. Cette cryptanalyse a été mise au point au 19e siècle.

10
Chiffrements asymétriques
Principes de Kerckhoffs
Ce principe n’est que la transposition des remarques de bon sens suivantes:
 Un cryptosystème sera d’autant plus résistant et sûr qu’il aura été
conçu, choisi et implémenté avec la plus grande transparence et
soumis ainsi à l’analyse de l’ensemble de la communauté
cryptographique.
 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.
A ce moment là, c’est tout le cryptosystème qui est à changer et pas
seulement la clé.

Nous commençons par décrire une manière non mathématique de visualiser

la clé publique en cryptographie. Alice achète un coffre-fort avec une fente

étroite sur le dessus et la dépose dans un lieu public. Tout le monde dans le

monde est autorisé à examiner le coffre-fort et veillez à ce qu'il soit bien fait.

Bob écrit son message à Alice sur un morceau de papier et le glisse dans la

fente en haut du coffre-fort. Maintenant seulement une personne avec la clé

du coffre-fort, ce qui signifie vraisemblablement que seule Alice, peut

récupérer et lire le message de Bob. Dans ce scénario, la clé publique d'Alice

est le coffre-fort, l'algorithme de chiffrement est le processus de mise du

message dans la fente, et l'algorithme de décryptage est le processus

d'ouverture du coffre-fort avec la clé. Notons que cette configuration n'est

pas farfelue; il est utilisé dans le monde réel. Par exemple,

la fente de dépôt de nuit dans une banque a cette forme, bien qu'en pratique

la « fente » doit être bien protégé pour empêcher quelqu'un d'insérer une

longue paire de pinces et extraire les dépôts des autres !

11
Une fonctionnalité utile de notre cryptosystème coffre-fort-avec-fente, en

anglais « safe-with-a-slot », qu'il partage avec les cryptosystèmes à clé

publique réels, c'est qu'Alice n'a besoin de mettre qu'un seul coffre-fort

dans un lieu public, puis tout le monde dans le monde peut l'utiliser à

plusieurs reprises pour envoyer des messages cryptés à Alice. Il n'est pas

nécessaire qu'Alice fournisse un coffre séparé pour chacun de ses

correspondants. Et il n'y a pas non plus besoin de Alice pour ouvrir le coffre-

fort et supprimer le message de Bob avant quelqu'un d'autre comme

Carl ou Dave l'utilise pour envoyer un message à Alice.

Les qualités d’un cryptosystème.


Les qualités demandées à un système cryptographique sont résumées par les
mots clefs suivants:
 Confidentialité,
 Intégrité des données,
 Authentification,
 Non-répudiation.
.On peut regarder ces quatre qualités du point de vue de l’emetteur.
Confidentialité : Alice veut être certaine qu’une personne non-autorisée (Eve)
ne peut pas prendre connaissance des messages qu’elle envoie.
Intégrité : Alice veut être certaine que ses messages ne seront pas falsifiés par
un attaquant malveillant (Martin).
Non-répudiation : Alice veut être certaine que le destinataire (Bob) a bien pris
connaissance de ses messages et ne pourra pas nier l’avoir reçu.
De plus elle veut être certaine que son message ne sera pas brouillé par les
imperfections du canal de transmission (cette exigence ne relève pas du
cryptage mais de la correction d’erreur).
Du point de vue du destinataire.
Confidentialité : Bob veut être certain que personne d’autre que lui (et Alice
bien sûr) n’a accès au contenu du message.

12
Authentification : Bob veut être certain que le message reçu vient bien d’Alice,
par exemple qu’un attaquant malveillant (Oscar) ne puisse pas se faire passer
pour Alice, mascarade ou usurpation d’identité.
Intégrité : Bob veut être certain que le message n’a pas été falsifié par un
attaquant malveillant (Martin),
Non-répudiation : Bob veut être certaine que l’expéditeur (Alice) ne pourra pas
nier avoir envoyé le message.

Échange de clés Diffie-Hellman

Création de paramètres publics

Une partie de confiance choisit et publie un (grand) premier p et un entier

g de grand ordre premier dans 𝔽∗𝑝 .

Calculs privés
Alice Bob
Choisit un entier secret a. Choisit un entier secret b.

Calcule A ≡ 𝑔𝑎 mod 𝑝 Calcule B ≡ 𝑔𝑏 mod 𝑝

Échange public de valeurs


Alice envoie A à Bob ⟶ A
B ⟵ Bob envoie B à Alice

Autres calculs privés


Alice Bob
Calcule le nombre 𝐵 𝑎 mod 𝑝 Calcule le nombre 𝐴𝑏 mod 𝑝

La valeur du secret partagé est 𝐵 𝑎 = (𝑔𝑏 )𝑎 = 𝑔𝑏𝑎 = 𝑔𝑎𝑏 = (𝑔𝑎 )𝑏 ≡ 𝐴𝑏 mod p

13
Exemple : Alice et Bob conviennent d'utiliser le nombre premier p = 941 et
la racine primitive g = 627. Alice choisit sa clé secrète a = 347 et calcule

𝐴 = 390 ≡ 627347 (𝑚𝑜𝑑 941).

De même, Bob choisit la clé secrète b = 781 et calcule

𝐵 = 691 ≡ 627781 (𝑚𝑜𝑑 941).

Alice envoie à Bob le numéro 390 et Bob envoie à Alice le numéro 691. Ces

deux transmissions sont effectuées sur un canal non sécurisé, donc A = 390

et B = 691 doivent être pris en compte connaissance publique. Les nombres a

= 347 et b = 781 ne sont pas transmis et restent secrètes. Ensuite, Alice et

Bob sont tous deux capables de calculer le nombre

470 ≡ 627347×781 ≡ 𝐴𝑏 ≡ 𝐵 𝑎 (𝑚𝑜𝑑 941),

donc 470 est leur secret partagé.

En général, le dilemme d'Eve est le suivant. Elle connaît les valeurs de A et B,

donc elle connaît les valeurs de 𝑔𝑎 et 𝑔𝑏 . Elle connaît aussi les valeurs de g et

p, donc si elle peut résoudre le PLD, alors elle peut trouver a et b, après quoi

il lui est facile de calculer la valeur secrète partagée d'Alice et Bob 𝑔𝑎𝑏 . Il est

clair qu'Alice et Bob sont en sécurité à condition qu'Eve soit incapable de

résoudre le PLD, mais ce n'est pas tout à fait correct. Il est vrai qu'une

méthode pour trouver le partage d'Alice et de Bob, la valeur est de résoudre

le PLD, mais ce n'est pas le problème précis dont Eve a besoin de résoudre. La

sécurité de la clé partagée d'Alice et de Bob repose sur la difficulté

du problème suivant, potentiellement plus facile.

Définition. Soit p un nombre premier et g un entier. Le problème Diffie-

Hellman (PDH) est le problème du calcul de la valeur de 𝑔𝑎𝑏 (mod p) des

valeurs connues de 𝑔𝑎 (mod p) et 𝑔𝑏 (mod p).

14
Il est clair que le PDH n'est pas plus dur que le PLD. Si Eve peut résoudre le

PLD, alors elle peut calculer les exposants secrets d'Alice et Bob a et b à

partir des valeurs interceptées A =𝑔𝑎 et B =𝑔𝑏 , et il lui est alors facile de

calculer leur clé partagée 𝑔𝑎𝑏 . (En fait, Eve n'a besoin de calculer qu'un seul

parmi a et b.) Mais l'inverse est moins clair. Supposons qu'Eve dispose d'un

algorithme qui résout le PDH. Peut-elle l'utiliser pour résoudre également

efficacement le PLD ? La réponse n'est pas connu.

Le cryptosystème à clé publique ElGamal


L'algorithme de chiffrement à clé publique ElGamal est étroitement lié à

l'échange de clés Diffie-Hellman. Alice commence par publier les

informations composées d'une clé publique et d'un algorithme. La clé

publique est simplement un nombre, et l'algorithme est la méthode par

laquelle Bob chiffre ses messages en utilisant la clé publique d'Alice. Alice ne

divulgue pas sa clé privée, qui est un autre nombre. La clé privée permet à

Alice, et seulement à Alice, de décrypter les messages qui ont été cryptés à

l'aide de sa clé publique. Pour le cryptosystème à clé publique ElGamal, Alice

a besoin d'un grand nombre premier p pour lequel problème de logarithme

discret dans 𝔽∗𝑝 est difficile, et elle a besoin d'un élément g modulo p de

grand ordre (premier). Elle peut choisir p et g elle-même, ou ils peuvent avoir

été présélectionné par une partie de confiance.

Alice choisit un nombre secret a pour agir comme sa clé privée, et elle calcule

la quantité

A ≡ 𝑔𝑎 mod 𝑝.

15
Remarquez la ressemblance avec l'échange de clés Diffie-Hellman. Alice la

publie clé publique A et elle garde sa clé privée secrète.

Supposons maintenant que Bob veuille chiffrer un message en utilisant le

public d'Alice clé A. Nous supposerons que le message m de Bob est un

entier compris entre 2 et p. (Rappelez-vous que nous avons discuté de la

façon de convertir des messages en nombres.) Afin de chiffrer m, Bob choisit

d'abord au hasard un autre nombre k modulo p.

Bob utilise k pour chiffrer un, et un seul, message, puis il le défausse. Le

nombre k est appelé clé éphémère, puisqu'il existe uniquement dans le but

de chiffrer un seul message. Bob prend son message en clair m, sa clé

éphémère aléatoire choisie k, et la clé publique A d'Alice et les utilise pour

calculer les deux quantités

𝑐1 ≡ 𝑔𝑘 mod 𝑝 et 𝑐2 ≡ 𝑚𝐴𝑘 mod 𝑝.

(Rappelez-vous que g et p sont des paramètres publics, donc Bob connaît

également leurs valeurs). Le texte chiffré de Bob, c'est-à-dire son cryptage de

m, est la paire de nombres (𝑐1 , 𝑐2 ), qu'il envoie à Alice.

Comment Alice décrypte-t-elle le texte chiffré de Bob (𝑐1 , 𝑐2 ) ? Puisqu'Alice en

connaît a, elle peut calculer la quantité

𝑥 ≡ 𝑐1𝑎 mod 𝑝,

puis

𝑥 −1 ≡ (𝑐1𝑎 )−1 mod 𝑝.

Ensuite elle multiplie 𝑥 −1 par 𝑐2 , et voilà, le résultat est le texte clair m.

En effet

𝑐2 . 𝑥 −1 ≡ 𝑐2 . (𝑐1𝑎 )−1 mod 𝑝 ≡ (𝑚𝐴𝑘 ). (𝑐1𝑎 )−1 mod 𝑝

≡ m(𝑔𝑎 )𝑘 ).( (𝑔𝑘 )𝑎 )−1 mod 𝑝 ≡ 𝑚(𝑔𝑎𝑘 ).(𝑔𝑘𝑎 )−1 mod 𝑝

16
𝑐2 . 𝑥 −1 ≡ 𝑚(𝑔𝑎𝑘 ).(𝑔𝑘𝑎 )−1 mod 𝑝 ≡ 𝑚(𝑔𝑎𝑘 ).(𝑔𝑎𝑘 )−1 mod 𝑝

≡ 𝑚 mod 𝑝.

Le cryptosystème à clé publique ElGamal est résumé dans le tableau ci-

dessous.

Création de paramètres publics

Une partie de confiance choisit et publie un grand premier p et un élément

g modulo p de grand ordre (premier) dans 𝔽∗𝑝 .

Création de clé
Alice Bob
Choisit la clé privée 1 ≤a ≤ p-1.

Calcule A ≡ 𝑔𝑎 (mod p).

Publie la clé publique A.

Chiffrement
Choisit un texte clair m.

Choisit au hasard une clé éphémère

k.

Utilise la clé publique A d’Alice pour

calculer 𝑐1 ≡ 𝑔𝑘 mod 𝑝 et 𝑐2 ≡

𝑚𝐴𝑘 mod 𝑝.

Envoie le texte chiffré (𝑐1, 𝑐2 ) à Alice.

17
Déchiffrement
Calcule 𝑐2 . 𝑥 −1 mod 𝑝 = m.

Quelle est la tâche d'Eve en essayant de déchiffrer le message ? Eve connaît

les paramètres publiques p et g, et elle connaît aussi la valeur de A ≡ 𝑔𝑎 (mod

p), puisque la clé publique A de Alice est de notoriété publique. Si Eve peut

problème résoudre le logarithme discret, elle peut trouver a et déchiffrer le

message. Sinon, il semble difficile pour Eve de trouver le texte en clair, bien

qu'il y ait des subtilités.

Exemple : Alice utilise le nombre premier p = 467 et la racine primitive g =


2. Elle choisit a = 153 comme clé privée et calcule sa clé publique

A ≡ 𝑔𝑎 (mod p) ≡ 2159 ≡ 224 (mod 467).

Bob décide d'envoyer à Alice le message m = 331. Il choisit une clé éphémère

au hasard, disons qu'il choisit k = 197, et qu'il calcule les deux quantités

𝑐1 ≡ 2197 ≡ 87 mod 467 et 𝑐2 ≡ 331 × 224197 ≡ 57 mod 467.

La paire (𝑐1, 𝑐2 ) = (87, 57) est le texte chiffré que Bob envoie à Alice.

Alice, connaissant a = 153, calcule d'abord

𝑥 ≡ 𝑐1𝑎 ≡ 87153 ≡ 367 mod 467,

puis

𝑥 −1 ≡ 14 mod 467.

Finalement, elle calcule

𝑐2 . 𝑥 −1 ≡ 57 × 14 ≡ 331 mod 467

qui est le texte clair m.

18
Il est temps de soulever une question importante. Le système ElGamal est-il

aussi dur pour Eve pour attaquer comme problème Diffie-Hellman ? Ou, en

introduisant une manière astucieuse de cryptage des messages, avons-nous

involontairement ouvert une porte dérobée qui rend-il facile de déchiffrer

des messages sans résoudre le problème Diffie-Hellman ? Un des objectifs de

la cryptographie moderne est d'identifier un problème difficile sous-jacent

comme le problème de Diffie-Hellman et de prouver qu'une construction

cryptographique donnée comme ElGamal est au moins aussi difficile à

attaquer que le problème sous-jacent.

Dans ce cas, nous voudrions prouver que quiconque peut décrypter

arbitrairement les textes chiffrés créés par le chiffrement ElGamal, comme

résumé dans le tableau, doivent également être capable de résoudre le

problème de Diffie-Hellman. Concrètement, nous aimerions prouver ce qui

suit :

Proposition : Soient un p premier et une base g à utiliser pour le cryptage


ElGamal. Supposons qu'Eve ait accès à un oracle qui déchiffre arbitrairement

les textes chiffrés à l'aide de clés publiques ElGamal. Elle peut alors utiliser

l'oracle pour résoudre le problème Diffie-Hellman.

Remarque : Une attaque dans laquelle Eve a accès à un oracle qui décrypte
les textes chiffrés arbitraires sont connus sous le nom d'attaque par texte

chiffré choisi. La précédente proposition montre que le système ElGamal est

sécurisé contre le texte chiffré choisi attaques. Plus précisément, il est sûr si

l'on suppose que le Diffie–Hellman le problème est dur.

19
Quelle est la difficulté du logarithme discret problème?
Étant donné un groupe G et deux éléments g, h ∈ G, le problème du

logarithme discret demande un exposant x tel que 𝑔 𝑥 = ℎ.

Quelle est la difficulté de ce problème ? Comment peut-on le quantifier de

«difficile » ? Une façon naturelle de mesurer la difficulté est le nombre

approximatif d'opérations nécessaires pour une personne ou un ordinateur

pour résoudre le problème en utilisant la méthode la plus efficace

actuellement connu. Par exemple, supposons que nous comptions le

processus de calcul 𝑔 𝑥 en une seule opération. Ensuite, une approche par

essais et erreurs pour résoudre le problème de logarithme discret serait de

calculer 𝑔 𝑥 pour chaque x = 1, 2, 3, ... et comparer les valeurs avec h. Si g est

d'ordre n, alors cet algorithme est garanti, on a besoin de trouver la solution

en au plus n opérations, mais si n est grand, disons n >280 , alors ce n'est pas

un algorithme pratique avec la puissance de calcul disponible aujourd'hui.

En pratique, à moins de construire une machine spéciale, le processus de

calcul 𝑔 𝑥 ne doit pas être compté comme une seule opération de base.

Le cryptosystème à clé publique RSA


Bob et Alice ont le problème habituel d'échanger des informations sensibles

sur une ligne de communication non sécurisée. Bob et Alice peuvent

accomplir cette tâche, basée sur la difficulté de résoudre le problème du

logarithme discret. Dans cette section, nous décrivons le RSA cryptosystème

à clé publique, le premier inventé et certainement le plus connu système. RSA

porte le nom de ses inventeurs (publics), Ron Rivest, Adi Shamir, et Léonard

Adleman.

20
Proposition. Soient p et q deux nombres premiers distincts et soit e ≥ 1 tels
que

𝑝𝑔𝑐𝑑 (𝑒, (𝑝 − 1)(𝑞 − 1)) = 1.

Alors e admet un inverse modulo (p-1)(q-1),

C’est-à-dire il existe 1≤ 𝑑 < (p-1)(q-1) tel que

𝑑𝑒 ≡ 1 (𝑚𝑜𝑑 (𝑝 − 1)(𝑞 − 1)).

Et la congruence

𝑥 𝑒 ≡ 𝑐 mod 𝑝𝑞

admet l'unique solution

𝑥 ≡ 𝑐 𝑑 mod 𝑝𝑞 .

La sécurité de RSA dépend de la dichotomie suivante :

 Installer. Soient p et q des grands nombres premiers, soit N = pq, et

soient e et c entiers.

 Problème. Résoudre la congruence 𝑥 𝑒 ≡ 𝑐 mod 𝑁 pour la variable x.

 Facile. Bob, qui connaît les valeurs de p et q, peut facilement résoudre

x comme décrit dans la proposition.

 Difficile. Eve, qui ne connaît pas les valeurs de p et q, ne pourra

trouver facilement x.

 Dichotomie. Résoudre 𝑥 𝑒 ≡ 𝑐 mod 𝑁 est facile pour une personne qui

possède certaines informations supplémentaires, mais c'est

apparemment difficile pour toutes les autres personnes.

Le cryptosystème à clé publique RSA est résumé dans le tableau

suivant.

21
Bob Alice

Création de clé
Choisit des nombres premiers

secrets p et q.

Choisit l'exposant de

chiffrement e

tel que pgcd(e, (p-1)(q-1))= 1.

Publie N = pq et e.

Chiffrement
Choisit le texte clair m.

Utilise la clé publique de Bob (N,

e)

calculer c ≡ 𝑚𝑒 mod 𝑁.

Envoie le texte chiffré c à Bob.

Déchiffrement
Calcule d satisfaisant

ed≡1 (mode (p-1)(q-1)).

Calcule 𝑚’ ≡ 𝑐(𝑚𝑜𝑑 𝑁 ).

Et m’ est égal au texte clair m.

Exemple : Nous illustrons le cryptosystème à clé publique RSA avec un petit


exemple numérique. Bien sûr, cet exemple n'est pas sûr, puisque les nombres

sont si petits qu'il serait facile pour Eve de factoriser le module N . Sécuriser

22
les implémentations de RSA utilisent des modules N avec des centaines de

chiffres.

 Création de clé RSA

Bob choisit deux nombres premiers secrets p = 1223 et q = 1987. Bob calcule

son module public N = pq = 1223×1987 = 2430101.

Bob choisit un exposant de chiffrement public e = 948047 avec la propriété

Ce

pgcd(e, (p-1)(q-1))= pgcd(948047, 2426892) = 1.

 Cryptage RSA

Alice convertit son texte en clair en entier m = 1070777 satisfaisant 1≤m<N.

Alice utilise la clé publique de Bob (N, e) = (2430101, 948047) pour calculer

c ≡ 𝑚𝑒 ≡ 1070777948047 ≡ 1473513 (mod 2430101).

Alice envoie le texte chiffré c = 1473513 à Bob.

 Déchiffrement RSA

Bob connait

(p-1)(q-1) = 1222×1986 = 2426892,

donc il peut résoudre

𝑒𝑑 ≡ 1 (𝑚𝑜𝑑 (𝑝 − 1)(𝑞 − 1)),

et trouve que

d = 1051235.

Bob prend le texte chiffré c = 1473513 et calcule

𝑐 𝑑 ≡ mod N= 14735131051235 ≡ 1070777 mod 2430101.

La valeur qu'il calcule est le message d'Alice m = 1070777.

23
Exemple académique de codes RSA.
Alice publie sa clé publique (𝑛A , 𝑒A ) = (65, 5), sa clef secrète est 𝑑A .

Bob publie sa clé publique (𝑛B , 𝑒B ) = (77, 7), sa clef secrète est 𝑑B .

Pour trouver les clefs secrètes on décompose en un produit de facteurs

premiers 𝑛A = 13 × 5 et 𝑛B = 7×11.

On calcule ensuite les indicatrices d’Euler correspondantes

ϕ(𝑛A ) = 12 × 4 = 48 et ϕ(𝑛B ) = 6 × 10 = 60.

En utilisant l’algorithme de PGCD, on calcule

𝑑A = 5 × 29 = 145 = 1 + 3 × 48 ⇒ 𝑑A = 29,
Respectivement

𝑑B = 7 × 43 = 301 = 5 × 60 + 1 ⇒ 𝑑B = 43.
Alice veut transmettre le message 3 à Bob. Elle calcule donc

37 = 31 mod 77
et elle envoit 31 à Bob. Bob décode en calculant

3143 = 311+2+8+32 =31×37×58×37×31≡ 3 mod 77.


(remarquer la manière de calculer une puissance).

24

Vous aimerez peut-être aussi