Integrität: Signatur mit Hash-Funktion

Arbeitsgrundlage: Krypto Skript 25 - Integrität.docx

Digitale Signatur mit Einweg-Hash-Funktion

Eigentlich gewährleistet die digitale Signatur aus dem vorigen Kapitel bereits die Integrität. In der Praxis wird sie aber nicht direkt auf die Nachricht selbst angewandt: RSA hat eine Eigenschaft (die Homomorphie), die das angreifbar macht. Außerdem wäre es viel zu aufwendig, eine lange Nachricht zweimal vollständig zu verschlüsseln.

Stattdessen wird mit einer Einweg-Hash-Funktion der digitale Fingerabdruck der Nachricht berechnet (auch Message Digest). Er hat drei Eigenschaften:

  1. Er ist leicht aus dem Dokument zu berechnen.
  2. Er lässt keinen Rückschluss auf die ursprüngliche Nachricht zu.
  3. Eine zweite Nachricht mit demselben Fingerabdruck lässt sich nur mit sehr hohem Aufwand erzeugen.

Aufgabe 1: Ein Hash zum Selberrechnen

Eine einfache Möglichkeit, einen Hash zu erzeugen: Ersetze jeden Buchstaben durch seine Position im Alphabet und addiere die Zahlen. Bilde damit den Hash der Nachricht „Guten Tag“.

ABCDEFGHIJKLM
12345678910111213
NOPQRSTUVWXYZ
14151617181920212223242526
Lückentext
Der Hash der Nachricht „Guten Tag“ lautet .
Werkzeug

Das Hash-Werkzeug

Links die Buchstabensumme aus Aufgabe 1, rechts daneben derselbe Text durch die echte Hash-Funktion SHA-256. Im zweiten Feld kannst du eine zweite Nachricht zum Vergleich eintragen.

Buchstabensumme
–
SHA-256
–
Buchstaben einzeln ansehen
Buchstabensumme
–
SHA-256
–
Buchstaben einzeln ansehen

Beispiele:

Die Buchstabensumme zählt nur A bis Z und unterscheidet keine Groß- und Kleinschreibung. SHA-256 rechnet dagegen mit jedem einzelnen Byte – auch mit Leerzeichen, Satzzeichen und Umlauten.

Freitext

Aufgabe 2: Notieren Sie mit dem Werkzeug die SHA-256-Hashes von „Cusanus“, „Informatik“, „Informatik macht Spaß“ und „Informatik macht Spaß!“. Was fällt Ihnen an den Hash-Werten auf?

💡 Zum Speichern deiner Antwort bitte einloggen.

Aufgabe 3: Das Verfahren

In der folgenden Abbildung wird nicht die Nachricht signiert, sondern nur ihr Fingerabdruck. Die Nachricht selbst geht unverschlüsselt mit.

Sender (A)NachrichtHash-FunktionFingerabdruckverschlüsseln mit demprivaten Schlüssel von AUnterschriftInternet – Nachricht und Unterschrift werden zusammen verschicktEmpfänger (B)NachrichtHash-FunktionFingerabdruckUnterschriftauspacken mit demöffentlichenSchlüssel von AFingerabdruck=?Stimmen beide Fingerabdrücke überein, ist die Nachricht unverändert und stammt von A.
Durchklicken

Das Verfahren zum Durchklicken – mit und ohne Mallory

Hier wird wirklich gerechnet: Der SHA-256-Fingerabdruck deiner Nachricht wird gebildet, auf eine Zahl unter N gekürzt und mit Alices privatem Schlüssel signiert. Lass Mallory die Nachricht unterwegs ändern und sieh nach, was bei Bob passiert.

Sessionkey

    Freitext

    Aufgabe 3: Beschreiben Sie das abgebildete Verfahren. Gehen Sie darauf ein, woran der Empfänger eine Manipulation bemerken würde.

    💡 Zum Speichern deiner Antwort bitte einloggen.
    Freitext

    Aufgabe 4: In Aufgabe 3 werden nur Integrität und Authentizität sichergestellt, nicht aber die Vertraulichkeit. Erweitern Sie das Verfahren, sodass zusätzlich die Vertraulichkeit gewährleistet ist.

    💡 Zum Speichern deiner Antwort bitte einloggen.
    Freitext

    Aufgabe 5: Erzeugen Sie eine sinnvolle(!) Nachricht, die denselben „Hash“ wie in Aufgabe 1 besitzt. Schaffen Sie das auch mit der echten Hash-Funktion des Werkzeugs? Begründen Sie.

    💡 Zum Speichern deiner Antwort bitte einloggen.

    Merke

    Eine Einweg-Hash-Funktion macht aus einer beliebig langen Nachricht einen kurzen Fingerabdruck fester Länge. Signiert wird nur dieser Fingerabdruck. Das ist schnell, und es schützt zugleich die Integrität: Jede Änderung an der Nachricht ändert den Fingerabdruck und fällt damit auf.

    Im Durchklick-Beispiel wird der 256-Bit-Fingerabdruck auf eine Zahl kleiner als unser winziges N gekürzt – sonst ließe er sich nicht signieren. Bei echten Schlüsseln mit mehreren hundert Stellen passt der ganze Fingerabdruck hinein.