C01 RSA-Verschlüsselung mit einem String

Wir starten mit einem Basismodell, welches alle Bestandteile der RSA-Routinen mitbringt. Aus Darstellungsgründen habe ich als Schlüssellänge 512 Bit gewählt, welche allerdings in der realen Welt niemals verwendet werden darf, da sie als unsicher einzustufen ist.

Ganz wichtig ist es, sich den Einsatz des Public und des Private Keys in Erinnerung zu rufen, da an dieser Stelle immer wieder Fehler gemacht werden. Bei der asymmetrischen Verschlüsselung veröffentlicht der (spätere) Empfänger der Nachricht seinen Public (öffentlichen) Schlüssel, z.B. auf seiner Webseite. Der Absender der geheimen Nachricht benutzt den Public Keys des Empfängers für die Verschlüsselung und sendet die verschlüsselte Nachricht (ciphertext) an den Empfänger. Der Empfänger entschlüsselt die geheime Nachricht mit seinem (und nur ihm bekannten) Private (privaten) Key.
Hier noch einmal die Kurzform: verschlüsseln mit dem Public Key, entschlüsseln mit dem Private Key.

Die maximal Größe des Klartextes hängt unmittelbar von der Länge des Schlüssels ab, beim hier genutzten Schlüssel von 512 Bit (=64 Byte) können maximal 53 Byte verschlüsselt werden. Bei einem längeren Klartext bricht das Programm mit einer Fehlermeldung ab – dieses simuliere ich im zweiten Beitrag zum RSA-Verfahren (C02 RSA maximaler Klartext).

Verschlüsselungssteckbrief
Name des Verfahrens RSA
Langname RSA Verschlüsselung
Art der Chiffre Kompletter Plaintext
Blocklänge (Byte)
Schlüssellänge (Byte/Bit) 64/512, 128/1024, 256/2048, 512/4096, 1024/9192
Padding genutzt Nein
Sicherheit nur ab 2048 Bit Schlüssellänge
Besonderes Geeignet nur für kleine Datenmengen

Bitte die nachfolgende Routine nicht für den Echteinsatz nutzen, da sie aus kryptographischer Sicht sehr angreifbar ist !

Die Konsole gibt Euch diese Daten aus (Hinweis: die erzeugten Schlüssel wurden aus Zufallszahlen erzeugt, damit ist auch der Ciphertext bei jedem Lauf des Programms unterschiedlich):

Die Lizenz zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.

Letzte Aktualisierung: 21.12.2018