Programmierpraktikum - Thema: Kryptographie


News   |   News Archiv   |   Skript   |   Übungen   |   Aufgaben   |   Literatur   |   Links   |   Kontakt


News

7.7.2004

Nächsten Dienstag (13. Juli) um 14 Uhr c.t. könnt ihr eure Präsentation zum ersten Mal im Ganzen üben. Jede der drei Gruppen sollte dazu (wie besprochen) ihre Folien und einen kleinen Vortrag ausgearbeitet haben.
Ich werde bis dahin das Programm auf zwei Laptops installieren und diese zu dem Termin mitbringen. So könnt ihr direkt diskutieren, wann und wie ihr während der Präsentation auf das Programm zurückgreifen wollt.

22.6.2004

Das nächste Treffen findet am Dienstag, dem 7. Juli statt. Bis dahin sollte jede der drei Gruppen (GUI, Netzwerk, Krypto) einen ca. 5-minütigen Vortrag ausgearbeitet haben. Legt euch schon auf eine Person fest, die vortragen wird. Solltet ihr merken, dass die Vorträge zu lang/kurz geraten sind, habt ihr noch 2 1/2 Wochen Zeit, das zu korrigieren. Für die Ausarbeitung der Folien habt ihr denselben Zeitrahmen. Am besten habt ihr die einzelnen Folien schon grob auf Papierform skizziert. Damit minimiert ihr den Arbeitsaufwand derjenigen Person, die die Folien erstellen wird.

Folgende Aufgaben müssen in 2 Wochen fertig implementiert sein:

  • David/Pavel: Substitutionschallenge, Initialisierungsvektor in Messages einbinden, Speichern/Vergleichen der Challenges
  • Alexander/Oleg/Yves: Vigenere-Schlüssel raten

Ich werde das Programm nach Abschluß des Projektes auf der Webseite zum herunterladen bereitstellen. Da der Sourcecode auch eingesehen werden kann, muß bis dahin alles sorgfältig dokumentiert sowie die Klassen optimiert werden. Für diese Aufgabe werden 2-3 Personen reichen, die dann für die Ausarbeitung der Präsentation freigestellt werden. Näheres können wir in 2 Wochen besprechen.

18.6.2004

Nur zur Erinnerung: Nächsten Dienstag treffen wir uns um 14 Uhr c.t. im Seminarraum der Bioinformatik. Dort könnt ihr erste Überlegungen anstellen, wie ihr eure abschliessende Präsentation gestalten wollt.

18.5.2004

Da am Donnerstag Feiertag ist, könnt ihr auch Mittwochs oder Freitags im Rechnerraum programmieren. Bei Bedarf werde ich euch aufschließen.
Nächsten Dienstag (25. Mai) wird es keine Vorlesung geben. Stattdessen werde ich von 14-16 Uhr Hilfestellung bei den Programmieraufgaben geben. Da eine andere Praktikumsgruppe um diese Zeit den Rechnerraum belegt hat, müssen wir mit meinem Arbeitsplatzrechner vorlieb nehmen (25.12-02.26).

13.5.2004

Nächsten Dienstag treffen wir uns im Seminarraum 25.02-02.21 (bei der Bioinformatik). In der Vorlesung werden wir uns den Kasiski- und Friedman-Test zur Periodenbestimmung bei Vigenerechiffrierungen anschauen.

4.5.2004

Der erste Teil des Skripts sowie das erste Übungsblatt kann man ab sofort von dieser Seite herunterladen.

Die vier Programmieraufgaben wurden auf vier verschiedene Gruppen verteilt:

  • Aufgabe 1 (Häufigkeitsanalyse): Philipp und Oliver
  • Aufgabe 2 (grafische Darstellung von Aufgabe 1): Alexander, Oleg, Yves
  • Aufgabe 3 (CBC-Mode für CryptoChatClient): Andreas, Claudia, Isabel
  • Aufgabe 4 (Software testen und korrigieren): David, Pavel, Tim
