3OS PM 29 janvier 2015 Nom : . . . . . . . . . . . . . . . . . . . . . . . .
RSA avec Python – TE n657
Exercice 1 (5 points)
Soit la fonction proc ci-dessous.
1 def proc(a, b):
2 x, xx = 1, 0
3 y, yy = 0, 1
4 while b != 0:
5 q = a // b
6 a, b = b, a % b
7 xx, x = x - q * xx, xx
8 yy, y = y - q * yy, yy
9 return (a, x, y)
a) Expliquer ce que fait cette fonction.
b) Expliquer en d´etail le rˆole de la ligne no 7.
c) A la ligne 9, que vaut apar rapport `a xet y?
Exercice 2 (5 points)
Cr´eer un fichier Python nomm´e Nom_Ex2.py qui permet de d´ecomposer un entier naturel
non nul ncomme une somme de puissances de 2.
Par exemple, le fichier pourrait afficher `a la console :
100 = 4 + 32 + 64
357 = 1 + 4 + 32 + 64 + 256
2015 = 1 + 2 + 4 + 8 + 16 + 64 + 128 + 256 + 512 + 1024
sv Gymnase de Burier 1
3OS PM 29 janvier 2015 Nom : . . . . . . . . . . . . . . . . . . . . . . . .
Exercice 3 (6 points)
Le fichier Ex3.txt contient deux nombres premiers pet q.
On choisit e = 5 qui satisfait la condition gcd(e, ϕ(n)) = 1, o`u n=p·q. On dispose ainsi
d’une cl´e publique (n, e).
a) Dans un fichier Nom_Ex3.py, construire la cl´e priv´ee (n, d). Afficher `a la console
la valeur de d.
b) Coder le message suivant (pr´esent dans Ex3.txt) `a l’aide de la cl´e publique (n, e)
et l’afficher `a la console.
1212121212121212121212121212121212121212121212121212121212
c) D´ecoder le message suivant (pr´esent dans Ex3.txt) `a l’aide de la cl´e priv´ee (n, d)et
l’afficher `a la console.
552286272664186788564631857984700455907472476279585940597060
910032345859983744925615546127492663685334316976853156087392
492286054148756451673574970807904348821305159693448433784514
720609801829221010443718208244525608679557226563996106232420
213674414386740893281348305724265811795219709375
Exercice 4 (6 points)
Le chiffrement d’un message mest possible `a partir de la cl´e publique (n, e).
Voici une fonction codage_rsa qui permet de chiffrer un message m.
1 def codage_rsa(m, n, e):
2 return pow(m, e, n)
Le d´echiffrement d’un message chiffr´e xest possible `a l’aide de la cl´e priv´ee (n, d).
Voici une fonction decodage_rsa qui permet de d´echiffrer un message x.
1 def decodage_rsa(x, n, d):
2 return pow(x, d, n)
Le fichier Nom_Ex4.py contient ces deux fonctions, deux nombres premiers pet qainsi
que la valeur de e.
Le fichier Nom_Ex4.py contient ´egalement un message met un message coe x.
En utilisant les fonctions codage_rsa et decodage_rsa qui remplacent l’exponentiation
modulaire pr´esente dans les diff´erents codes, compl´eter le fichier Nom_Ex4.py pour :
a) D´eterminer la valeur de d, puis afficher sa valeur `a la console.
b) Coder le message m`a l’aide de la cl´e publique (n, e) et afficher ce message coe `a
la console.
c) D´ecoder le message coe x`a l’aide de la cl´e priv´ee (n, d) et afficher ce message
d´ecod´e `a la console.
sv Gymnase de Burier 2
1 / 2 100%
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 !