Universität Ulm,
Fakultät für Mathematik und Wirtschaftswissenschaften,
SAI
4. Uebungsblatt (10.11.98 - 17.11.98)
Aufgabe 5 (8 Punkte)
Die Nachrichten über Einbrüche in die Rechnernetze der
Uni Ulm fangen an, Sie zu beunruhigen, da Sie auf ihrem
Account doch einige Texte haben, die Sie nicht in anderen
Händen sehen möchten. Sie fassen deshalb den Entschluss,
sich selbst um Sicherheitsfragen zu kümmern (guter Entschluss!)
und entwickeln zu diesem Zweck ein kleines Verschlüsselungsprogramm
sowie eines zur Entschlüsselung.
Ihr erster Algorithmus basiert auf der Idee, dass man die
Buchstaben eines Textes etwas durcheinander wirbeln koennte.
Lesen Sie den zu verschluesselnden Text zeilenweise von der Standardeingabe
in ein Array einer definierten Maximallaenge MAXLENGTH ein.
Verschlüsseln Sie dieses Array dann durch zyklisches
Verschieben der Buchstaben
innerhalb der ASCII-Ordnung: a->b, b->c,.. z->a; A->B,.. Z->A.
Dabei wird das erste Zeichen im Text um 1 Stelle, das zweite Zeichen
um 2 Stellen usw. verschoben.
Geben Sie dieses Array auf die Standardausgabe aus und wiederholen Sie diesen
Vorgang bis der ganze Text verschlüsselt ist. Schreiben Sie ein
dazu passendes Entschlüsselungsprogramm. Damit sollte
die Kommandozeile
cat text | crypt_a | decrypt_a > enttext
den Text wieder unverschlüsselt liefern, was man dann mit
diff text enttext
leicht überprüfen kann. (Hinweis: hier könnte das Kommand
od
beim Test nützlich sein!)
Aufgabe 6 (8 Punkte)
Kaum haben Sie ihr erstes Programm fertig, kommt Ihnen die
Idee zu einem anderen Ansatz.
Sie erinnern sich an die logische XOR-Verknüpfung,
die, wenn man zweimal das gleiche, beliebige Bitmuster auf eine Integer
anwendet, wieder diese im Orginal liefert.
Schreiben Sie ein Programm, das den zu verschluesselnden Text
von der Standardeingabe zeichenweise einliest und jeweils 4 Zeichen
in eine unsigned long int packt.
Nach der
XOR-Verknüpfung mit einem konstanten 32-Bit-Muster KEY, das Sie im
Programmtext definieren, soll diese 32-Bit-Integer auf die Standardausgabe
geschrieben werden.
Wie im ersten Programm sollte dann
cat text | crypt_b | decrypt_b > enttext
den Text wieder unverschlüsselt liefern.
Viel Spass!
Martina Maier, 10. November 1998