2009-08-20 5 views
0

Je souhaite envoyer un message hors bande (ne vous inquiétez pas de la façon dont il y arrivera) à un programme que j'ai écrit sur une machine distante. Je veux que le programme ait une certaine confiance que le message est légitime en attachant une signature numérique au message. Le message sera petit de moins de 200 caractères.Signature de clé publique primitive avec distribution de clé hors bande

Il semble qu'une signature basée sur une clé publique est ce que je veux utiliser. Je pourrais intégrer la clé publique dans le programme. Je comprends que le programme serait vulnérable aux attaques de quiconque le modifie MAIS je ne suis pas trop inquiet à ce sujet. Les conséquences ne sont pas terribles. J'ai regardé à travers le MSDN et autour du Web mais la perspective de plonger dedans est décourageante. J'écris en C++, pas de framework NET ou d'autres trucs de fantaisie. Je n'ai pas eu d'expérience, y compris les choses NET Framework et peu de chance lors des tentatives précédentes.

Quelqu'un peut-il me signaler quelques ressources très basiques pour me lancer?

Je veux savoir

  1. Comment générer les clés publiques et privées
  2. Comment signer le message
  3. Comment vérifier la signature

Répondre

0

Vous pouvez essayer de regarder la Keyczar library. Il fournit une abstraction de haut niveau aux fonctions cryptographiques dans le but de rendre facile pour les développeurs de faire de la crypto correctement. En bonus, il a des liaisons C++.

Il ya aussi Cryptlib qui a été autour depuis un certain temps, et NaCl. Comme avec Keyczar, ces bibliothèques visent à fournir une abstraction de haut niveau pour les fonctions de chiffrement courantes.

0

gpgme est une API cryptographique de haut niveau pour GnuPG, écrite en C, mais avec des liaisons pour un certain nombre de langages. GnuPG a d'excellents docs et est facile à utiliser, vous pouvez donc jouer manuellement sur la ligne de commande et avoir une idée du fonctionnement des opérations clés, puis rechercher les fonctions dont vous avez besoin pour votre code dans l'API.

Questions connexes