Ich habe den Termin für die Erledigung der Aufgaben auf Freitag, den 21. Mai, verlängert.

Die ersten Teilnehmer, die am Donnerstag einen abgeschlossenen Rechnerraum vorfinden, finden mich in Raum 25.12-02.26. Ich werde Euch dann aufschliessen und bei Bedarf beim Programmieren Hilfestellung leisten. Der Raum kann bis 18 Uhr genutzt werden.

30.4.2004

Ich habe noch ein weiteres Buch in die Literaturliste aufgenommen. Dieses liegt im Moment nur in der Fachbibliothek aus, das ausleihbare Exemplar liegt bei mir auf dem Schreibtisch :)

28.4.2004

Die Termine für das Sommersemester stehen nun fest.

  • Dienstag 14-16 Uhr c.t., Raum 25.02-02.21
  • Donnerstag 13-18 Uhr, Rechnerraum 25.12-02.39
Der erste Termin ist am Dienstag, dem 4. Mai.


CVS HOWTO

Einrichten von CVS unter Eclipse, arbeiten mit CVS, usw. ---> hier


Dateien

Von nun an bitte nur noch mit CVS arbeiten!


Aufgaben

Folgende zwei Passagen aus dem Javabuch von Guido Krüger sollten sich alle durchlesen. Natürlich sollte man sich auch bei den ersten Programmieraufgaben an diese Richtlinien halten.

Die Formatierung des Sourcecodes stimmt nicht genau mit der im Javabuch überein. Wir werden uns an die Standardformatierung von Eclipse halten.


Beschreibung

Es soll eine Java-Applikation erstellt werden, mit der man Nachrichten zwischen zwei Computern austauschen kann. Um eine sichere Kommunikation zu gewährleisten soll man die Möglichkeit haben, die Nachrichten mit einem gängigen Kryptoverfahren zu verschlüsseln.

Das Programm sollte folgendes leisten:

Für die Implementierung benötigt man Kenntnisse in:

Vorausgesetzt wird lediglich ein sicherer Umgang mit der Programmiersprache Java. Alle restlichen Kenntnisse kann man sich während des Praktikums aneignen.

Mögliche zusätzliche Features (wenn noch Zeit übrig bleibt):

- nach oben -


Skript

DownloadInhalt
Teil 1 Termine, Kryptosysteme, Verschlüsselungsmodi, Kryptanalyse: Caesar, Substitution
Teil 2 Sprachenerkennung, Periodenbestimmung für Vigenerechiffren nach Kasiski und Friedman
Teil 3 RSA-Verfahren: Effizienz, Randomisierung, Schwachstellen
Teil 4 Diffie-Hellman-Schlüsselaustausch, digitale Signaturen, Authentifizierung

Übungen

DownloadDecodieraufgabeVerfahrenLösungAbgabetermin
Blatt 1Chiffretext 1CaesarKlartext 118. Mai
Blatt 2Chiffretext 2SubstitutionKlartext 21. Juni
Blatt 3Chiffretext 3VigenereKlartext 315. Juni
Blatt 4Chiffretext 4RSAKlartext 429. Juni

Lösungen für die Dechiffrieraufgaben können per email an mich geschickt werden. Die Lösungen und erfolgreichen Kryptanalytiker werden jeweils zwei Wochen nach Ausgabe des Übungsblatts hier veröffentlicht (= Abgabetermin).

Fehler im Skript / in den Übungsblättern bitte melden!

- nach oben -


Literatur

Java-Programmierung:

Kryptographie - nach oben -


Links

- nach oben -


Kontakt

Mailingliste: krypto@cs.uni-duesseldorf.de

Teilnehmerliste

Praktikumsleiter:
Tobias Riege
Raum 25.12-02.26
riege@cs.uni-duesseldorf.de

- nach oben -


Letzte Änderung: 7.7.2004