Mathématiques Expertes Terminale

Rejoignez la communauté !
Co-construisez les ressources dont vous avez besoin et partagez votre expertise pédagogique.
Nombres complexes
Ch. 1
Nombres complexes, point de vue algébrique
Ch. 2
Nombres complexes, point de vue géométrique
Arithmétique
Ch. 3
Divisibilité dans Z
Ch. 4
PGCD et applications
Graphes et matrices
Ch. 6
Calcul matriciel et applications aux graphes
Ch. 7
Suites et matrices
Annexes
Cahier d'algorithmique et de programmation
Chapitre 5
TP / TICE 2

Système cryptographique RSA

8 professeurs ont participé à cette page
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.
Énoncé
Une personne A cherche à recevoir des messages de manière sécurisée et une personne B cherche à lui en envoyer. Les messages sont numérisés et transformés en une suite d'entiers. L'objectif est donc de transmettre des entiers sans que quiconque, autre que la personne A, puisse les décrypter.
Pour cela, la personne A choisit deux nombres premiers p et q puis calcule les produits \mathrm{N}=pq et n=(p-1)(q-1).
Elle choisit également un entier naturel c premier avec n. La personne A publie le couple (\mathrm{N} ; c), appelé clé publique, permettant à quiconque de lui envoyer un nombre crypté.
  • Pour crypter un entier a compris entre 0 et \mathrm{N}-1, la personne B calcule le reste b dans la division euclidienne de a^c par \mathrm{N}. Le nombre crypté qu'elle envoie à la personne A est b.
  • Pour décrypter le message, la personne A commence par calculer l'unique entier d compris entre 0 et n-1 tel que c d \equiv 1[n]. Il est alors possible de montrer que cet entier d vérifie b^{d} \equiv a[\mathrm{N}], ce qui permet donc à la personne A de retrouver le nombre a.

Question préliminaire :

Pourquoi la personne A est‑elle, en pratique, la seule capable de calculer l'entier d et de déchiffrer les messages ?
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.
Objectif
Mettre en œuvre l'algorithme de cryptage et de décryptage du système RSA dans le cas où \boldsymbol{p=5}, \boldsymbol{q=11} (c'est‑à‑dire \boldsymbol{\mathrm{N}=55} et \boldsymbol{n=40}) et \boldsymbol{c=23}, à l'aide d'une des deux méthodes.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

Méthode 1
Tableur

1. La personne B veut crypter le nombre a=3.
Réaliser une feuille de calcul comme ci‑dessous afin de calculer l'entier b dans la cellule D2. (Fichier téléchargeable .)

Placeholder pour maths expertes - chapitre 5 - Nombres premiers - TP2. Système cryptographique RSA - méthode 1maths expertes - chapitre 5 - Nombres premiers - TP2. Système cryptographique RSA - méthode 1
Le zoom est accessible dans la version Premium.

Quelle est la valeur de l'entier b que la personne B doit transmettre à la personne A ?

2. a. À l'aide d'une feuille de calcul, calculer toutes les valeurs de c \times d, pour d compris entre 0 et n-1.
Vérifier que l'entier d, que doit calculer la personne A, est égal à 7. .)

b. Réaliser la feuille de calcul suivante donnant la liste des valeurs de b^d modulo \mathrm{N}, en faisant dérouler la formule écrite en C2.

Placeholder pour maths expertes - chapitre 5 - Nombres premiers - TP2. Système cryptographique RSA - méthode 1maths expertes - chapitre 5 - Nombres premiers - TP2. Système cryptographique RSA - méthode 1
Le zoom est accessible dans la version Premium.

Vérifier que la personne A va bien retrouver la valeur de a, si elle reçoit la valeur b transmise par la personne B dans la question 1..
Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

Méthode 2
Python

1. Écrire en Python une fonction cryptage, prenant en argument a, N et c et permettant à B de trouver l'entier b. Faire un test avec a=8.



2. Pour déchiffrer le message, la personne A doit déterminer l'entier d, compris entre 0 et n-1, tel que c d \equiv 1[n]. Elle écrit le programme ci‑dessous.

def chercher_exposant(c, n):
	F = 0
	d = 0
	while ... :
		d = d + 1
		F = c*d % n
	return(d)

a. Expliquer chaque ligne du programme puis compléter la ligne 4.

b. Déterminer l'entier d pour c=23 et n=40.

c. Quelle méthode plus efficace pourrait‑on utiliser pour déterminer d ?

3. Écrire une fonction en langage Python ayant pour arguments b, d et N et retournant l'entier a.


Afficher la correction
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

Pour aller plus loin

Voir exercice .

Une erreur sur la page ? Une idée à proposer ?

Nos manuels sont collaboratifs, n'hésitez pas à nous en faire part.

Oups, une coquille

j'ai une idée !

Nous préparons votre pageNous vous offrons 5 essais
collaborateur

collaborateurYolène
collaborateurÉmilie
collaborateurJean-Paul
collaborateurFatima
collaborateurSarah
Utilisation des cookies
Lors de votre navigation sur ce site, des cookies nécessaires au bon fonctionnement et exemptés de consentement sont déposés.