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

Résolu
Profil bloqué -  
 Profil bloqué -
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

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. Profil bloqué
     
    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
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
    1. Profil bloqué
       
      Ok merci beaucoup je vais voir ça !!

      Bonne soirée
      0
  4. Profil bloqué
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Azraka Messages postés 265 Statut Membre 13
     
    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