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:encryption2 [2026-05-28 08:30] – [Z2 – Zufällige monoalphabetische Substitution] gragf_informatik:encryption2 [2026-05-29 11:43] (aktuell) – [Symmetrische Verschlüsselung] gra
Zeile 9: Zeile 9:
   - Ich kann erklären, wo und wie die //Häufigkeitsanalyse// verwendet werden kann, um Geheimtexte zu knacken.   - Ich kann erklären, wo und wie die //Häufigkeitsanalyse// verwendet werden kann, um Geheimtexte zu knacken.
   - Ich kann erklären, weshalb die //symmetrische// Verschlüsselung so heisst und wie sie sich von der //asymmetrischen// Verschlüsselung unterscheidet.   - Ich kann erklären, weshalb die //symmetrische// Verschlüsselung so heisst und wie sie sich von der //asymmetrischen// Verschlüsselung unterscheidet.
-  - Ich kann die ASCII-Tabelle verwenden, um das einer Binärzahl entprechende Zeichen zu finden – und umgekehrt.+  - Ich kann die ASCII-Tabelle verwenden, um das einer Binärzahl entsprechende Zeichen zu finden – und umgekehrt.
   - Ich kann (noch immer) ohne Taschenrechner Binärzahlen in Dezimalzahlen umwandeln und umgekehrt.   - Ich kann (noch immer) ohne Taschenrechner Binärzahlen in Dezimalzahlen umwandeln und umgekehrt.
   - Ich kann erklären, worin sich die OR-Verknüpfung von der XOR-Verknüpfung unterscheidet.   - Ich kann erklären, worin sich die OR-Verknüpfung von der XOR-Verknüpfung unterscheidet.
Zeile 27: Zeile 27:
  
 === Symmetrische und Asymmetrische Verschlüsselung === === Symmetrische und Asymmetrische Verschlüsselung ===
-  * Bei der **symmetrischen Verschlüsselung** können Daten mit //demselben// Schlüssel (z.B. eine Zahl, ein Wort etc.) verschlüsselt und später wieder entschlüsselt werden. Deshalb heisst sie "symetrisch": der Schlüssel funktioniert in beide Richtungen. Das ist gut, wenn es eine Möglichkeit gibt, den Schlüssel sicher auszutauschen.+  * Bei der **symmetrischen Verschlüsselung** können Daten mit //demselben// Schlüssel (z.B. eine Zahl, ein Wort etc.) verschlüsselt und später wieder entschlüsselt werden. Deshalb heisst sie "symmetrisch": der Schlüssel funktioniert in beide Richtungen. Das ist gut, wenn es eine Möglichkeit gibt, den Schlüssel sicher auszutauschen.
   * Bei der Kommunikation im Internet ist das schwierig: Bevor ich eine sichere Verbindung zu einem Server aufbauen kann, müsste ich diesem Server meinen Schlüssel geben – aber eben auf einem sicheren Weg. Ich könnte ihn vielleicht per Post schicken – aber das ist natürlich nicht praktikabel. Deshalb wird hier die **asymmetrische Verschlüsselung** verwendet. Dabei wird für die Verschlüsselung ein //anderer// Schlüssel verwendet als für die Entschlüsselung: Angenommen, mein Schlüssel A verschlüsselt meine Daten aber nur Schlüssel B entschlüsselt sie. Dann könnte ich Schlüssel A vervielfachen und allen zur Verfügung stellen, die mir auf sicherem Weg eine Nachricht senden wollen. Sie können die Nachrichten mit A verschlüsseln – und //nur// ich kann die verschlüsselten Nachrichten entschlüsseln, denn //nur// ich habe Schlüssel B.   * Bei der Kommunikation im Internet ist das schwierig: Bevor ich eine sichere Verbindung zu einem Server aufbauen kann, müsste ich diesem Server meinen Schlüssel geben – aber eben auf einem sicheren Weg. Ich könnte ihn vielleicht per Post schicken – aber das ist natürlich nicht praktikabel. Deshalb wird hier die **asymmetrische Verschlüsselung** verwendet. Dabei wird für die Verschlüsselung ein //anderer// Schlüssel verwendet als für die Entschlüsselung: Angenommen, mein Schlüssel A verschlüsselt meine Daten aber nur Schlüssel B entschlüsselt sie. Dann könnte ich Schlüssel A vervielfachen und allen zur Verfügung stellen, die mir auf sicherem Weg eine Nachricht senden wollen. Sie können die Nachrichten mit A verschlüsseln – und //nur// ich kann die verschlüsselten Nachrichten entschlüsseln, denn //nur// ich habe Schlüssel B.
  
