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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
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 13
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