faecher:informatik:oberstufe:kryptographie:aes_detail:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:oberstufe:kryptographie:aes_detail:start [30.03.2022 13:34] – [MixColumn] sbelfaecher:informatik:oberstufe:kryptographie:aes_detail:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== AES etwas genauer betrachtet ====== 
  
-Um diesen Abschnitt bearbeiten zu können, solltest du mit den wesentlichen Begriffen der modernen symmetrischen Kryptoverfahren vertraut sein. 
- 
-===== Schlüssellänge und Rundenzahl ===== 
- 
-Die **Blocklänge** des AES beträgt **128 Bit**. Die AES-Schlüssellänge kann  wahlweise auf 128, 192 oder 256 Bit festgelegt werden, die Rundenzahl hängt von der gewählten Schlüssellänge ab: 
- 
-^Schlüssellänge ^ Rundenzahl ^ 
-|128 Bit | 10  | 
-|192 Bit | 12  | 
-|256 Bit | 14  | 
- 
-===== Klartextblock als Matrix ===== 
- 
-Alle Operationen werden auf einer 4x4 Byte Matrix ausgeführt, dazu werden die 128Bit des Klartextblocks wie folgt angeordnet: 
- 
-{{ :faecher:informatik:oberstufe:kryptographie:aes_detail:aes_matrix.drawio.png |}} 
- 
-===== Rundenaufbau ===== 
- 
-Wir betrachten nur den AES mit 128Bit Schlüssellänge und 10 Runden. 
- 
-Der AES verfügt über die folgenden Operationen, die im Ablauf der Runden zum Einsatz kommen und auf der 4x4 Byte Matrix ausgeführt werden: 
- 
-  * SubBytes 
-  * ShiftRow 
-  * MixColumn 
-  * AddRoundKey 
- 
-Die mathematischen Details der Operationen beleuchten wir an dieser Stelle nicht. 
- 
-Der Ablauf ist wie folgt: 
- 
-{{ :faecher:informatik:oberstufe:kryptographie:aes_detail:aes_flow.drawio.png |}} 
- 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A1) === 
- 
-Wieviele Rundenschlüssel sind nötig? Wie viel (Bit/Byte) Schlüsselmaterial muss bei der Schlüsselaufbereitung erzeugt werden? Ein Rundenschlüssel ist 16Byte lang. 
- 
-Beobachte die Schlüsselaufbereitung im [[https://www.cryptool.org/de/cto/aes-step-by-step|Cryptool]]. Klappe die Abschnitte ''Schlüssel'' und ''Erweiterter Schlüssel'' aus. Ändere anschließend den Wert für den Schlüssel und beobachte, was im Feld erweiterter Schlüssel geschieht.  
- 
-Überprüfe, ob die Menge des Schlüsselmaterials beim erweiterten Schlüssel mit deinen eigenen Überlegen übereinstimmt. 
- 
-{{ :faecher:informatik:oberstufe:kryptographie:aes_detail:auswahl_205.png?400 |}} 
- 
- 
-===== Was macht SubBytes? ===== 
- 
-Die Rundenfunktion "SubBytes" dient zur **kryptographischen Konfusion** und ist mit einer S-Box realisiert. Die AES S-Box ist eine feste Zuordnungstabelle, in der für jeden Byte-Wert von 00 bis FF (0-255) festgelegt ist, durch welchen anderen Byte-Wert ein Eingabebyte ersetzt werden soll.  
- 
-Bei der Ersetzung wird nun jedes Byte der 4x4 Matrix durch seine entsprechende Ersetzung ersetzt. Im [[https://www.cryptool.org/de/cto/aes-step-by-step|Cryptool]] kann man die AES S-Box sehen: 
- 
-{{ :faecher:informatik:oberstufe:kryptographie:aes_detail:auswahl_206.png |}} 
- 
-Dabei sind 2 Hexadezimale Stellen jeweils ein Byte und man zählt vom Beginn der S-Box an von 00 bis FF (von 0 bis 255), damit ergeben sich folgende Ersetzungen: 
- 
-<code> 
-00 -> 63 
-01 -> 7c 
-02 -> 77 
-... 
-fe -> bb 
-ff -> 16 
-</code> 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A2) === 
- 
-Mache dir zunächst noch einmal klar, dass 2 hexadezimale Ziffern 8 Bit, also ein Byte repräsentieren. 
- 
-++++ Hilfestellung | 
-{{ :faecher:informatik:oberstufe:kryptographie:aes_detail:hexbitsbytes.drawio.png |}} 
-++++ 
- 
-Arbeite im [[https://www.cryptool.org/de/cto/aes-step-by-step|Cryptool]] zunächst mit dem Schlüssel ''00000000 00000000 00000000 00000000'' und der Eingabe ''00010203 04050607 08091011 fcfdfeff''. 
- 
-Das hat zur Folge, dass die erste Anwendung von **AddRoundKey** auf den Eingabetext - bevor die Runden beginnen - keine Auswirkung auf die Bitfolge hat, auf die die S-Box angewandt wird.  
- 
-Mache dir klar, dass die Eingabe von 0 beginnend hoch zählt (12Bytes weit), beziehungsweise von 255 beginnend abwärts zählt (4Bytes weit). 
- 
-**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 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. Schreibe die Bytes dazu als passende Matrix auf. 
- 
-===== 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. 
  • faecher/informatik/oberstufe/kryptographie/aes_detail/start.1648640057.txt.gz
  • Zuletzt geändert: 30.03.2022 13:34
  • von sbel