licensing - verfahren - synchrone asynchrone verschlüsselung




Kryptographie-Algorithmus (4)

Ich mache ein einfaches Lizenzierungssystem für meine Apps.

Ich weiß nichts über Kryptographie, aber ich weiß, dass ich einen Algorithmus brauche, der aus zwei Schlüsseln besteht: privat und öffentlich.

Ich muss einige Daten (Ablaufdatum und Kunden-E-Mail) mit meinem privaten Schlüssel verschlüsseln, und dann entschlüsselt meine App die Daten mit dem öffentlichen Schlüssel, um das Ablaufdatum zu vergleichen.

Gibt es einen bekannten Algorithmus, der das tut, was ich brauche?

EDIT: Problem gelöst. Helper-Klasse zur Verwendung von dsa verfügbar


Check out RSA . Die meisten modernen Plattformen werden Implementierungen von RSA in ihrer Standardbibliothek haben.


Das ist nicht, wie Private-Key-Verschlüsselung überhaupt funktionieren soll. Sie verschlüsseln die Daten mit dem öffentlichen Schlüssel, sie können nur mit dem privaten Schlüssel entschlüsselt werden.

edit: bitte ignoriere das ich war völlig falsch. Ich lasse es für andere Leute, die wie ich klingen, um von zu lernen


Was Sie tun wollen, heißt in der Kryptowelt eigentlich "signieren". Sie verschlüsseln etwas mit Ihrem privaten Schlüssel, aber da der öffentliche Schlüssel öffentlich ist, kann ihn jeder entschlüsseln. Die Algorithmen, die dies tun, werden "asymmetrische Chiffren" genannt (da sich der Chiffrierschlüssel von dem Entschlüsselungsschlüssel unterscheidet).

In der Regel wird ein (kryptografisch sicherer) Hash der Daten berechnet und nur dieser Hash wird signiert. Dies spart den Rechenaufwand beim Verschlüsseln der gesamten Nachricht und macht die Nachricht im Klartext lesbar, was nützlich sein könnte.

Um genau zu sein, der RSA-Algorithmus wird auf sichere Weise das tun, was Sie wollen.

Tun Sie sich einen Gefallen und versuchen Sie nicht, es selbst umzusetzen; Nehmen Sie stattdessen eine vorhandene Implementierung wie diejenige aus der OpenSSL-Bibliothek. Es hat eine Lizenz im Apache-Stil, so dass Sie es wahrscheinlich in Ihrer Anwendung verwenden dürfen.

(Beachten Sie jedoch, dass ein solches Lizenzierungssystem niemals vollkommen sicher ist: jemand kann Ihre ausführbare Datei noch ändern und die Überprüfung entfernen. Aber das ist eindeutig mehr Aufwand als beispielsweise die einfache Änderung eines Registrierungswerts.)


Es gibt so viele kryptographische Algorithmen, zB RSA, AES, WEP, ... aber wenn es Quantencomputer gibt, sind alle diese kryptographischen Systeme ausgefallen. Also, wenn Sie Kryptographie lernen wollen oder wollen, sollten Sie Post-Quanten-Kryptographie lernen. zB Multivariate Kryptographie, Hash-basierte Kryptographie, Gitterbasierte Kryptographie ...

Auch können Sie digitale Unterschrift suchen. Es gibt so viele, die unser Leben nutzen. zB Banksicherheitssystem. Zum Beispiel für die digitale Signatur: RSA, HFE-v Signaturschemata, QUARTZ-Signaturschema

Wenn Sie diese Algorithmen lernen wollen, müssen Sie sich für fortgeschrittene Algebra interessieren.