Sektion Angewandte Informationsverarbeitung

Übungen zu Systemnahe Software I, Wintersemester 1996/97

Blatt 3

Abgabe: Donnerstag, den 14.11.96

Aufgabe 4 (5 Punkte)

Die Nachrichten über Einbrüche in die Rechnerrnetze 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 Entschluß!), und entwickeln zu diesem Zweck ein kleines Verschlüsselungsprogramm sowie eines zur Umkehrung.

Ihr erster Algorithmus basiert auf der Idee, dass man die Buchstaben eines Textes etwas durcheinander wirbeln koennte. Lesen Sie den zu verschluesselbden Text von der Standardeingabe zeichenweise ein und speichern sie ihn in einem Array einer definierten Laenge LENGTH. Geben Sie dieses Array dann rückwärts auf die Standardausgabe aus. Wiederholen Sie diesen Vorgang bis sie den ganzen Text verschlüsselt haben. Schreiben Sie ein dazu passendes Entschlüsselungsprogramm. Damit sollte die Kommandozeile

cat GeheimerText | crypta | decrypta > /tmp/geheim

den Text wieder unverschluesslt liefern, was man dann mit

diff GeheimerText /tmp/geheim

leicht überprufen kann.

Aufgabe 5 (5 Punkte)

Kaum haben Sie ihr erstes Programm fertig kommt Ihnen die Idee zu einem viel simpleren Ansatz, der auch keine zwei getrennten Programme für die ver- und Entschlüsselung benötigt. Sie erinnern sich an die logische XOR-Verknüpfung, die, wenn man zweimal das gleiche, beliebige Bitmuster auf ein beliebigen Zeichen anwendet, wieder dieses Zeichen liefert.

Schreiben Sie ein Programm, das den zu verschluesselbden Text von der Standardeingabe zeichenweise einliest und, nach der XOR-Verknüpfung mit einem konstanten Zeichen KEY, das Sie im Programmtext definieren, auf die Standardausgabe schreibt. Wie im ersten Programm sollte dann

cat GeheimerText | cryptb | cryptb > /tmp/geheim

den Text wieder unverschluesslt liefern.

Viel Erfolg!