Bei diesem Dialog haben Sie die Möglichkeit, Optionen zur Ver/Entschlüsselung bei der RSA-Demo (siehe Menüpfad Einzelverfahren \ RSA-Kryptosystem \ RSA-Demo) einzustellen:
1. Textoptionen / Alphabetoptionen
Bei der Demonstration für das RSA-Kryptosystem können Sie Texte mit dem ASCII-Zeichensatz verschlüsseln oder ein eigenes Alphabet vorgeben. Dazu wählen Sie den entsprechenden Radiobutton und bestimmen das Alphabet im darunter liegenden Eingabefeld.
Bei der RSA-Ver/Entschlüsselung werden einzelne Buchstaben zunächst in Zahlen codiert.
Die Codierung des vordefinierten Alphabets "<Leerzeichen>ABCDEFGHIJKLMNOPQRSTUVWXYZ":
<Leerzeichen> | -> | 0 |
A | -> | 1 |
B | -> | 2 |
.... | ||
Z | -> | 26 |
Nehmen Sie das Leerzeichen raus, wird A mit 0 codiert
2. RSA-Variante
Wählen Sie zwischen der eigentlichen RSA-Verschlüsselung und dem Verfahren in dem Artikel "Dialog der Schwestern" (PDF) (siehe c't 25/99).
3. Blocklänge und Codieren der Nachricht in Zahlen
Abhängig von der Bitlänge des RSA-Moduls N und den gewählten Textoptionen können Sie bei der RSA-Verschlüsselung die Blocklänge bestimmen. Die maximal mögliche Blocklänge wird Ihnen angezeigt.
Wenn Sie das Alphabet selber festgelegt haben, und die gewählte Blocklänge k größer als die 1 ist, werden nach der Codierung der Buchstaben in Zahlen jeweils k dieser Zahlen in einer größeren Zahl codiert. Die Codierung kann b-adisch (wobei b die Anzahl der Buchstaben im Alphabet ist) oder zur Zahlenbasis erfolgen. Mögliche Zahlenbasen sind dezimal, binär, oktal und hexadezimal. Die Zahlenbasis kann weiter unten im Dialog eingestellt werden und ist auch für die Anzeige relevant.
Beispiel:
In unserem Fall hat das Alphabet 27 Zeichen und die Zeichen (<Blank> = 0, A = 1, ..., Z = 26) haben die Zahlenwerte von 0 bis 26. Die Nachricht "ATTACK AT DAWN", zerlegt in Blöcke der Länge 2, ergibt:
AT # TA # CK # <Blank>A # T<Blank> # DA # WN
Die Codierung der Einzelbuchstaben der Nachricht in Zahlen ergibt erst mal:
01 20 # 20 01 # 03 00 # 01 20 # 00 04 # 01 23 # 14 00
Wie man aus den Zahlen eines Blockes eine neue Zahl generiert, wird durch die beiden Codierungsmethoden b-adisch und Basissystem festgelegt:
<Buchstabe1>*27^1 + <Buchstabe2> liefert die Codierung:
047 # 541 # 081 # 047 # 004 # 050 # 378
Diese Codierung ist optimal (in dem Sinn, dass der Wertebereich möglichst klein bleibt).
<Buchstabe1>*100^1 + <Buchstabe2> liefert die Codierung
0120 # 2001 # 0300 # 0120 # 0004 # 0123 # 1400
Bei dieser Codierung können Sie die Codierung der Einzelbuchstaben direkt ablesen.
Bemerkung:
Wenn die Blocklänge 1 ist (weil der RSA-Modul zu klein ist), liefern beide Codierungsmethoden dieselben Werte.