Spécialité terminale S La cryptographie à clés publiques : le

Spécialité terminale S La cryptographie à clés publiques : le système RSA
1
I Objectifs
Présenter un système de cryptage récent.
En faire une implémentation sous le tableur Excel.
II Propriété fondamentale
n = pq est le produit de deux entiers premiers p et et q distincts.
On pose m = (p – 1)(q – 1) et on note c un nombre premier avec m.
On note x un entier naturel.
a) Démontrer qu'il existe des entiers d et k tels que :
cd = mk + 1 (c'est-à-dire cd 1 [m])
b) Cas où x est non divisible par p.
Démontrer que x
p-1
1 [p].
En déduire que x
km
1 [p], puis que x
cd
x [p]
Cas où x est divisible par p.
Démontrer que x
cd
x [p].
c) Démontrer de façon analogue que pour tout entier naturel x, x
cd
x [q].
d) En déduire que pour tout entier naturel x, x
cd
x [n].
III Principe du cryptage
Pour chiffrer un message (cartes bancaires, internet, …), on choisit deux nombres
premiers p et q très grand et on calcule n = pq.
On pose m = (p – 1)(q – 1).
On cherche deux entiers naturels c et d tels que cd 1 [m].
Les messages x seront des entiers naturels appartenant à [0;1;….;n – 1].
Le codage de ce message consiste à calculer C(x) x
c
[n].
Le décodage consiste à calculer D(y) y
d
[n].
On a bien D(C(x)) x
cd
x [n].
Pour chiffrer un message on a besoin de connaître c et n.
Spécialité terminale S La cryptographie à clés publiques : le système RSA
2
Le couple (n;c) est appelé la clé publique car elle est connue de tous et repertoriée
dans un annuaire.
Pour déchiffrer, il faut connaître d et n.
d est appelé la clé privée car elle n'est connue que de la personne qui reçoit le
message codé.
IV Notes
Les trois lettres RSA sont les initiales de Rivest, Shamir, Adleman qui ont mis au
point cet algorithme en 1978.
Les nombres premiers p et q doivent demeurés cachés car leur connaissance entraîne
celle de m = (p – 1)(q – 1), puis celle de d en résolvant l'équation de Bézout : cd – km =
1 (ce qui est possible car c est dans l'annuaire).
Le sytème RSA 1 024 bits correspond à un nombre n = pq de l'ordre de 2
1024
10
308
s'écrivant avec 309 chiffres décimaux.
V Application 1
Alexandre veut choisir une clé publique (n;c) et sa clé privée d.
Il prend p = 5, q = 11 et donc n = 55 (p et q sont choisis petits, contrairement à la réalité,
pour la simplicité des calculs).
a) Démontrer qu'il peut choisir c = 3 et d = 27.
b) Les lettres de l'alphabet sont chiffrés par :
A
B
C
D
….
Y
Z
01
02
03
04
….
25
26
Paul qui connait la clé publique d'Alexandre, crypte le message :
"VIVE LA CRYPTOGRAPHIE" et lui envoie.
Quel message crypté Alexandre reçoit-il ? Comment le décode-t-il ?
c) A l'aide du tableur Excel, implémenter les fonctionnalités suivantes :
Vérifier que les couples (c;n) et (d;n) donnés sont corrects.
A l'aide de formules Excel implémenter le codage et le décodage d'un
message.
Spécialité terminale S La cryptographie à clés publiques : le système RSA
3
On pourra utiliser les fonctions Excel suivantes :
CODE() : codage ASCII d'un caractère
CAR() : fournit le caractère alphabétique correspondant à un code
ASCII
MOD() : donne le reste de la division euclidienne d'un nombre par un
autre.
d) A quel problème est-on confronté lors de l'implémentation du décodage ?
Proposer alors deux algorithmes à implémenter avec deux procédures écrites en
Visual-Basic qui contournent le problème : une de codage et une de décodage.
V Application 2
Lise a pour clé publique (n;c) avec n = pq, p = 3, q = 13.
a) Démontrer qu'elle peut choisir c = 29 et d = 5.
b) Elle reçoit le message crypté suivant de Julie :
28 01 12 21 11 12 03 28 05.
Décrypter ce message.
Spécialité terminale S La cryptographie à clés publiques : le système RSA
CORRECTION
4
II Propriété fondamentale
a) c et m étant premiers entre eux, d'après le théorème de Bézout il existe des entiers d et l
tels que cd + lm = 1
Soit cd = km + 1 en prenant k = -l.
b) Si x est non divisible par p, alors le petit théorème de Fermat assure que : x
p-1
1 [p].
Or x
m
= x
(p-1)(q-1)
= (x
(p-1)
)
(q – 1)
1
q-1
1 [p]
Donc x
km
1
k
1 [p].
Et x
cd
= x
km
×x x [p]
Si x est divisible par p, alors x 0 [p] et donc x
cd
x [p].
Conclusion, pour tout x, x
cd
x [p].
c) p et q ayant un rôle symétrique, le résultat est immédiat.
d) x
cd
– x est divisible par p et par q.
Or comme p et q sont premiers entre eux (puisque ce sont deux nombres premiers) alors x
cd
– x est divisible par leur produit pq.
Soit : x
cd
x [n].
V Application 1
a) m = (p – 1)(q – 1) = 4×10 = 40
Si c = 3 et d = 27.
3 et 40 sont premiers entre eux.
cd = 3×27 = 81 1 [40]
Donc le choix de c et d est valable.
b) La lettre "V" est codée par 33 car 22
3
33 [55].
La lettre "I" est codée par 14 car 9
3
14 [55].
Etc ….
Le message codé est alors :
33 14 33 15 23 01 27 02 05 26 25 20 13 02 01 26 17 14 15
Spécialité terminale S La cryptographie à clés publiques : le système RSA
CORRECTION
5
c)
La vérification des couples (c;n) et (d;n) est faite dans la cellule I4 par la formule
:=SI(MOD(E4*E5;(B4-1)*(B5-1))=1;"OK";"KO")
La lettre en cellule B10 (V dans l'exemple) est chiffrée en B11 par la formule :
=SI(B10="";"";CODE(B10)-64)
et ce nombre est cryptée avec la clé publique RSA en cellule B12 par la formule :
=SI(B11="";"";MOD(B11^$E$4;$B$4*$B$5))
Le nombre à déchiffrer en cellule B14 (28 dans l'exemple) est décryptée avec la clé
secrète RSA en cellule B15 par la formule :
=SI(B14="";"";MOD(B14^$E$5;$B$4*$B$5))
et ce nombre décrypté est traduit par la lettre correspondante en cellule B16 par la
formule :
=SI(B15="";"";CAR(B15+64))
d) Excel ne parvient à décrypter les nombres différents de 1 avec d = 27.
En effet, y
27
est un nombre "trop grand" pour le tableur.
Le même problème peut se produire pour le cryptage si on prend pour c une valeur assez
grande.
1 / 7 100%

Spécialité terminale S La cryptographie à clés publiques : le

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !