Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:daten_sca:verschluesselung [2024-05-26 19:37] – [Lösungen] sca | gf_informatik:daten_sca:verschluesselung [2024-06-08 11:22] (aktuell) – sca | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
++++Lernziele| | ++++Lernziele| | ||
+ | |||
+ | <nodisp 2> | ||
+ | TO ADD nach Prüfung 2024: | ||
+ | |||
+ | * alle Logikoperatoren | ||
+ | |||
+ | </ | ||
Prüfungsrelevant ist alles, was in den Lektionen und Übungen behandelt wurde. Die Lernziele unten dienen als Gradmesser und sind nicht unbedingt komplett. | Prüfungsrelevant ist alles, was in den Lektionen und Übungen behandelt wurde. Die Lernziele unten dienen als Gradmesser und sind nicht unbedingt komplett. | ||
Zeile 784: | Zeile 791: | ||
++++Tipps| | ++++Tipps| | ||
- | 1. Entferne die Leerschläge in einem String `s` mit `s = s.replace(' | ||
1. Erstelle einen leeren String, dem du Stelle um Stelle die verschlüsselte Nachricht hinzufügst. | 1. Erstelle einen leeren String, dem du Stelle um Stelle die verschlüsselte Nachricht hinzufügst. | ||
- | | + | 1. Gehe die Positionen des Binärcodes durch. An jeder Stelle bestimmst du den XOR-Wert mit der zugehörigen Ziffer im Schlüssel. Füge das Resultat dem String für die verschlüsselte Nachricht hinzu. |
+ | 1. Achtung: Die Leerschläge sollen natürlich *nicht* verschlüsselt werden. Am einfachsten überprüft man zuerst, ob das Zeichen an der aktuellen Position ein Leerschlag ist oder nicht. Falls ja, wird einfach wieder ein Leerschlag eingefügt, falls nicht, wird das Zeichen verschlüsselt. | ||
++++ | ++++ | ||
Zeile 909: | Zeile 916: | ||
01010010 01001111 01001101 01000001 01001110 01010011 01001000 01001111 01010010 01001110 | 01010010 01001111 01001101 01000001 01001110 01010011 01001000 01001111 01010010 01001110 | ||
</ | </ | ||
- | Anstelle betrachtet man gerne die zugehörigen Darstellung im **Hexadezimalsystem** (Zahlensystem mit Basis $16$, Nennwerte $0, | + | Anstelle betrachtet man gerne die zugehörigen Darstellung im **Hexadezimalsystem** (Zahlensystem mit Basis $16$, Nennwerte $0, |
Betrachten wir dazu das zweite Byte von oben: `01001111`. Die ersten vier Bits `0100` stehen für die Dezimalzahl $4$, was im Hexadezimalsystem ebenfalls $4$ ist. Die zweiten vier Bits `1111` stehen für $15$, im Hexadezimalsystem ist das `F`. Somit gilt: $$01001111_2 = 4F_{16}$$ | Betrachten wir dazu das zweite Byte von oben: `01001111`. Die ersten vier Bits `0100` stehen für die Dezimalzahl $4$, was im Hexadezimalsystem ebenfalls $4$ ist. Die zweiten vier Bits `1111` stehen für $15$, im Hexadezimalsystem ist das `F`. Somit gilt: $$01001111_2 = 4F_{16}$$ | ||
Zeile 926: | Zeile 933: | ||
=== Aufgabe F4 === | === Aufgabe F4 === | ||
+ | |||
+ | Ziele: Mit dem Online-Tool [[https:// | ||
1. Schreibe einen Code (einfach!), der dir einen 16 Byte (128 Bit) langen Zufallsstring mit Hexadezimalzahlen erstellt in der Form `e9 50 33 f9 99 81 a1 b8 6c 47 82 3d 84 59 9a bc`. Tipp: Mit `hex(132)[2: | 1. Schreibe einen Code (einfach!), der dir einen 16 Byte (128 Bit) langen Zufallsstring mit Hexadezimalzahlen erstellt in der Form `e9 50 33 f9 99 81 a1 b8 6c 47 82 3d 84 59 9a bc`. Tipp: Mit `hex(132)[2: |