• Aucun résultat trouvé

Le système RSA

N/A
N/A
Protected

Academic year: 2022

Partager "Le système RSA"

Copied!
2
0
0

Texte intégral

(1)

STH2, Maple 2011

Le système RSA

Le système RSA est une méthode de cryptage de messages. C’est actuellement l’une des méthodes les plus sûres que l’on connaisse et la plupart des transmissions sécurisées utilisent son principe de base.

La méthode est la suivante : Alice souhaite envoyer un message à Bob. Elle veut le coder de telle manière que si quelqu’un intercepte son message, il ne pourra pas ou aura beaucoup de mal à le décoder. Pour cela Bob choisit deux nombres premiers p et q très grands. Il calcule leur produit n = pq et l’indicateur d’Euler ϕ(n) = (p−1)(q −1). Enfin il choisit un entier e < n premier avec ϕ(n) et il détermine un entier d tel que ed = 1 mod ϕ(n). Il transmet les nombres n et e à Alice. Ces nombres ne sont pas secrets et tout le monde peut les connaître : (n, e) est la clé publique de Bob. Alice veut envoyer un message M sous la forme d’un nombre inférieur à n. Elle calcule M1 =Me modn et elle transmet M1 à Bob. Ce dernier calcule alors M2 =M1d modn. Ce nombreM2 est égal àM et le message a bien été transmis.

Explication : l’ensemble des éléments inversibles de Z/nZ est un groupe pour la multiplication. Il est d’ordre ϕ(n). Comme ed = 1 modϕ(n), on peut écrire ed = 1 +kϕ(n). Alors M2 =M1d = (Me)d =M1+ϕ(n) =M Mϕ(n). Or Mϕ(n) = 1 mod n, donc M2 =M mod n. Comme M était inférieur à n, on obtient bien M2 =M.

Sécurité : si quelqu’un intercepte le messageM1, il doit connaîtredpour retrouver M. Mais pour connaître d, il faut connaître ϕ(n) et pour connaître ϕ(n), il faut connaître p et q. Ainsi, réussir à décoder M revient à factoriser l’entier n. Or la factorisation de grands nombres est un problème difficile. Si les nombresp etq sont très grands (de l’ordre de10100), le temps requis par des ordinateurs pour factoriser n est de l’ordre de plusieurs mois.

1

(2)

Programmation

1. Écrire un programme puissance(a,b,n) qui calcule ab mod n. Ce programme doit pouvoir fonctionner avec de grandes valeurs de b.

2. Écrire un programme codage(M,n,e) qui code le message M à partir de la clé publique(n, e).

3. Écrire un programme decodage(M1,p,q,e) qui décode un message M1 envoyé avec le programme précédent.

4. Vérifier pour différentes valeurs (petites et grandes) depetqque ce programme permet bien de retrouver le message initial.

Essayer avec p= 11,q = 23 ete= 15. Expliquer.

5. Écrire un programmeespion(M1,n,e) qui décodeM1sans connaîtrepetq(on utilisera les commandesifactor, convert(.,list)etexpand). Pour quelles valeurs dep etq ce programme va-t-il nécessiter plus de dix secondes ?

Le système RSA repose sur la difficulté de factoriser les grands nombres. Nous allons vérifier cette assertion.

6. Écrire un programme qui évalue le temps que met Maple à factoriser un produit de deux nombres premiers.

7. Représenter graphiquement l’évolution de ce temps en fonction de la taille (nombre de chiffres) des nombres à factoriser.

Pour que le système RSA soit réalisable, il faut pouvoir trouver de grands nombres premiers, et donc disposer de tests de primalité rapides. Nous allons vérifier cela.

8. Écrire un programme qui évalue le temps que met Maple à tester la primalité d’un nombre.

9. Représenter graphiquement l’évolution de ce temps en fonction de la taille des nombres à tester.

10. Écrire un programme qui teste la primalité d’un nombre et comparer sa vitesse d’exécution à celle de isprime.

Fonctions Maple utiles : mod, ifactor, isprime, time, listplot

2

Références

Documents relatifs

Cela signifie entre les lignes que, modulo un certain nombre pair n, tous les nombres premiers unit´ es de n ne peuvent ˆ etre simultan´ ement tous des r´ esidus quadratiques de n

• l’article 78 des Recherches Arithm´ etiques : Le th´ eor` eme de Wilson peut ˆ etre rendu plus g´ en´ eral en l’´ enon¸ cant comme il suit : le produit de tous les

Déterminer la tension de sortie v 0 en fonction de la tension d’entrée v i dans les deux cas suivants : Diode conduc- trice, Diode bloquée3. Représenter la tension de sortie v 0

Etude du temps de trajet, en minutes, des élèves

Exercice 2 La fréquence de vibration f (en hertz) d'une corde tendue dépend de sa longueur (en mètres) et de sa tension T (en newtons).. Pour une corde de violon (de longueur utile

Cette vente, d’une durée annoncée de trois minutes, a provoqué sur son site un flux financier que l’on peut supposer continu et dont la vitesse instantanée a été

Problèmes du champ multiplicatif (recherche d’un produit ou recherche de la valeur d’une part ou du nombre de parts dans une situation d’un partage équitable) sur des

 Avec des nombres donnés (à un, deux ou trois chiffres, deux ou trois nombres), il sait poser l’addition (unités sous unités, dizaines sous dizaines, centaines sous centaines)