2008-09-17 6 views
0

Je fais un système de licence simple pour mes applications.Algorithme de cryptographie

Je ne connais pas la cryptographie, mais je sais que j'ai besoin d'un algorithme composé de 2 clés: privée et publique. J'ai besoin de crypter certaines données (date d'expiration et email du client) en utilisant ma clé privée, puis mon application déchiffrera les données en utilisant la clé publique pour comparer la date d'expiration.

Y at-il un algorithme connu qui fait ce dont j'ai besoin?

EDIT: Problème résolu. Classe d'aide à utiliser dsa disponible Here

Répondre

5

Découvrez . La plupart des plates-formes modernes auront des implémentations de RSA dans leur bibliothèque standard.

-1

Ce n'est pas comme cela que le chiffrement par clé privée est supposé fonctionner. Vous cryptez les données en utilisant la clé publique, il est seulement capable d'être décrypté en utilisant la clé privée.

edit: s'il vous plaît ignorer ce que je me suis complètement trompé. Je vais le laisser pour d'autres personnes qui me thunk pour apprendre de

+0

Non, pour les signatures, vous cryptez avec private et décryptez avec public. –

+0

avec PGP il peut aller de toute façon –

+0

Avec tous les chiffrements publics/privés vous crypter avec le privé et décrypter avec le public, et vice versa – roo

-2

On dirait que vous avez besoin d'une bibliothèque!

Je recommande de vérifier LibTomCrypt

8

Qu'est-ce que vous voulez faire est en fait appelé « signature » dans le monde Crypto. Vous cryptez quelque chose avec votre clé privée, mais comme la clé publique est publique, n'importe qui peut la déchiffrer. Les algorithmes qui font cela sont appelés "chiffrements asymétriques" (puisque la clé de chiffrement est différente de la clé de déchiffrement).

Généralement, un hachage (sécurisé par cryptage) des données est calculé et seul ce hachage est signé. Cela économise l'effort de chiffrement du message entier et rend le message encore lisible en texte clair, ce qui pourrait être utile. Pour être concret, l'algorithme RSA fera ce que vous voulez d'une manière sécurisée. Faites-vous une faveur et n'essayez pas de l'implémenter vous-même; plutôt, prenez une implémentation existante comme celle de la bibliothèque OpenSSL. Il a une licence de style Apache, donc vous êtes probablement autorisé à l'utiliser dans votre application.

(Notez toutefois qu'un tel système de licence est jamais complètement sûr: quelqu'un peut encore modifier votre exécutable et retirez le chèque, mais clairement est que, disons plus d'effort, modifier simplement une valeur de Registre..)

-2

Il y a tellement d'algorithme cryptographique RSA, AES, WEP, .. mais s'il y a des ordinateurs quantiques, tous ceux des systèmes cryptographiques sont en panne. Donc, si vous voulez apprendre ou vous intéresser à la cryptographie, vous devriez apprendre la cryptographie post-quantique. par exemple. Cryptographie multivariée, cryptographie basée sur Hash, cryptographie basée sur le réseau ...

En outre, vous pouvez regarder la signature numérique. Il y en a tellement qui utilisent notre vie. par exemple. système de sécurité bancaire. Par exemple pour la signature numérique: RSA, HFE-v Signature Schémas, schéma de signature QUARTZ

En fait, si vous voulez apprendre ces types d'algorithmes, vous devez vous intéresser à l'algèbre avancée.