Créer une clé RSA a partir d'un mot passe

Résolu/Fermé
Profil bloqué - Modifié par projeta618 le 9/02/2013 à 20:57
 Profil bloqué - 10 févr. 2013 à 23:58
Bonjour, J'aimerait savoir comment créer un clé de cryptage RSA avec clé privée ainsi que clé publique tout ça baser a partir d'un mot de passe !!

Merci de votre compréhension !

Cordialement ,
projeta618



5 réponses

KX
Messages postés
16585
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 août 2022
2 972
9 févr. 2013 à 21:21
Les clés RSA sont basés sur la génération de deux grands nombres premiers.
Il faudrait donc passer de ton mot de passe à tes nombres premiers.

Mais ça me parait être une fausse bonne idée... car il vaudrait mieux que les clés RSA soient générées aléatoirement, sinon on pourrait faire une attaque du dictionnaire pour deviner le mot de passe, générer les deux clés RSA (publique et privée) et en comparant la clé publique utiliser la clé privé pour récupérer le contenu du message !
0
Ok merci ,
cependant comment fait je pour générer mes nombres premiers je travail en php ^^

Je pense bien qu'avec une attaques dictionnaire ont puisse découvrir le mot de passe ensuite c'est a l'utilisateur de faire attention ou de les pousser a créer de gros mot passe ou de générer aléatoirement un mot de passe ,
ensuite il faut protéger l'interface pour empêcher les attaques par bruteforce
0
KX
Messages postés
16585
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 août 2022
2 972
Modifié par KX le 9/02/2013 à 23:11
Je pense toujours que ce n'est pas une si bonne idée que ça, mais je ne vais pas revenir dessus, je l'ai déjà dit ^^

Pour le PHP je n'y connais rien, mais j'imagine (j'espère pour toi) qu'il y a aussi des bibliothèques sur les grands nombres et que tu pourras faire la transition du code suivant.

Remarque : mon code est super simpliste, il y a un certain nombre de cas à prendre en compte pour que les nombres entiers premiers soient vraiment sécurisés...

String mdp = "azerty"; // le mot de passe de l'utilisateur

long seed = new BigInteger(mdp.getBytes()).longValue(); // conversion en entier

Random random = new Random(seed); // générateur aléatoire

int numBits = 2048; // taille des entiers à générer

// Calcul (simpliste) des nombres premiers

BigInteger p = new BigInteger(numBits, random).nextProbablePrime();
BigInteger q = new BigInteger(numBits, random).nextProbablePrime();

// Calculs des clés RSA

BigInteger n = p.multiply(q);
...
La confiance n'exclut pas le contrôle
0
Profil bloqué
10 févr. 2013 à 01:04
Ok merci beaucoup je vais voir ça !!

Bonne soirée
0
J'ai déjà ce code il faut donc que je modifie quelque chose dans celui-ci mais quoi ...

Je ne m'y connait pas vraiment en cryptage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Azraka
Messages postés
252
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
5 juin 2014
14
Modifié par Azraka le 10/02/2013 à 22:49
Sinon sur google en moins de 20 secondes : http://www.g33k-zone.org/post/2010/07/01/G%C3%A9n%C3%A9rer-des-clefs-RSA-en-php

https://lmgtfy.app/?q=php+g%C3%A9n%C3%A9rer+cl%C3%A9+rsa

Ok c'est l'extension open_ssl qui fait le travail, mais pour certaines choses, et surtout en crypto et sécurité, mieux vaut ne pas réinventer la roue.
-1