[Christian-Albrechts-Universität] [Technical Faculty]

Softwarepraktikum: Enigma
Sommersemester 2003


Veranstaltung: Nr. 080120
Vorbesprechung: keine
Termin: Montag, 13:00 Uhr, der prakt. Teil: Montag, 16:00 im Grundausbildungspool oder im Studentendraum Lehrstuhl Softwaretechnologie (1. Stock, Hermann-Rodewaldstr. 3)
Beginn: so bald wie möglich = 7.4.03
Ort: CAP3 - R.I
Dozent: Martin Steffen
Hilfskräfte: Andreas Niemann, Melanie Zessack

Für die offiziellen studientechnischen Daten sei auf das Univis-System der Universität verwiesen.



Die Enigma ist die berühmteste Vertreterin elektomechanischer Verschlüsselungsmaschinen. Sie wurde im zweiten Weltkrieg vom deutschen Militär zur verschüsselten Übermittlung von Morsesignalen auf taktischer Ebene eingesetzt. Es gelang den Allierten, in der Hauptsache den Briten mit entscheidenden Vorarbeiten der Polen, verschiedene Schwächen der Maschine selbst, ihrer Verschlüsselungsprozeduren, und allgemein fehlerhafte und schlampige Bedienung auszunutzen und so routinemäßig, wenn auch mit Unterbrechungen, den Funkverker der Achsenmächte mitzulesen.

Der Gegenstand des Praktikums ist der Entwurf und die Realisierung
  1. einer generischen Enigma sowie einer bestimmten Variante der Enigma,
  2. ihre Visualisierung in einer graphischen Benutzeroberfläche sowie
  3. die Umsetzung verschiedener kryptographischer Angriffe.
Die Implementierungsprache ist Java.



  Termin/Woche Thema Material Leistungskontrolle
1. 7.4. Einführung, Engima, CVS handouts 1, 2, 4; Aufgabenstellung 1  
2. 14.4. OO/Entwurf Walzendetails,  
3. (21.4.)     (Diskussion der Entwürfe)
4. 28.4 Gui's Anhaltspunkte zu den Abnahmekriterien  
Abgabe: Freitag 2.Mai, 18:00, Zusatzinfo: ``Ein/Ausgabe'' u. genauere Spezifikation, Beispieltexte
5. 5.5. Gui's Aufgabenstellung 2 1. Abnahme: Automat (+4)
6. 12.5. Angriffe auf die Enigma Bilder und Texte einpacken  
7. 19.5. Angriffe auf die Enigma (Indikatorangriff + Anfang der Zygalskiroste)    
8. 26.5.  
Aufgabenstellung 3: Angriffe
Anhaltspunkte zu den Abnahmekriterien (Gui)
   
Abgabe: Freitag, 30. Mai 2003, 24:00-
9. 2.6.     2. Abnahme: GUI (+4)
10. (9.6)      
11. 16.6      
12. 23.6      
13. 30.6      
Abgabe: Freitag, 4. July 2003, 24:00
14. 7.7.     3. Abnahme: Angriffe (+5)
15. 14.7. vorgeschlagene Prüfungstage: 14 + 15. Juli Anhaltspunkte zur Endprüfung   Prüfungen
Gruppeneinteilung:
Die Gruppeneinteilung einschließlich der email-Adressen der Teilnehmer findet sich passwortgeschützt hier.
Stand:
Einen Einblick in den Praktikumsfortschritt der einzelnen Gruppen kann man auf der Seite von Andreas Niemann bekommen.

1  Organisatorisches

Anmeldung

Wichtig: Teilnahme nur nach Anmeldung (am besten per email) bei Martin Steffen

Da die Kapazitäten begrenzt sind und es einigemaßen gerecht zugehen soll, werden wir die Praktikumsplätze nach folgenden Prioritäten vergeben: Allgemein gilt: ``wer zuerst kommt (= sich zuerst meldet) mahlt zuerst''. Der momentane Stand der Anmeldungen ist hier festgelhalten

