Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:verschluesselung:signaturen [2022-03-17 21:50] hofgf_informatik:verschluesselung:signaturen [2022-03-25 15:28] (aktuell) – [Aufgabe XOR-Hash] hof
Zeile 7: Zeile 7:
 Weil nur Alice den _private key_ kennt, ist damit bewiesen, dass Alice ihn verschlüsselt hat. Weil nur Alice den _private key_ kennt, ist damit bewiesen, dass Alice ihn verschlüsselt hat.
  
-{{:gf_informatik:verschluesselung:pasted:20220317-224040.png?600}}+{{:gf_informatik:verschluesselung:pasted:20220317-224040.png?nolink&600}}
  
 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**). 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**).
Zeile 15: Zeile 15:
 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. 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.
  
-{{:gf_informatik:verschluesselung:pasted:20220317-224856.png}}+{{:gf_informatik:verschluesselung:pasted:20220317-224856.png?nolink&600}} 
 + 
 +Für die Verifikation der Unterschrift müssen wir nur überprüfen, ob die entschlüsselte Signatur mit dem Hashwert der Nachricht übereinstimmt: 
 + 
 +{{:gf_informatik:verschluesselung:pasted:20220317-225211.png?nolink&600}}
  
 Die Hashfunktion soll folgende Eigenschaften haben: Die Hashfunktion soll folgende Eigenschaften haben:
Zeile 25: Zeile 29:
   - sonst könnte Mallory einen anderen Text in die Nachricht schleusen, die Signatur wäre immer noch korrekt   - sonst könnte Mallory einen anderen Text in die Nachricht schleusen, die Signatur wäre immer noch korrekt
   - sonst könnte Mallory den Text ein bisschen anpassen, die Signature wäre immer noch korrekt   - sonst könnte Mallory den Text ein bisschen anpassen, die Signature wäre immer noch korrekt
 +++++
 +
 +### Aufgabe XOR-Hash
 +
 +Schreibe eine Funktion, die alle Zahlen einer Liste mit `XOR` kombiniert.
 +
 +<nodisp 1>
 +++++Lösung:|
 +<code python>
 +def xor_hash(numbers):
 +    hash = 0
 +    for n in numbers:
 +        hash = hash ^ n
 +    return hash
 +
 +print(xor_hash([42, 13, 28, 135, 42]))
 +</code>
 +++++
 +</nodisp>
 +
 +**Teil 2:** Schreibe eine Funktion `word_hash` die alle Zeichen eines Worts in ASCII-Codes übersetzt, bevor sie mit XOR verbunden werden.
 +
 +
 +<nodisp 1>
 +++++Lösung:|
 +<code python>
 +def word_hash(text):
 +    hash = 0
 +    for letter in text:
 +        hash = hash ^ ord(letter)
 +    return hash
 +
 +print(word_hash("Hallo, good morning"))
 +</code>
 +++++
 +</nodisp>
 +
 +Erfüllt die XOR-Hashfunktion die obigen Bedingungen?
 +
 +++++Antwort:|
 +Nein - jeweils zwei gleiche Buchstaben heben sich gegenseitig auf. Es ist damit einfach, eine Nachricht so zu modifizieren, dass sie den gleichen Hashwert ergibt:
 +
 +`Hallo` und `Hallo leben nebel` haben den gleichen Hashwert.
 ++++ ++++
  • gf_informatik/verschluesselung/signaturen.1647553845.txt.gz
  • Zuletzt geändert: 2022-03-17 21:50
  • von hof