25.3 Übungen |
|
Aufgabe 1 |
Geben Sie den vom Programm
XOR.java
gelieferten Geheimtext als Originaltext im gleichen Programm unter
Verwendung des gleichen Schlüssels wieder ein, so erhalten Sie wieder den
ursprünglichen Originaltextes. Wandeln Sie das Programm
XOR.java
zu
XOR2.java
so um, dass diese Eigenschaft verdeutlicht wird. Beweisen Sie diese Eigenschaft. Der Beweis wird wieder einfach, wenn man dazu eine Tabelle benutzt. |
Aufgabe 2 |
Der '^'-Operator von Java ist
überladen; er lässt sich zusätzlich auf Ganzzahlen und somit auf
char-Werte anwenden. Welches Zeichen liefert 'A' XOR 'B'? Prüfen Sie das Ergebnis indem Sie 'per Hand' den ASCII-Kode von 'A' und 'B' binär darstellen, die XOR Operation ausführen und den so erhalten ASCII-Kode als Zeichen darstellen. |
Aufgabe 3 |
Schreiben Sie für die Klasse
EnCrypt
eine Methode
xor(...)
mit der Signatur: xor(String orinigalText, String schluessel) : String das den übergebenen Geheimtext
mittels des übergebenen Schlüssels mit xor verschlüsselt, also das i-te
Zeichen des Originaltextes mit dem i-ten Zeichen des Schlüssels mit Hilfe
der XOR-Operation zum i-ten Zeichen des Geheimtextes macht und den
gesamten Geheimtext als String zurückgibt. |
Aufgabe 4 |
Schreiben Sie die Methode xor (...)
für die Klasse DeKrypt.
|
Aufgabe 5 |
Schreiben Sie für die Klassen
EnCrypt
und DeCrypt
die Methoden oneTimePad(...) mit der Signaturen: oneTimePad(String originalText, String schluessel) : String oneTimePad(String geheimText, String schluessel) : String Der Schlüssel enthält eine zufällige Folge von 0en und 1en.
Hilfe: Der nachfolgende Quellkode zeigt, wie man ein Pseudo-Byte in ein char umwandeln kann.
|
Anmerkung: Warum führt
zahl = String.charAt(i); nicht zum Erfolg? Warum ist der
Umweg nötig? Nun, wenn String.charAt(i) z.B. '1'
ist, dann wird in zahl
der ASCII-Kode von 1 gespeichert, aber nicht der Wert 1, wie wir es
wünschen. Deshalb verwenden wir die Methode
substring(i,i+1).
, die uns eine das einzelne Zeichen als einelementiges
String-Objekt
liefert, mit Integer.parseInt(..)
schließlich bekommen wir den gewünschten Wert. |
|
Anmerkung |
Für die Aufgaben 3 bis 4 sind kleine
Testprogramme zu erstellen, die die neuen Methoden der Klassen
EnCrypt
und DeCrypt
testen. |
zu | 25.3 Lösungen |
zu |
26 RSA-Verschlüsselung 26.1 RSA - die Idee |
zur Startseite | www.pohlig.de (C) MPohlig 2006 |