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.