Zeile 41: Zeile 41:
     * Der Schlüsselraum für die Caesar-Verschlüsselung ist 25, also knapp 5 Bit.     * Der Schlüsselraum für die Caesar-Verschlüsselung ist 25, also knapp 5 Bit.
   * <color #0000ff>Geheimalphabet</color>: Ordnet die Klartextbuchstaben den Geheimtextbuchstaben zu – gibt es so nur bei der monoalphabetischen Substitution.   * <color #0000ff>Geheimalphabet</color>: Ordnet die Klartextbuchstaben den Geheimtextbuchstaben zu – gibt es so nur bei der monoalphabetischen Substitution.
-\\+
 ===== Caesar-Verschlüsselung (monoalphabetische Substitution) ===== ===== Caesar-Verschlüsselung (monoalphabetische Substitution) =====
 Die Caesar-Verschlüsselung ist eine sehr einfache Form der **monoalphabetischen Substitution**. Bei der Substitution werden Buchstaben durch andere Buchstaben **ersetzt** (lat. //substituere// = "ersetzen"). Monoalphabetisch ist sie deshalb, weil sie nur ein (mono) //Geheim-Alphabet// benutzt. Bei der Caesar-Verschlüsselung ergibt sich das Geheimalphabet durch Verschiebung. Ist der Schlüssel 3, so wird jeder Buschstabe um 3 Stellen verschoben: Was im Geheim-Alphabet ein D ist, ist im richtigen Alphabet ein A usw.: Die Caesar-Verschlüsselung ist eine sehr einfache Form der **monoalphabetischen Substitution**. Bei der Substitution werden Buchstaben durch andere Buchstaben **ersetzt** (lat. //substituere// = "ersetzen"). Monoalphabetisch ist sie deshalb, weil sie nur ein (mono) //Geheim-Alphabet// benutzt. Bei der Caesar-Verschlüsselung ergibt sich das Geheimalphabet durch Verschiebung. Ist der Schlüssel 3, so wird jeder Buschstabe um 3 Stellen verschoben: Was im Geheim-Alphabet ein D ist, ist im richtigen Alphabet ein A usw.:
Zeile 113: Zeile 113:
   - Verbessere das Programm so, dass Leerschläge nicht verschoben werden, sodass das Chiffrat an den gleichen Stellen Leerschläge enthält wie der Klartext. Dein Programm soll erst den Klartext, dann das Chiffrat ausgeben.   - Verbessere das Programm so, dass Leerschläge nicht verschoben werden, sodass das Chiffrat an den gleichen Stellen Leerschläge enthält wie der Klartext. Dein Programm soll erst den Klartext, dann das Chiffrat ausgeben.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python caesar_01.py> <code python caesar_01.py>
Zeile 151: Zeile 151:
 **Wenn alles funktioniert: Speichere deinen Code! (Link kopieren und ablegen.)** **Wenn alles funktioniert: Speichere deinen Code! (Link kopieren und ablegen.)**
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 341: Zeile 341:
 **Wenn alles funktioniert: Speichere deinen Code! (Link kopieren und ablegen.)** **Wenn alles funktioniert: Speichere deinen Code! (Link kopieren und ablegen.)**
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 368: Zeile 368:
   * Hierzu könnte ''encrypt'' einfach als Faktor verwendet werden, dann bräuchte es keine if-Abfrage.   * Hierzu könnte ''encrypt'' einfach als Faktor verwendet werden, dann bräuchte es keine if-Abfrage.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 434: Zeile 434:
   - Welche Buchstaben entsprechen den Dezimalzahlen ''70'', ''99'' und ''117''?   - Welche Buchstaben entsprechen den Dezimalzahlen ''70'', ''99'' und ''117''?
  
-<nodisp 2>+<nodisp 1>
 ++++ Lösung:| ++++ Lösung:|
   - b = 98 | g = 103 | q = 113   - b = 98 | g = 103 | q = 113
Zeile 465: Zeile 465:
   - notiere das dem Resultat entsprechende ASCII-Zeichen.   - notiere das dem Resultat entsprechende ASCII-Zeichen.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code> <code>
Zeile 540: Zeile 540:
 </code> </code>
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 **Ausführliche Version:** **Ausführliche Version:**
Zeile 585: Zeile 585:
 </WRAP> </WRAP>
  
-=== Aufgabe 13 – RGB-Hex-Werte binär und dezimal ===+=== Aufgabe 13 – RGB-Hex-Werte binär und dezimal (optional) ===
 Du erinnerst dich: Hexadezimalzahlen bestehen aus den Ziffern 0 bis 9 und zusätzlich aus den Buchstaben A bis F. Das heisst: Du erinnerst dich: Hexadezimalzahlen bestehen aus den Ziffern 0 bis 9 und zusätzlich aus den Buchstaben A bis F. Das heisst:
   * Mit einer Stelle können 16 Werte (0...F) dargestellt werden.    * Mit einer Stelle können 16 Werte (0...F) dargestellt werden. 
Zeile 596: Zeile 596:
   - Stelle diese drei Dezimalzahlen im [[https://www.csfieldguide.org.nz/en/interactives/rgb-mixer/|RGB-Farbmixer]] ein und prüfe, ob die Farbe stimmt.   - Stelle diese drei Dezimalzahlen im [[https://www.csfieldguide.org.nz/en/interactives/rgb-mixer/|RGB-Farbmixer]] ein und prüfe, ob die Farbe stimmt.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code> <code>
Zeile 694: Zeile 694:
   - Ergänze den Code um weitere Zeilen, sodass er das verschlüsselte Bild 3 Sekunden lang anzeigt und es danach wieder entschlüsselt. Am Ende soll das //entschlüsselte// Bild angezeigt werden.   - Ergänze den Code um weitere Zeilen, sodass er das verschlüsselte Bild 3 Sekunden lang anzeigt und es danach wieder entschlüsselt. Am Ende soll das //entschlüsselte// Bild angezeigt werden.
  
-=== Zusataufgabe für Fortgeschrittene (optional) ===+=== Zusatzaufgabe für Fortgeschrittene (optional) ===
 Erstelle (mithilfe von AI) einen Code, der Bilder mit höherer Auflösung (z.B. im Format png) mit XOR ver- und entschlüsseln kann. Teste mit verschiedenen Bildern. Erstelle (mithilfe von AI) einen Code, der Bilder mit höherer Auflösung (z.B. im Format png) mit XOR ver- und entschlüsseln kann. Teste mit verschiedenen Bildern.
  
-==== Zusätzliche Aufgaben zum Üben ====+===== Zusätzliche Aufgaben zum Üben =====
 === Z1 – Caesar === === Z1 – Caesar ===
   - Verschlüssle "XYLOPHON" von Hand mit Caesar, in dem du um 7 Stellen nach hinten verschiebst.   - Verschlüssle "XYLOPHON" von Hand mit Caesar, in dem du um 7 Stellen nach hinten verschiebst.
-  - Der Text "" wurde mit Caesar -6 verschlüsselt:+  - Der Text "SOGAR SOLAR" wurde mit Caesar -6 verschlüsselt:
     - Welcher positive Schlüsselwert führt zur gleichen Verschiebung wie -6?     - Welcher positive Schlüsselwert führt zur gleichen Verschiebung wie -6?
     - Wie lautet der Originaltext?     - Wie lautet der Originaltext?
Zeile 706: Zeile 706:
 ++++ Lösung:| ++++ Lösung:|
   - EFSVWOVU   - EFSVWOVU
 +  - :
 +    - 20
 +    - MIAUL MIFUL
  
 ++++ ++++
  
 === Z2 – Zufällige monoalphabetische Substitution === === Z2 – Zufällige monoalphabetische Substitution ===
 +Entschlüssle die Nachricht "OSMVAEJVPNRENJFYWNN" von Hand. Sie wurde mit dem folgenden monoalphabetischen Verfahren verschlüsselt (Alphabet & Schlüssel):
 +
 +<code>
 +ABCDEFGHIJKLMNOPQRSTUVWXYZ # Alphabet
 +SOGVNPKWEFLMUJDHZRAIYTBXCQ # Schlüssel
 +</code>
 +
 +Tipp: Schreibe einen kurzen Code zum Entschlüsseln – das geht schneller und macht mehr Spass! 
 +
 +++++Lösung:|
 +<code python>
 +secret = "SOGVNPKWEFLMUJDHZRAIYTBXCQ"
 +alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 +message = "OSMVAEJVPNRENJFYWNN"
 +
 +result = ""
 +for letter in message:
 +    index = secret.find(letter)
 +    result += alphabet[index]
 +print(result)
 +</code>
 +++++
 +
 +=== Z3 – Vigenère entschlüsseln ===
 +Entschlüssele folgenden nach Vigenère verschlüsselten Geheimtext mit dem Schlüsselwort TAUBE:
 +<code>
 +EIYCIK DYO WIANA MG DYS LTNX
 +</code>
 +++++Lösung:|
 +LIEBER DEN SPATZ IN DER HAND
 +++++
 +=== Z4 – Vigenère-Code erweitern ===
 +Verändere folgende Vigènere-Funktion so, dass auch Abstände verschlüsselt werden (und korrekt wieder entschlüsselt werden):
 +<html><bottom-editor autorun>
 +import string
 + 
 +def vigenere(message, key_word, crypt):
 +    alphabet = string.ascii_uppercase
 +    ciphertext = ""
 +    key_index = 0
 +    for letter in message.upper():
 +        if letter in alphabet:
 +            index = alphabet.find(letter)
 +            shift_letter = key_word[key_index].upper()
 +            key_index = (key_index + 1) % len(key_word)
 +            shift = alphabet.find(shift_letter)
 +            letter = alphabet[(index+shift*crypt)%26]
 +        ciphertext = ciphertext + letter
 +    return ciphertext
 +
 +text = "Das Dschungelbuch"
 +key = "Balu"
 +cipher = (vigenere(text, key, 1))
 +print(cipher)
 +print(vigenere(cipher, key, -1))
 +</bottom-editor></html>
 +
 +++++Lösung:|
 +  - In Zeile 4 das alphabet um ein Leerzeichen erängzen und
 +  - in Zeile 13 den Modulo-Operand der neuen Alphabet-Länge anpassen.
 +++++
 +=== Z5 – Umwandlungen ASCII BIN DEC HEX ===
 +  - Wie lautet der Hexwert für das ASCII-Zeichen G?
 +  - Wie lautet der Dezimalwert für das ASCII-Zeichen f?
 +  - Welches Zeichen findet sich unter dem Hexwert 0x77?
 +  - Welches Zeichen findet sich unter dem Dezimalwert 61?
 +
 +++++Lösung:|
 +<code>
 +1. G: 100'0111 = 0x47
 +2. f: 110'0110 = 102
 +3. 0x77 = 111'0111 -> 'w'
 +4. 61 = 011'1101 --> '='
 +</code>
 +++++
 +=== Z6 – XOR entschlüsseln ===
 +Entschlüssle den xor-verschlüsselten Text **qxj** mit dem Schlüssel ''!1+''. Verwende die ASCII-Tabelle. Achte auf Gross-/Kleinschreibung.
 +
 +++++Lösung:|
 +PIA
 +++++
  
  • gf_informatik/encryption2.1779957018.txt.gz
  • Zuletzt geändert: 2026-05-28 08:30
  • von gra