Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:verschluesselung:signaturen [2022-03-17 22:01] – hof | gf_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. | ||
| - | {{: | + | {{: |
| Damit haben wir nicht nur die Möglichkeit, | Damit haben wir nicht nur die Möglichkeit, | ||
| Zeile 15: | Zeile 15: | ||
| In der Praxis ist es zu mühsam, den ganzen Text zu verschlüsseln, | In der Praxis ist es zu mühsam, den ganzen Text zu verschlüsseln, | ||
| - | {{: | + | {{: |
| Für die Verifikation der Unterschrift müssen wir nur überprüfen, | Für die Verifikation der Unterschrift müssen wir nur überprüfen, | ||
| - | {{: | + | {{: |
| Die Hashfunktion soll folgende Eigenschaften haben: | Die Hashfunktion soll folgende Eigenschaften haben: | ||
| Zeile 35: | Zeile 35: | ||
| Schreibe eine Funktion, die alle Zahlen einer Liste mit `XOR` kombiniert. | Schreibe eine Funktion, die alle Zahlen einer Liste mit `XOR` kombiniert. | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| + | <code python> | ||
| def xor_hash(numbers): | def xor_hash(numbers): | ||
| hash = 0 | hash = 0 | ||
| Zeile 44: | Zeile 45: | ||
| print(xor_hash([42, | print(xor_hash([42, | ||
| + | </ | ||
| + | ++++ | ||
| + | </ | ||
| + | |||
| + | **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(" | ||
| + | </ | ||
| ++++ | ++++ | ||
| </ | </ | ||