Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 11 » Einführung in die Kryptografie   (Übersicht)

Einführung in die Kryptografie

Fach: Seminar Einführung in die Kryptografie

Prüfer: Prof. Saglietti

Beisitzer: Marc Spisländer

Protokollant: (Vermutlich) Raimar Lill

Nachdem Sven Söhnlein den Lehrstuhl im Laufe des Seminars verlassen hatte, musste Prof. Saglietti selbst prüfen. Ab und zu gab es mal einen Einwurf von ihr, Fragen gestellt hat aber in erster Linie Marc Spisländer. Papier und Stift lagen bereit, während der Prüfung sollte das meiste Gesagte (zumindest Formeln und Aufzählungen) dort auch stichpunktartig aufgeschrieben werden.

Fragen

F: Die erste Frage ist hier immer dieselbe: Was ist ein Kryptosystem?

A: Technisches System, das durch Algorithmen gewisse Bedingungen wie Vertraulichkeit, Authentizität und Integrität gewährleistet.

F: OK, wir hatten da allerdings auch eine mathematische Definition. Denk mal an den ersten Vortrag.

A: Hmm, da fallen mir die Unterschiede zwischen Kryptografie, Kryptoanalyse und Kryptologie ein. Die sind aber wohl nicht gemeint.

F: Nee, denk mal einfacher. Was brauchen wir denn, um Krypto zu machen?

A: Einen Algorithmus?

F: Schon auch, aber zunächst mal eine Menge von Klartexten.

A: Ahh, und dann noch Ciphertexte, eine Verschlüsselungsfunktion, eine Entschlüsselungsfunktion und Schlüssel.

F: Genau. Was ist denn der Zusammenhang dazwischen?

A: D(E(m, k), k) = m.

F: Muss der Schlüssel bei Ver- und Entschlüsseln immer derselbe sein?

A: Nein, es gibt symmetrische und asymmetrische Algorithmen. Bei den asymmetrischen sind die Schlüssel zum Verschlüsseln und Entschlüsseln unterschiedlich.

F: Wie lautet ein anderer Name für assymetrische Verfahren?

A: Public(/Private)-Key-Verfahren.

F: Bleiben wir mal bei den Public-Key-Verfahren. Da steckt ja schon im Namen, dass einer der beiden Schlüssel öffentlich ist. Was muss denn dann sichergestellt sein?

A: Das man auch den richtigen benutzt, der öffentliche Schlüssel also authentisch ist. Dazu gibt es PKIs.

F: Was noch?

A: Dass man vom öffentlichten nicht einfach auf den privaten schließen kann.

F: Und, wie wird das erreicht?

A: Asymmetrische Verfahren beruhen auf Problemen wie dem Faktorisierungsproblem oder dem diskreten Logarithmus, für die bisher keine effiziente Lösung gefunden wurde.

F: Ist denn ausgeschlossen, dass es eine gibt?

A: Nein, noch ist bloß keine öffentlich bekannt. Man hofft, dass es auch keine gibt, aber sicher ist das nicht.

F: Ein Beispiel für ein Public-Key-Verfahren ist ja RSA. Wie funktioniert das denn?

A: Zunächst müssen wir einen Schlüssel erzeugen. Dazu brauchen wir zwei zufällige Primzahlen p und q. Daraus können wir N = p ⋅ q berechnen. Außerdem die Eulersche Phi-Funktion φ(N) = (p-1) ⋅ (q-1).

F: Weißt du mehr über die Bedeutung der Phi-Funktion?

A: Nein. Jedenfalls wählen wir als nächstes den öffentlichen Exponenten e, für den gelten muss: 1 < e < φ(N) Anschließend bestimmen wir noch sein multiplikatives Inverses d.

F: Was genau ist ein multiplikatives Inverses?

A: Es gilt: d ⋅ e = 1 mod φ(N).

F: Wodurch ist sichergestellt, dass es dieses Inverse immer gibt?

A: Hmm, die Multiplikation müsste wohl abgeschlossen sein.

F: Das reicht leider nicht: Eigentlich muss das oben gewählte e auch teilerfremd zu φ(N) sein.

A: Gut, Verschlüsseln geht jetzt jedenfalls über c = m^e mod N und Entschlüsseln mit m = c^d mod N.

F: Jetzt kann man ja mit RSA auch Signieren. Wie funktioniert das denn im einfachsten Fall?

A: Schlüsserzeugung genauso, dann quasi Ver- und Entschlüsseln vertauscht. Also Signieren ist s = m^d mod N und Verifizieren m = s^e mod N.

F: Würde man das praktisch auch so implementieren?

A: Nein, gibt einige Probleme damit. Eines ist die Tatsache, dass man einfach Signaturen erraten kann; ein anderes ist die Multiplikativität von RSA: Mit zwei gültigen Signaturen kann man auch eine Signatur für das Produkt der beiden Klartexte errechnen.

F: Worauf beruht die Multiplikativität?

A: m₁^d ⋅ m₂^d = (m₁ ⋅ m₂)^d.

F: Was tut man dagegen?

A: Entweder Redundanz einfügen oder Hashwerte signieren.

F: Wie sieht das jeweils aus?

A: Redundanz fügt man z.B. über Konkatenation ein. Wenn beim Verifizieren dann nichts in diesem Format raus kommt, ist die Signatur nicht gültig. Mit Hashwerten signiert man nicht mehr die eigentliche Nachricht, sondern nur einen Hash.

F: Schreib das doch nochmal als Formel hin.

A: s = h(m)^d mod N. Gültig ist die Signatur, wenn s^e mod N = h(m).

F: Was muss man dann übertragen?

A: m und s. Es ergibt sich ein Signaturschema mit Anhang.

F: Wieso kann man mit Redundanz bzw. Hashwerten keine Signaturen mehr erraten?

A: Man müsste eine Signatur erraten, die beim Verifizieren das richtige Format hat bzw. zum Hash der Nachricht passt. Das ist extrem unwahrscheinlich.

F: Welche Eigenschaft muss die Hashfunktion dafür erfüllen?

A: Kollissionsresistene Einwegfunktion. In diesem Fall ist die Einweg-Eigenschaft eigentlich die wichtigere.

Bewertung

Zwischen 1,0 und 2,0 :-) (sowohl auch die Prüfung, als auch das gesamte Seminar). Angesichsts meiner „Hänger“, v.a. am Anfang der Prüfung, sehr fair. Explizit gelobt wurde meine Mitarbeit während des Seminars; möglich, dass das auch bei der Notengebung wohlwollend berücksichtigt wurde.

Vorbereitung

Mein Vortrags- und Seminararbeitsthema waren Digitale Signaturen. Wie oben zu sehen, gab es dazu schon ein paar Fragen mehr; allerdings auch nichts total „Abgefahrenes“.

Aufgrund anderer Prüfungen konnte ich erst am selben Tag mit dem Lernen anfangen (Prüfung war um 16 Uhr). Das wesentliche zu den meisten Themen kriegt man mit einem gewissen Vorwissen und Aufmerksamkeit im Seminar dann schon noch gelernt. In meinem Fall ist es gutgegangen, für allgemein empfehlenswert halte ich diese Strategie aber trotzdem nicht ;-).