HSG

Aktuelle Seite: HSG/Fächer/Informatik/JavaScript

Kryptologie in Javascript

Auch der römische Feldherr und Staatsmann Julius Cäsar soll bereits Botschaften verschlüsselt haben, wie bei Sueton (Caes. LVI) zu lesen ist (zitiert nach Beutelsbacher, Kryptologie):

Exstant et [epistolae] ad Ciceronem, item ad familiares de rebus, in quibus, si qua occultius perferenda erant, per notas scripsit, id est sic structo litterarum ordine, ut nullum verbum effici posset; quae si qui investigare et persequi velit, quartam elementorum litteram, id est D pro A et perinde reliquas commutet.

Es existieren auch [Briefe von Caesar] an Cicero und an Bekannte über Dinge, in denen er, wenn etwas vertraulich übermittelt werden musste, in Geheimschrift schrieb. D.h. er veränderte die Ordnung der Buchstaben derart, dass kein einziges Wort mehr ausgemacht werden konnte. Wenn jemand das entziffern und den Inhalt erkennen wollte, so musste er den vierten Buchstaben des Alphabets, also D für A einsetzen und so mit den andern.

Cäsar-Verschlüsselung

Klartext:    ABCDEFGHIJKLMNOPQRSTUVWXYZ
Geheimtext:  DEFGHIJKLMNOPQRSTUVWXYZABC

Beispiel:

Klartext:    INFORMATIK ... ....
Geheimtext:  LQIRUPDWLN LVW FRRO

Erste Programm-Ideen:

Die Klartext-Nachricht wird Buchstabe für Buchstabe nach folgendem Schema verschlüsselt:
Buchstabe --> Nummer des Buchstabens --> Nummer des Buchstabens + K --> zugehöriger Buchstabe

Beispiel:

Verschlüsselung: I --> 9 --> 9+3=12 --> L, Entschlüsselung: L --> 12 --> 12-3=9 --> I

Probleme:

Eine Nachricht besteht nicht nur aus Großbuchstaben, sondern aus viel mehr Zeichen.
Man braucht eine Tabelle, die die Zuordnung Zeichen Nummer speichert. Auch wären zwei Funktionen praktisch, die zu einem Zeichen die Nummer und zu einer Nummer das Zeichen liefern.
Bei der Verschlüsselung und Entschlüsselung kann man an die Ränder der Tabelle stoßen. Wie wird das gelöst?

Aufgaben

Informiere dich über die ASCII-Tabelle. Wo steht sie im Buch? Was bedeutet ASCII?
Schreibe ein JavaScript-Programm, das zu einem Zeichen die ASCII-Nummer und zu einer ASCII-Nummer das zugehörige Zeichen ausgibt. Kapitel 11 im Buch und selfhtml müssten als Hilfe genügen.
Schreibe ein Programm, das die ASCII-Tabelle ausgibt.
Schreibe ein Programm, das eine Ver- und Entschlüssung nach dem Cäsar-Code erlaubt.