Uni-Logo
Algorithms and Complexity
 


Praktikum
"Implementation von kryptographischen Protokollen"
Sommersemester 2006
Prof. Dr. Susanne Albers




Zeit und Ort: Mi. 14:00 -18:00 (wöchentlich), Raum 00-012, Geb. 79
Beginn: Mi. 26.04.2006

Hinweis!!! Das Praktikum richtet sich an Studenten des Hauptstudiums (Diplom) und Masterstudenten.

Im Rahmen des Praktikums werden wir uns mit Public-Key Verfahren zur Verschlüsselung von Daten beschäftigen. Charakteristisch für diese Verfahren ist, dass zum Entschlüsseln ein anderer Schlüssel als zum Verschlüsseln verwendet wird. Jeder Nutzer erstellt sich ein Schlüsselpaar, bestehend aus einem privaten und einem öffentlichen Schlüssel. Der öffentliche Schlüssel wird dann allen Nutzern mit denen man elektronisch kommunizieren möchte bekannt gegeben. Den privaten Schlüssel hält man geheim. Will man einem anderen Nutzer eine Nachricht schicken, so verschlüsselt man diese mit dem öffentlichen Schlüssel dieses Nutzers. Da nur er seinen privaten Schlüssel kennt, kann nur er die Nachricht lesen.

Asymmetrische Verschlüsselung

Der Vorteil von Public-Key Verfahren besteht darin, dass nicht für jedes Paar (a,b) von Nutzern die kommunizieren möchten ein Schlüssel generiert werden muss, sondern ein Schlüsselpaar pro Nutzer ausreicht. Ein weiterer Vorteil besteht in der Möglichkeit Nachrichten zu signieren, d.h. einen Nachweis zu erbringen, dass die Nachricht von einem bestimmten Nutzer stammt.
Wir werden im Praktikum das bekannte RSA Verfahren implementieren. Dieses kann sowohl zum Verschlüsseln als auch zum Signieren von Nachrichten verwendet werden. Anschließend werden zwei weitere Verfahren implementiert, welche lediglich zum Signieren von Daten geeignet sind. Dies sind DSA (Digital Signature Algorithm) und ECDSA (Elliptical-Curve Digital Signature Algorithm).  Elliptische Kurven sind in den letzten Jahren interessant geworden, da man mit Ihnen geringere Schlüssellängen bei vergleichbarer Sicherheit erzielen kann. Die Schlüssellänge ist ein kritischer Faktor, da diese die Laufzeit des Algorithmus bestimmt, wie wir im Praktikum am Beispiel von RSA sehen werden. Deshalb werden Verfahren die Elliptische Kurven nutzen zum Beispiel auf SmartCards verwendet. Mit ECDSA Verfahren ist ein erster Einblick in diese Thematik möglich.
Beim Verschlüsseln einer Nachricht werden die zwei Betriebsmodi ECB (Electronic-Codebook-Modus) und CBC (Cipher-Block-Chaining) verwendet, welche unterschiedliche Sicherheit gewährleisten.

Folgendes soll am Ende des Praktikums von jeder Gruppe realisiert sein:

  • Schlüsselerzeugung für RSA, DSA und ECDSA mit verschiedenen Schlüssellängen
  • Speicherung der Schlüssel
  • Ver- und Entschlüsseln einer Datei mit RSA, Auswahl des Betriebsmodus ECB oder CBC
  • Signieren einer  Datei mit RSA, DSA und ECDSA
  • Exportieren und Importieren von öffentlichen Schlüsseln
Die Algorithmen sind in JAVA zu implementieren und mittels JAVADOC zu dokumentieren. Die Oberfläche ist mit Swing zu realisieren.

Aufgabenblätter:

Elliptische Kurven:

Literaturliste:

1. Don Johnson, Alfred Menezes: The Elliptical Curve Digital Signature Algorithm (ECDSA), 1999. pdf 

2. FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION, FIPS PUB 186-2, Digital Signature Standard, 2000. pdf

3. Betriebsmodi



Interessenten können sich telefonisch unter 203-8043, bei Christian Gunia Raum 00-011 Geb. 079, oder bei Swen Schmelzer Raum 00-005 Geb. 079 melden.