Ansonsten: das Praktikum wird ungefähr so ablaufen wie das entsprechende Praktikum im Winterssemester 2002/03. Für einen Eindruck, was dort gemacht wurde, lohnt sich ein Blick auf die Seite von Andreas Niemann.



Zeitplan

Das Semester läuft vom 1. 4. -- 18. 7. 2003, wir starten am Montag, den 7. April; das ergibt nominell ca. 14 Wochen.

Zeitlich und inhaltlich gliedert sich die Aufgabe in 3 Phasen, jeder wird mit einer Abnahme abgeschlossen. Die 3 Teile sind
  1. Enigma: Implementierung der Entschlüsselungsmaschine
  2. Visualisierung: Realisierung einer graphischen Benutzeroberfläche für die Enigma. Die Visualisierung soll als Applet lauff"ahig sein, d.h., über Webbrowser bedienbar.
  3. Angriff: Realisierung einer (von mehreren möglichen) Angriffsmethoden zum Brechen der Enigma.
Die genauen Spezifikationen und die Termine der der jeweiligen Abgaben und Abnahmen werden noch bekanntgegeben.

Prüfungs- und Scheinmodalitäten

Das Praktikum wird mit einer mündlichen Prüfung abgeschlossen, die die Abschlußnote bestimmt. Die Prüfung umfaßt unter anderem eine Vorstellung und Diskussion der Lösung und eine Toolvorführung. Genaueres wird rechtzeitig bekanntgegeben.

Es gibt zusätzlich eine Bonusregelung: Nach jeder der drei ersten Projektphasen erfolgen gruppenweise bewertete Abnahmen mit einer maximalen Gesamtpunktzahl 100, die zu 30% auf die Abschlussnote (sehr gut entspricht 100 Punkten) angerechnet werden.

Bachelor

Anmeldungen zur Bachelorprüfung für das Software-Praktikum müssen schriftlich erfolgen; Anmeldeformulare werden in der Vorlesung und während der Terminalzeiten ausgegeben.

Technische Rahmenbedingungen

Wir werden mit der Java-Version JDK 1.4 arbeiten. Um Frickeleien, Reibungsverluste und vermeidbare Fehlersuche zu vermeiden, ist die Verwendung dieser Version verpflichtend, also nicht erstmal mit Version 1.2 oder so beginnen, weil man sie gerade zur Hand hat und hoffen daß schon fast alles gutgeht. Ebenfalls verpflichtend für alle Teilnehmer ist die Verwendung von CVS (``concurrent version control''). Von unserer Seite gibt es Unterstützung was die Benutzung betrifft, sowie Tipps wie man (wenn man das will) es auf seinem eigenen Rechner unter Windows installieren will.

``Verpflichtend'' heißt (um es deutlich zu sagen), daß die Verwendung der angegebenen JDK Version und von CVS zur Abgabe vorgeschrieben ist; dies ist notwendig, damit, bei der Masse der Teilnehmer, sich die Betreuung und die Unterstützung von unserer Seite auf die programmiertechnischen und inhaltlichen Fragen konzentrieren kann und wir uns nicht mit Fragen der Art ``auf welche Weise und wo gibt nochmal gleich Gruppe 14 ihre Lösung meistens ab?'' befassen müssen, oder wir uns Gedanken machen müssen über Aussagen wie ``Aber bei mir daheim, unter XYZ, läuft es.''.

Erreichbarkeit

Jeder der Teilnehmer sollte per email erreichbar sein. D.h., wenn jemand mehrere Adressen bei verschiedenen Providern hat, sollte er bei uns mit einer vermerkt sein, die regelmäßig gelesen wird. Auf jeden Fall empfiehlt es sich (falls es noch ohne jemand gibt), sich einen Account an der Uni zu beschaffen, denn im Zweifelsfall ist die Plattform, auf dem das Tool getestet werden, ist das Netzwerk der Uni.1

2  Unterlagen

Information zur (lokalen) Java Installation

Information zur im Kurs verwendeten Software

3  Literatur

Drei einführende (aber durchaus anspruchsvolle) Bücher zum Thema Krypographie, die zugrundeliegende Theorie und ihre Anwendungen sind [Koh81], [Den83] und (etwas neuer) [Gol01].

