Die Geschichte Dialog der Schwestern [c't Heft 25/99] beschreibt eine Variante des RSA-Kryptosystems, die von Hand berechnet werden kann. Diese Variante kann, nachdem ein kleiner RSA-Schlüssel erzeugt wurde, unter Optionen für die RSA-Demo eingestellt werden.
In der Geschichte "Der Dialog der Schwestern" wird das RSA-Verfahren vereinfacht dargestellt.
Beispiel: Zunächst wird ein RSA-Modul N > 27 aus 2 Primzahlen generiert
(innerhalb des Dialogs RSA-Demo).
Für N = 13*7 = 91 errechnet sich die Eulersche phi-Funktion phi(N) = 12*6 = 72.
Als öffentlichen Exponenten wählen wir e = 5. Daraus berechnet sich der geheime
Schlüssel d = 29.
Nachdem Sie innerhalb des Dialogs RSA-Demo die RSA-Parameter erzeugt haben, klicken Sie den Button Optionen für Alphabet und Zahlensystem. Im folgenden Dialog Optionen für die RSA-Demo wählen Sie die RSA-Variante Dialog der Schwestern mit dem Alphabet "ABCDEFGHIJKLMNOPQRSTUVWXYZ " (das Leerzeichen gehört zum Alphabet). Nach dem Bestätigen schließt sich der Optionen-Dialog und Sie können in der RSA-Demo einen Text eingeben.
Als Beispieltext wird die Nachricht
"DIES IST EINE VERTRAULICHE NACHRICHT"
verschlüsselt:
bzw. entschlüsselt:
Bemerkung 1:
Sie sehen hier im zweiten Bild eine andere Zahlenfolge als Chiffretext als im vorhergehenden Bild, obwohl beide zum selben Klartext gehören und beide mit demselben Schlüsselpaar erzeugt wurden. Dies liegt daran, dass das Chiffrat mit verschiedenen zufällig gewählten Werten von r erzeugt wurde.
Die Codierung der Buchstaben "A, B, C, ..., Z" sowie das Leerzeichen ' ' erfolgt in Zahlen:
A ---> 1 | + r * 27 |
B ---> 2 | + r * 27 |
C ---> 3 | + r * 27 |
. . . . . . | |
Z ---> 26 | + r * 27 |
' ' ---> 27 | + r * 27 |
Die Zahl r ist pro Buchstabe eine zufällig gewählte Zahl und 27 ist die Anzahl der Zeichen im Alphabet. Zum Beispiel sind die Zahlen m = 2, 29, 56, 83, .... gültige Codierungen für den Buchstaben B. Die Verschlüsselung der codierten Buchstaben m erfolgt dann nach der Rechenvorschrift
c = c(m) = m^e (mod 91)
Die Entschlüsselung der verschlüsselten Nachricht erfolgt dementsprechend nach der Formel
m = d(c) = c^d (mod 91) (mod 27)
Die anschließende Rechnung (mod 27) ist notwendig, um die Decodierung 1 ---> A, 2 ---> B, ..., 27 ---> ' ' auszuführen.
Der Unterschied zum normalen RSA-Verfahren besteht darin, dass
Ohne die zufällige Zahl r gäbe es nur 27 verschiedene Ciphertext-Zahlen und das Verfahren wäre wie eine monoalphabetische Substitution mit den 27 verschiedenen Werten über eine Häufigkeitsanalyse leicht anzugreifen.
Bemerkung 2:
Wenn Sie Nicht-Alphabetzeichen als Input angeben (z.B. gehören die Kleinbuchstaben nicht zu dem oben angegebenen 27-elementigen Alphabet), werden diese nicht verschlüsselt.