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!
Universität Fakultät SAI


Martina Maier, 10. November 1998