Bonjour,
J'essaye d'implémenter moi même RSA en C++, le problème vient lors de la generation des deux nombre premiers, je génère un nombre aléatoirement dans un intervalle donné, et je vérifie si il est premier avec le test de primalité de Fermat (ce qui, je crois est la méthode employé de nos jours pour beaucoup d'implémentation de RSA), je fais 2 tests, pour être quasiment certain que le nombre est premier, ca fonctionne à merveille mais seulement pour les petits nombres, pour les gros nombre c'est long, très très long, donc j'ai du mal a comprendre comment les algorithme de génération de clé font pour générer des clé de 2048 bits voir plus en quelques secondes ^^
J'utilise la bibliothèque "InfInt" qui me permet de manipuler de grand nombres.
Pour faire le test de Fermat, j'utilise une fonction puissance que j'ai implémenter pour InfInt (C'est vraiment une fonction naïve, elle calcul bêtement chaque puissance), et pour le modulo, j'utilise simplement "%".
Voila ^^ Je sais pas trop si c'est dû au test de Fermat où peut-être à la possibilité de mieux implémenter la puissance et le modulo.
Merci d'avance !
Partager