7 votes

Petite implémentation de chiffrement asymétrique pour valider le téléchargement

Pour permettre à une petite application C++ de se mettre à jour chez des clients connectés via Internet, j'ai besoin d'un mécanisme qui valide le téléchargement en fonction d'une clé publique. Des algorithmes tels que DSA ou RSA semblent pouvoir faire cela agréablement.

Cependant, en examinant les bibliothèques bien connues disponibles pour cela (Crypto ++, LibTomCrypt), elles finissent toutes par rendre mon binaire > 500k plus grand, alors qu'il me semble que cette logique pourrait être implémentée en quelques k. Y a-t-il des bibliothèques qui implémentent la vérification de hachage RSA/DSA dans une empreinte <20k, disons?

2voto

Emiel Mols Points 36

Étant donné que je n'ai trouvé aucune bibliothèque qui répondait à mon besoin spécifique, j'ai créé ma propre bibliothèque pour cela : http://github.com/paiq/dsa_verify. L'implémentation actuelle occupe environ 50 ko de mémoire programme, principalement en raison de la bibliothèque de mathématiques bignum incluse, mais les versions futures pourraient être encore plus épurées.

1voto

Scott Chamberlain Points 32782

Si vous utilisez uniquement Windows, vous pourrez peut-être vous connecter à l'API cryptographique de Windows tant que vos applications sont déployées sur Win2k ou ultérieur. Article Windows Crypto MSDN.

MODIFIER : Une autre solution possible, si vous avez juste besoin de vérifier si le téléchargement n'a pas été corrompu, un petit peu de recherche sur Google a trouvé la source de cette petite implémentation de MD5. Selon le readme en haut, 3ko de code objet compilé.

1voto

Scharron Points 5866

Avez-vous vraiment besoin de chiffres ? En général, pour valider un téléchargement, vous pouvez utiliser une fonction de hachage comme MD5 ou SHA. Peut-être pouvez-vous trouver une petite bibliothèque utilisant ces outils.

De toute façon, vous pouvez essayer la bibliothèque openssl. Cependant, le fichier .a sur ma machine fait environ 400K et 250K une fois dépouillé.

0voto

Peter G. Points 8566

Dans http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.143.3049&rep=rep1&type=pdf, une bibliothèque de courbes elliptiques est décrite, qui selon les auteurs peut être configurée pour n'avoir besoin que d'environ 7ko de ROM et moins de 200 octets de RAM sur un microcontrôleur

0voto

GregS Points 16158

Je pense que vous pourriez trouver que la bibliothèque MIRACL répond à vos besoins.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X