Gruppe Kryptographie

Aufgabe bis zum 29.1.

Aufgabe bis zum 22.1.

Aufgabe bis zum 15.1.

Aufgabe bis zum 18.12.

Aufgabe bis zum 11.12.

Aufgabe bis zum 4.12.

Wenn ihr euch die neuesten Dateien anschaut (Download auf der Hauptseite) fällt euch sicherlich auf, dass ich die Klassen etwas umgestellt habe. Wir hatten uns beim letzten mal auf folgende Struktur geeinigt:

Ich habe außerdem die Methoden umbenannt. Die Bezeichnungen sind jetzt in Englisch. Der Schlüssel sieht jetzt so aus:
protected int[][] key;
protected int keyLength;
Eine Variable für den Klar- und Chiffretext existiert nicht mehr, diese werden beim Methodenaufruf mitgegeben. Die zwei Methoden
abstract public String encrypt(String plaintext);
abstract public String decrypt(String chiffretext);
sind in der Klasse AffineChiffre implementiert und werden von allen abgeleiteten Klassen mitbenutzt (funktioniert soweit auch). Das Prinzip ist jeweils das gleiche. Beim verschlüsseln rechnet man A*v+b und beim entschlüsseln (v-b) * A'.

Die Aufgaben bis Donnerstag werden aufgeteilt:

Wer noch Fragen hat bezüglich der Änderungen/neuen Aufgaben, meine Mail Addresse findet ihr auf der Hauptseite.

Viel Spass und bis Donnerstag!

Aufgabe bis zum 27.11.

Die restlichen drei affinen Verfahren sollen zuende implementiert werden. Die Klasse Mathe ist bis auf die Methode zum invertieren von Matrizen (fürs Erste) komplett.
Zu den erlaubten Characters kommt noch der Zeilenumbruch hinzu (ASCII Wert 10). Insgesamt sind nun 96 Zeichen erlaubt, ihr müßt die Methoden entsprechend verändern (update: habe ich schon gemacht). Einer von euch kann bitte die Dokumentation im Source Code anpassen. Da stehen im Moment noch viele alte Sachen drin, die nicht mehr aktuell sind.
Die aktuellsten Versionen der .java Dateien kann man unten von der Seite herunterladen. Ich habe den Source Code schon an die 96 Zeichen angepasst und einen Fehler beim Entschlüsseln behoben. Zugegebenermaßen nicht sehr effizient, aber darüber können wir diese Woche noch sprechen...

Aufgabe bis zum 20.11.

Die Klasse Caesar soll korrekt zuende implementiert werden. Danach kann man sich an den übrigen drei affin linearen Verschlüsselungsverfahren versuchen. Die mathematischen Methoden zur Bestimmung von ggT, Inversem, etc. sollten in der Klasse Mathe (s.u.) untergebracht sein. Das Gerüst für diese Klasse habe ich schon einmal geschrieben. Die Algorithmen hierfür kann man in Kapitel 2-4 im Buchmann nachschlagen.
Vielleicht könnt ihr die Arbeit aufteilen, indem eine Gruppe von euch die mathematischen Methoden implementiert und die andere die kryptographischen Protokolle.

Aufgabe bis zum 13.11.

Implementierung der Methoden der Klasse Kryptosystem und der aus Kryptosystem abgeleiteten Klasse Caesar. In der main-Methode der Klasse Caesar soll eine Ver- und Entschluesselung durchgeführt werden.
Am besten auch direkt javadoc-konform alles dokumentieren :) Wie das geht steht auf der Hauptseite beschrieben.

Zusammenfassung linear affiner Chiffren + Aufgaben für nächste Woche

Blatt 1 (habe ich auch schon ausgeteilt)

Zurück zur Hauptseite


Letzte Änderung: 22.1.2004