Calcul de l'algorithme RSA

Fermé
Zarquoi Messages postés 218 Date d'inscription samedi 28 mars 2015 Statut Membre Dernière intervention 13 décembre 2016 - Modifié par Zarquoi le 13/05/2016 à 21:42
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 mai 2016 à 23:58
Bonjour,

Désolé si je suis hors sujet. Comme ça parle de cryptographie, je ne sais pas dans quelle section mettre (j'ai hésité avec la section réseau, car le RSA s'utilise pour sécuriser le HTTP, mais je me suis dis qu'il y aurait davantage de personnes compétentes ici en programmation pour m'aider).

Alors je m'intéresse à la cryptographie RSA et notamment à son calcul.
Je suis tombé sur ce lien : http://sebsauvage.net/comprendre/encryptage/crypto_rsa.html

Je comprends beaucoup de chose, sauf qu'à un endroit, c'est très peu détaillé.
Il est dit :
On choisit d tel que 71*d mod 1008 = 1
On trouve d = 1079


J'aimerais savoir comment a été trouvé ce fameux d ?
Je sais, c'est un exercice tout con de collège "trouver x", mais là, avec le modulo, je suis bloqué :/

Je cherche à passer du calcul 71*d mod 1008 = 1 au calcul d=.....

Pouvez-vous m'aider ?

Merci
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 mai 2016 à 21:47
Bonjour,

Voici un autre article sur RSA :
https://www.commentcamarche.net/contents/208-algorithme-de-chiffrement-rsa

Génération des clés

  • Soient deux grands nombres premiers « aléatoirement » choisis : p et q.
  • Notons : n = p*q et φ = (p-1)*(q-1)
  • Soient d un grand entier « aléatoirement » choisi, premier avec φ. Et e l'inverse de d modulo φ.
0
Zarquoi Messages postés 218 Date d'inscription samedi 28 mars 2015 Statut Membre Dernière intervention 13 décembre 2016 48
13 mai 2016 à 22:02
Salut :)

J'ai déjà visité ce lien mais j'avoue l'avoir mis de côté (la documentation de CCM n'est pas très accueillante pour moi ^^).

J'y ai donc porté davantage d'attention, et donc sur le site sebsauvage, on choisit e et on calcul d, et sur CCM, c'est l'inverse : on choisit d et on calcul e.

Choisir d et calculer e est + facile :D

Je vais voir si j'y arrive :D

Merci beaucoup :)
0
Zarquoi Messages postés 218 Date d'inscription samedi 28 mars 2015 Statut Membre Dernière intervention 13 décembre 2016 48
13 mai 2016 à 22:14
Bon, je reviens.

Il faut que d soit premier avec phi.
Dans mon exemple, c'est phi=1008 (enfin, c'est l'exemple du site sebsauvage ^^).

Mais quel calcul permet d'avoir le ou les nombres qui sont premiers avec 1008 ?
J'ai testé quelques nombres au hasard, mais aucun n'est premier avec 1008.
J'imagine qu'il doit bien y avoir une formule pour ça ?

D'après mes recherches, je n'ai rien trouvé :/
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > Zarquoi Messages postés 218 Date d'inscription samedi 28 mars 2015 Statut Membre Dernière intervention 13 décembre 2016
13 mai 2016 à 22:16
"sur le site sebsauvage, on choisit e et on calcul d, et sur CCM, c'est l'inverse : on choisit d et on calcul e"
Ça ne change absolument rien, d et e sont les inverses l'un de l'autre.
Tu peux très bien choisir aléatoirement deux couples (d1, e1) et (d2, e2) tel qu'on aurait d1=e1 et d2=e2, ça n'empêcherait pas d'avoir des couples valides.

Remarque : en général on choisit d en premier car on veut lui imposer d'être très grand, pour rendre le déchiffrement plus compliqué, alors que si on choisit e en premier, même petit, on n'a aucune garanti que d sera suffisamment grand.
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > Zarquoi Messages postés 218 Date d'inscription samedi 28 mars 2015 Statut Membre Dernière intervention 13 décembre 2016
13 mai 2016 à 22:22
Pour savoir si un nombre est premier avec un autre il faut calculer le pgcd.
Par définition le pgcd renvoie le plus grand diviseur commun des deux nombres, donc si c'est 1 alors ils sont premiers.

Généralement ce que l'on fait c'est choisir un nombre au hasard x puis on calcules le pgcd pour x, x+1, x+2... jusqu'à en trouver un qui soit premier avec φ
0
Zarquoi Messages postés 218 Date d'inscription samedi 28 mars 2015 Statut Membre Dernière intervention 13 décembre 2016 48 > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
Modifié par Zarquoi le 13/05/2016 à 22:40
Oui, j'ai trouvé le PGCD dans mes recherches (c'est un truc que j'avais appris au collège, j'ai quelques souvenirs qui reviennent ^^), mais dans la formule il faut 2 nombres (a et b).
Hors, j'en ai qu'un seul ^^

Il n'y a vraiment aucun calcul qui me permette de trouver A à partir de B ?

Car sinon je fais un script qui calcul le PGCD en incrément A jusqu'à ce que le PGCD soit égal à 1 (je le ferai demain car là j'suis trop naze ^^).
Mais j'aimerai éviter d'utiliser un script car ce n'est pas très mathématique.

En tout cas MERCI pour ton aide !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 mai 2016 à 23:14
Je cherche à passer du calcul 71*d mod 1008 = 1 au calcul d=.....
Dis autrement, tu dois trouver d dans 71*d + k*1008 = 1
avec k nombre entier relatif.

Et pour cela, tu as le théorème de Bézout.
0
Zarquoi Messages postés 218 Date d'inscription samedi 28 mars 2015 Statut Membre Dernière intervention 13 décembre 2016 48
13 mai 2016 à 23:28
Merci, demain je vais voir ce théorème (que je ne connais absolument pas).
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 13/05/2016 à 23:33
Ca va te faire pas mal de lecture demain ;-).
Enfin, le théorème de Bézout t'affirme qu'il y a au moins une solution.
Si tu veux en trouver une, c'est plutôt l'algorithme d'Euclide (étendu ici) qu'il faut utiliser :
Donc tu as juste à lire :
https://fr.wikipedia.org/wiki/Algorithme_d'Euclide_%C3%A9tendu
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 mai 2016 à 23:40
Salut fiddy :-)

Vu qu'on a déjà φ (l'indicatrice d'Euler) ce ne serait pas plus simple d'aller directement sur le théorème d'Euler ?

d^(-1) ≡ d^(φ-1) [n]
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 mai 2016 à 23:58
Salut KX,

À vrai dire, je n'y avais même pas pensé.
Mais pour calculer à la main, l'algorithme d'Euclide me semble plus adapté, et plus accessible. Mais donnons lui de la lecture, il nous fera un retour d'expérience ;-).
0