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%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!