Sehr viel Material von historischem Interesse, insbesondere auch zu den Varianten der Enigma und der Angriffe, findet sich in [DK85][DKK+87][DKK+89][DKK+98].

Ein ``Klassiker'' über Methoden der Kryptographie und ihre Geschichte ist [Kah67], mittlerweile gibt es mehrere Nauauflagen. Das Taschenbuch [HS93] enthält eine Sammlung Erinnerungen von Leuten die im zweiten Weltkrieg an der Entschlüsselung, Sichtung und Auswertung nachrichtendienstlicher Informationen in Bletchley Park beteiligt waren. Der Bericht [Wel82] gibt ebenfalls interessante Detail verschiedener Angriffe. Das Buch [Win74], welches das Geheimnis um Bletchley Park lüftete, beschreibt die Ereignisse nicht aus Sicht das Mathematikers, sondern aus der des Geheimdienstes. Die Biographie über Alan Turing einschließlich seiner Rolle in Bletchley Part ist [Hod83]. Zwei populärwissenschaftliche Bücher zum Thema sind [Kip99] und [Sig01]. Tiefergehend ist [Bau91], der auch eine Fülle historisches Material enthält.

4  Engima-Links

Enigma
Photos
Photos und Anschauungsmaterial: manche Seiten sind nicht sehr tiefgehend, was die mathematischen Grundlagen der Engima und ihrer Entschlüsselung betrifft. Dennoch bieten die Photos der Machine (oder Nachbauten) machmal wertvolle Intuition.
Personen
Enigma-Emulatoren
im Netz
Weitere Seiten

References

[Bau91]
Friedrich L. Bauer. Entzifferte Geheimnisse. Methoden und Maximen der Kryptologie. Springer-Verlag, 1991.

[Den83]
Dorothy Elizabeth Robling Denning. Cryptography and Data Security. Addison-Wesley, 1983.

[DK85]
Cipher A. Deavours and Louis Kruh. Machine Cryptography and Modern Cryptanalysis. IPF. Artech House Books, 1985.

[DKK+87]
Cipher Deavours, David Kahn, Louis Kruh, Greg Mellen, and Brian Winkel. Cryptology: Yesterday, Today, and Tomorrow. IPF. Artech House Books, 1987.

[DKK+89]
Cipher Deavours, David Kahn, Louis Kruh, Greg Mellen, and Brian Winkel. Cryptology: Machines, History & Methods. IPF. Artech House Books, 1989.

[DKK+98]
Cipher A. Deavours, David Kahn, Louis Kruh, Greg Mellen, and Brian J. Winkel, editors. Selections from Cryptologia. History, People, and Technology. Artech House, 1998.

[Gol01]
Oded Goldreich. Foundations of Cryptography. Cambridge University Press, 2001.

[Hod83]
Andrew Hodges. Alan Turing: The Enigma of Intelligence. Unwin Paperbacks, 1983.

[HS93]
F. H. Hinsley and Alan Stripp, editors. Code Breakers. The Inside Story of Bletchley Park. Oxford Paperbacks, 1993.

[Kah67]
David Kahn. The Codebreakers. McMillan, 1967.

[Kip99]
Rudof Kippenhahn. Verschlüsselte Botschaften. Gescheimschrift, Enigma und Chipkarte. rororo, 1999.

[Koh81]
Alan G. Kohnheim. Cryptography. A Primer. John Wiley and Sons, Inc., 1981.

[Sig01]
Simon Signh. Geheime Botschaften. Die Kunst der Verschüsselung von der Antike bis in die Zeiten des Internet. dtv, 2001.

[Wel82]
G. Welchman. The Hut Six Story. McGraw-Hill, 1982.

[Win74]
Frederick William Winterbotham. The Ultra Secret. Weidenfeld & Nicholson, 1974.

1
Ja, ja, Java ist plattformunabhängig ....
2
The one true editor
Pages last (re-)generated July 7, 2003 (Martin Steffen)
This document was translated from LATEX by HEVEA.