Integrität einer Nachricht und Authentizität ihres Absenders
mit einer digitaler Unterschrift sicherstellen


aktuell ausgewählte Rolle: nicht ausgewählt

Alice' Computer:

Internet:

Bobs Computer:

privater Schlüssel*:

öffentlicher Schlüssel*:

   
öffentlicher Schlüssel*:

   
privater Schlüssel*:

anzuwendender Schlüssel:





Hashwert

Signatur  


 




                                  






anzuwendender Schlüssel:





Hashwert

  Signatur

Wie kann ich mit einer digitalen Unterschrift die Integrität der Nachricht und die Authentizität des Absenders überprüfen?

Durch Verschlüsseln mit Alice' öffentlichem Schlüssel kann Bob Alice Nachrichten senden, die nur Alice wieder entschlüsseln kann. Allerdings kann JEDE(R) eine solche Nachricht verfassen - die Integrität der Nachricht (Wurde die Nachricht im Nachhinein verändert?) und die Authentizität des Absenders (Stammt die Nachricht wirklich von Bob?) bleiben also ungeklärt. Doch bietet die asymmetrische Kryptographie auch für diese Herausforderung eine elegante Lösung: Eine so genannte "Hash-Funktion" liefert für eine bestimmte Folge von Zeichen immer denselben Wert. Verändert man auch nur ein Zeichen der Folge, fügt man ein Zeichen hinzu oder entfernt man ein Zeichen, so ergibt sich stets ein anderer Hashwert. Du kannst die Entwicklung des Hashwerts beim Verfassen einer Nachricht im Feld Hashwert verfolgen!

Sende ich nun den Hashwert meiner Nachricht zusätzlich zur eigenen Nachricht, so kann der Empfänger den Hashwert der empfangenen Nachricht berechnen und das Ergebnis mit dem der Nachricht beigefügten ursprünglichen Nachricht vergleichen - jegliche Veränderung lässt sich so auf einen Blick feststellen!

Doch könnte jemand, der die Nachricht auf dem Kommunikationsweg verändert auch den Hashwert verändern, so dass der zur veränderten Nachricht passt - die Veränderung bleibt unbemerkt! Auch könnte die Nachricht nach wie vor von jemand ganz anderem verfasst worden sein, der den passenden Hashwert ermittelt und angehängt hat. Um zu zeigen, dass Bob und kein anderer als er genau diese Nachricht verfasst hat, verschlüsselt er den Hashwert mit seinem eigenen privaten Schlüssel. Aus dem Hashwert wird die "digitale Unterschrift" - auch "digitale Signatur" genannt. Nun kann jeder mit Bobs öffentlichem Schlüssel den Hashwert der Nachricht wieder entschlüsseln - es ist aber eindeutig belegt, dass die Signatur nur mit Bobs privatem Schlüssel erstellt worden sein kann.

Damit das Vertrauen in die digitale Unterschrift bestehen bleibt, müssen alle Teilnehmer gut auf ihre privaten Schlüssel aufpassen. In Programmen, die solche Schlüssel verwalten, werden die Dateien, in denen ein privater Schlüssel gespeichert ist, deshalb oft selbst mit einer Passworteingabe vor unbefugtem Benutzen des Schlüssels geschützt!

Aufgabe:

Sende in der Rolle von Bob eine Nachricht an Alice, signiere die Nachricht und überprüfe in der Rolle von Alice die Authentizität des Absenders und die Integrität der erhaltenen Nachricht:

  1. Verschlüssle dazu zunächst die Nachricht mit Alice' öffentlichem Schlüssel!
    (Anleitung siehe Animation Vertraulichkeit durch asymmetrische Kryptographie herstellen)
  2. Kopiere den Hashwert der verschlüsselten Nachricht als Signatur, indem Du im Bereich von Bobs Computer auf den Knopf "V" klickst.
  3. Verschlüssle nun den Hashwert mit Bobs eigenem privaten Schlüssel: Klicke erst auf das Tresor-Symbol () um Bobs privaten Schlüssel und dann auf den Knopf "Schlüssel auf Signatur anwenden" unterhalb des Signatur-Eingabefelds!
  4. Versende die Nachricht an Alice (Knopf "<<") und wechsle in die Rolle von Alice!
Wechsle nun in die Rolle von Alice indem Du den Knopf "zu Alice' Rolle wechseln" oberhalb von Alice' Computer anklickst.
  1. Überprüfe in der Rolle von Alice zunächst Integrität und Authentizität der Nachricht, indem Du die erhaltene Signatur mit Bobs öffentlichem Schlüssel entschlüsselst: Klicke erst auf das Webseiten-Symbol () um Bobs öffentlichen Schlüssel und dann auf den Knopf "Schlüssel auf Signatur anwenden" unterhalb des Signatur-Eingabefelds im Bereich von Alice' Computer! Stimmt der Hashwert der verschlüsselten Nachricht mit der entschlüsselten Signatur überein? Dann kann die Nachricht in dieser Form nur von Bob sein!
  2. Entschlüssle nun die eigentliche Nachricht mit Alice' privatem Schlüssel! 
    (Anleitung siehe Animation Vertraulichkeit durch asymmetrische Kryptographie herstellen)

Hinweis: Diese Simulation unterstützt nur die Verschlüsselung von Kleinbuchstaben, Punkt und Komma – Zahlen sollten daher ausgeschrieben werden!


* Die beim Start der Animation eingetragenen Schlüsselpaare sind nur Vorschläge. Es gibt verschiedene Schlüsselpaare wie z. B. diese. Wenn Du ein anderes Schlüsselpaar verwenden möchtest, ändere einfach die Einträge in den Textfeldern, die von den Symbolen für den öffentlichen und den privaten Schlüssel umgeben sind.


(c) 2010 Andreas Gramm

CC BY-SA 3.0