RSA Strong Prime generator

Catégorie: Cryptography Difficulté: - Flag: CYBN{d0nt_r0ll_y0ur_0wn_crypt0_dammit!!}

Challenge

file-archive
2KB
circle-info

Description


J’ai trouvé une nouvelle méthode ultra méga sécurisé pour générer des nombres premiers pour mon RSA!

Aie, encore un qui pense avoir inventé l’eau chaude. Arriverez-vous à lui prouver que son algorithme est mauvais ?

Solution

Le chiffrement se fait en 3 étapes :

  • Trouver P

  • Trouver Q en fonction de P

  • Définir les autres constantes et chiffrer

Autrement dit, tout repose sur P. C'est la fonction getcustomprime qui permet d'en trouver un.

Cette fonction ne prend qu'un argument, paramétré à 2048 lors de son seul appel à la ligne 26.

Les étapes de la fonction :

  • commence sa recherche de nombre à 2 puissance 2048

  • checher le prochain nombre premier

  • accepte aléatoirement ce nombre sinon revient à l'étape précédente

On a donc simplement à prendre tous les nombres premiers un à un à partir de 2 puissance 2048, utiliser getQfromP et regarder si avec nos P et Q on retrouve le même N que celui utilisé pour chiffrer.

En Python cela donne :

A partir de là il ne reste plus qu'à calculer les autres constantes et déchiffrer, toujours en python :

Mis à jour