Téléchargé 49 fois
Vote des utilisateurs
0
0
Détails
Licence : Libre
Mise en ligne le 23 janvier 2017
Plate-formes :
Linux, Mac, Symbian, Windows
Langue : Français
Référencé dans
Navigation
Chiffrement RSA pour les nuls
Chiffrement RSA pour les nuls
Le principe de base de RSA est de considérer un message comme un (grand) nombre entier et de faire des calculs dessus pour le chiffrer.
Les implémentations que l'on trouve dans le monde industriel utilisent des librairies de calcul sur des entiers arbitrairement longs très optimisées et difficiles à comprendre.
Le but de ce petit programme est d'implémenter RSA sur des entiers "classiques" et sans la moindre optimisation pour mieux comprendre l'algorithme.
Pour autant, cette implémentation est parfaitement conforme à l'algorithme RSA.
Sa seule limitation est taille de la clef qui est de 31 bits au maximum.
Ce qui donne un niveau de sécurité à peu près nul (il faut au moins 512 bits pour que l'on puisse commencer à parler de sécurité).
Le type des entiers est 'big_int' qui peut être un long (32bits) ou un long long (64bits).
Mais il peut être remplacé par n'importe quel type qui supporte les opérateurs d'affectation, d'arithmétiques classiques (*+/-%) et de comparaison.
Le code est en c++ tout à fait standard, mais est livré avec un projet Visual Studio 2005.
Hadrien Flammang - dec 2008
Les implémentations que l'on trouve dans le monde industriel utilisent des librairies de calcul sur des entiers arbitrairement longs très optimisées et difficiles à comprendre.
Le but de ce petit programme est d'implémenter RSA sur des entiers "classiques" et sans la moindre optimisation pour mieux comprendre l'algorithme.
Pour autant, cette implémentation est parfaitement conforme à l'algorithme RSA.
Sa seule limitation est taille de la clef qui est de 31 bits au maximum.
Ce qui donne un niveau de sécurité à peu près nul (il faut au moins 512 bits pour que l'on puisse commencer à parler de sécurité).
Le type des entiers est 'big_int' qui peut être un long (32bits) ou un long long (64bits).
Mais il peut être remplacé par n'importe quel type qui supporte les opérateurs d'affectation, d'arithmétiques classiques (*+/-%) et de comparaison.
Le code est en c++ tout à fait standard, mais est livré avec un projet Visual Studio 2005.
Hadrien Flammang - dec 2008
Bonjour,
Le but est purement éducatif alors. Car il est dommage de se limiter a des nombres aussi court. Comme déjà précisé seulement à partir d'une clé de 512bits ont peut commencer à parler de sécurité.
En java les objets BigInteger lèvent totalement ce problème.
La dernière difficulté viens de la génération de la paire de clé. En effet produire des nombres premiers très grand et s'assurer qu'ils le sont n'est pas simple.
L'objet BigInteger possède une méthode qui se base sur l'algorithme Rabin-Miller pour avoir une très forte probabilité que le nombre fabriqué à l'aide d'un générateur pseudo-aléatoire est premier : Le générateur de clé de l'API de cryptographie BouncyCastle fonctionne de cette manière.
Bien préciser que la sécurité de RSA repose uniquement sur la difficulté de factoriser un nombre très grand. Vu les enjeux, il est fort probable que dans un avenir proche de nouvelles techniques rendront l'algorithme obsolète.
Le but est purement éducatif alors. Car il est dommage de se limiter a des nombres aussi court. Comme déjà précisé seulement à partir d'une clé de 512bits ont peut commencer à parler de sécurité.
En java les objets BigInteger lèvent totalement ce problème.
La dernière difficulté viens de la génération de la paire de clé. En effet produire des nombres premiers très grand et s'assurer qu'ils le sont n'est pas simple.
L'objet BigInteger possède une méthode qui se base sur l'algorithme Rabin-Miller pour avoir une très forte probabilité que le nombre fabriqué à l'aide d'un générateur pseudo-aléatoire est premier : Le générateur de clé de l'API de cryptographie BouncyCastle fonctionne de cette manière.
Bien préciser que la sécurité de RSA repose uniquement sur la difficulté de factoriser un nombre très grand. Vu les enjeux, il est fort probable que dans un avenir proche de nouvelles techniques rendront l'algorithme obsolète.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.