faecher:informatik:oberstufe:kryptographie:aes_detail:start

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
faecher:informatik:oberstufe:kryptographie:aes_detail:start [30.03.2022 13:08] – [Was macht SubBytes?] sbelfaecher:informatik:oberstufe:kryptographie:aes_detail:start [30.03.2022 14:02] (aktuell) – [Vollständiger Verschlüsselungsvorgang] sbel
Zeile 82: Zeile 82:
 Mache dir klar, dass die Eingabe von 0 beginnend hoch zählt (12Bytes weit), beziehungsweise von 255 beginnend abwärts zählt (4Bytes weit). Mache dir klar, dass die Eingabe von 0 beginnend hoch zählt (12Bytes weit), beziehungsweise von 255 beginnend abwärts zählt (4Bytes weit).
  
-  * Vollziehe die Funktionsweise der S-Box an diesem Beispiel nach, in dem du die Ersetzungen der ersten 12 sowie der letzten 4 Bytes überprüfst.+**Tipp:** Wenn du im Cryptool die Bytes der Ergebnisse der Rundenoperationen anklickst, veranschaulicht Cryptool durch dünne Linien, wie der Byte-Wert zustandekommt. 
 + 
 +++++ Screenshot | 
 +{{ :faecher:informatik:oberstufe:kryptographie:aes_detail:auswahl_211.png |}} 
 +++++ 
 + 
 +  * Vollziehe die Funktionsweise der S-Box an diesem Beispiel nach, indem du die Ersetzungen der ersten 12 sowie der letzten 4 Bytes im Feld ''nach S-Box:'' des Cryptool überprüfst.
   * Ändere den Eingabetext und beobachte die Auswirkungen. Findest du passende Ersetzungen?   * Ändere den Eingabetext und beobachte die Auswirkungen. Findest du passende Ersetzungen?
   * Ändere den Schlüssel und beobachte die Auswirkungen: Warum ändert sich jetzt die Bitfolge für das  Feld ''Eingabe für Runde 1''?   * Ändere den Schlüssel und beobachte die Auswirkungen: Warum ändert sich jetzt die Bitfolge für das  Feld ''Eingabe für Runde 1''?
 +
 +Zusatzfrage: Welcher Text ist in der folgenden Eingabe codiert? ''496e666f 20697374 20746f6c 6c21210a''
 +
 +===== Die Funktionsweise von ShiftRow ====
 +
 +**ShiftRow** dient zur **kryptographischen Diffusion**. Im Cryptool wird "ShiftRow" als **Permutation** (Vertauschung) benannt.
 +
 +Anschaulich rotiert ShiftRow die Bytes in den Zeilen der 4x4 Matrix des Byte-Blocks:
 +
 +{{ :faecher:informatik:oberstufe:kryptographie:aes_detail:shiftrow.drawio.png |}}
 +
 +Im Cryptool ist die Permutation durch eine entsprechende Bytefolge im Abschnitt Konfiguration festgelegt. Für den "Standard AES" Algorithmus wird stets getauscht, wie im Bild dargestellt.
 +
 +
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A3) ===
 +
 +Vollziehe im Cryptool nach, dass die Bytes in den Zeilen tatsächlich so vertauscht werden, wie im Bild oben dargestellt. 
 +
 +  * Wie gelangt man von der Darstellung im Cryptool (z.B.: ''637c777b f2556fc5 3001ca82 b054bb16'' zur Matrix wie im Bild dargestellt?
 +  * Notiere die Matrix für ein Beispiel aus Cryptool einmal vor und einmal nach ShiftRow.
 +
 +===== MixColumn =====
 +
 +Die Funktion MixColumn trägt wie ShiftRow zur **Diffusion** bei. Im Vergleich zum sehr simplen ShiftRow ist MixColumn komplexer, es wird eine spezielle "Multiplikation" der Bytes in der Matrix verwendet, welche mit  "Exklusiv-Oder" Verknüpfungen kombiniert wird. Eine genaue Betrachtung führt an dieser Stelle zu weit.
 +
 +**Wichtig:** Während ShiftRow für eine Durchmischung der Zeilen sorgt, führt **MixColumn ein spaltenweises Mischen** durch.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A4) ===
 +
 +Vollziehe im Cryptool nach, dass MixColumns tatsächlich aus allen Bytes einer Spalte ein neues Element der Byte-Matrix erzeugt und damit tatsächlich die Spalten durchmischt.
 +
 +
 +===== AddRoundKey =====
 +
 +Die Funktion **AddRoundKey** verknüpft die Eingabe einer Runde exklusiv oder mit dem Rundenschlüssel. Vor der ersten Runde wird **AddRoundKey** mit dem ursprüngliche AES Schlüssel auf diese Weise mit dem Eingabetext verknüpft. 
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A5) ===
 +
 +Vollziehe die erste Verknüpfung des AES Schlüssels mit dem Klartext im Cryptool nach. 
 +
 +  * Verwende dazu zunächst als Schlüssel ''00000000 00000000 00000000 00000000'' Der Eingabetext wird durch das initiale  AddRoundKey nicht verändert - warum nicht? 
 +  * Ändere nun den Schlüssel an einer Stelle (z.B. ganz am Ende) und beobachte die Änderung des Felds ''Eingabe für Runde 1''. Vollziehe diese Veränderung mit der XOR Verknüpfung nach. Dazu kannst du die betroffenen Bytes Bitweise untereinander schreiben.((Oder ein Werkzeug wie den XOR Calculator vwerdenden: https://xor.pw/))
 +
 +===== Vollständiger Verschlüsselungsvorgang =====
 +
 +Jetzt können wir einen gesamten Verschlüsselungsvorgang nachvollziehen.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A6) ===
 +
 +Vollziehe eine vollständige Verschlüsselung über alle 10 Runden grob nach: 
 +
 +  * Mache dir klar, dass das Ergebnis einer Runde stets als Eingabe der folgenden Runde verwendet wird.
 +  * Beobachte die Verwendung der 11 Subkeys im Verlauf der Verschlüsselung - wird tatsächlich in jeder Runde ein anderen Rundenschlüssel verwendet?
 +  * Untersuche, ob in Runde 10 MixColumn durchgeführt wird oder nicht. 
 +  * Mache dir klar, dass durch diesen Ablauf ein Block von 128Bit Daten (Klartext) auf einen Block von 128Bit Daten "abgebildet" werden, die nun als Geheimtext bezeichnet werden können. Das geschieht in 10 Runden - beim AES handelt es sich also um eine **rundenbasierte Blockchiffre**.
 +
 +===== Zusatzaufgabe: Entschlüsselung =====
 +
 +  * Vollziehe die Entschlüsselung nach. 
 +  * Erstelle ein Ablaufdiagramm wie oben für den Entschlüsselungsvorgang.
  
  
  
-''496e666f 20697374 20746f6c 6c21210a'' ((Zusatzfrage: Welcher Text ist in dieser Eingabe codiert?)) 
  • faecher/informatik/oberstufe/kryptographie/aes_detail/start.1648638524.txt.gz
  • Zuletzt geändert: 30.03.2022 13:08
  • von sbel