Benutzer:Gerold Broser/Wie und warum digitales Signieren so funktioniert wie es funktioniert
Aus Diskussion:Digitale Signatur.
1. Wir gehen von asymmetrischer Verschlüsselung aus, d.h. einem Schlüsselpaar mit einem Secret-Key sk plus einem Public-Key pk.
2. Der Witz am Signieren ist, dass ein Empfänger E damit die Unversehrtheit eines übertragenen Klartexts k verifizieren können soll.
3. Dabei kann man folgendermaßen vorgehen:
3.1. Der Sender S erstellt einen (möglichst kollisionsfreien) Hashwert h aus k
3.2. k + h werden zu E übertragen
3.3. E erstellt aus k (mit der selben Methode wie S) einen Hashwert h'
3.4. Sind h und h' identisch ist die Wahrscheinlichkeit sehr hoch (nicht 100 %, wegen möglicher Kollisionen), dass k nicht verändert wurde
4. Blöd ist nur, dass es da einen Man-in-the-Middle (MITM) M geben kann, der:
4.1. k + h abfängt
4.2. k zu km verändert
4.3. aus km hm erstellt
4.4. km + hm an den vorgesehenen E sendet
4.5. E erstellt aus km (mit der – zufällig – selben Methode wie M) einen Hashwert hm' (wie 3.3)
4.6. und kommt wie bei 3.4, nun mit hm und hm', zum Ergebnis, dass (vermeintlich) alles passt
5. Daher macht man besser Folgendes:
5.1. wie 3.1
5.2. S verschlüsselt h mit seinem sk zu s
5.3. k + s wird übertragen
5.4. wie 3.3
5.5. E entschlüsselt s mit pk von S, erhält dadurch h
5.6. wie 3.4
6. Der MITM hat jetzt schlechte Karten, da
6.1. er den sk von S nicht kennt
6.2. um damit aus km ein zum sk von S passendes sm (gem. 5.1 + 4.2) zu erstellen
6.3.1. verändert er trotzdem hoffnungsvoll k zu km
6.3.2. und sendet km + s an E
6.3.3. erhält E bei 4.5 + 4.6 natürlich keine Gleichheit von hm und h'
6.3.4. da hm aus km nicht mit h' übereinstimmt
6.4.1. ändert er noch hoffnungsvoller k zu km
6.4.2. erstellt hm aus km
6.4.3. verschlüsselt hm mit einem eigenen MITM-Key mk und erhält daraus sm
6.4.4. sendet km + sm an E
6.4.5. erhält E bei 4.5 + 4.6 natürlich ebenfalls keine Gleichheit von hm und hm'
6.4.6. da hm aus km nicht mit hm' aus sm übereinstimmt
6.4.7. weil zum verschlüsseln von hm und zum entschlüsseln von sm zwei überhaupt nicht zusammengehörige Schlüssel pk und mk, d.h. kein Schlüsselpaar verwendet wurde
Pretty easy, isn't it?