Wenn wir die Schlüssel der asymmetrischen Verschlüsselung umkehren beobachten wir eine interessante Eigenschaft:

  • Alice verschlüsselt einen Klartext mit ihrem private key!
  • Bob entschlüsselt den Geheimtext mit Alice' public key.

Weil nur Alice den private key kennt, ist damit bewiesen, dass Alice ihn verschlüsselt hat.

Damit haben wir nicht nur die Möglichkeit, einen Text so zu verschlüsseln, dass ihn niemand lesen kann (Vertraulichkeit), sondern auch, so, dass er garantiert von einer bestimmten Person kommt (Authentizität).

In der Praxis ist es zu mühsam, den ganzen Text zu verschlüsseln, um eine Signatur zu erstellen. Stattdessen fassen wir den Klartext mit einer Hashfunktion zu einem kürzeren Wert zusammen. Wir signieren (verschlüsseln) dann nur den Hashwert.

Für die Verifikation der Unterschrift müssen wir nur überprüfen, ob die entschlüsselte Signatur mit dem Hashwert der Nachricht übereinstimmt:

Die Hashfunktion soll folgende Eigenschaften haben:

  • zwei verschiedene Texte sollen möglichst selten denselben Hashwert ergeben.
  • es soll schwierig sein, einen Text so zu verändern, dass ein bestimmter Hashwert herauskommt.

Weshalb?

Schreibe eine Funktion, die alle Zahlen einer Liste mit XOR kombiniert.

Lösung:

Teil 2: Schreibe eine Funktion word_hash die alle Zeichen eines Worts in ASCII-Codes übersetzt, bevor sie mit XOR verbunden werden.

Lösung:

Erfüllt die XOR-Hashfunktion die obigen Bedingungen?

Antwort:

  • gf_informatik/verschluesselung/signaturen.1648222095.txt.gz
  • Zuletzt geändert: 2022-03-25 15:28
  • von hof