Eine Analyse des AES Algorithmus mit dem Computeralgebrasystem Sage

Ähnliche Dokumente
Die (Un-)Sicherheit von DES

AES und Public-Key-Kryptographie

AES. Jens Kubieziel 07. Dezember Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Einführung in die Kryptographie

Blockverschlüsselung und AES

Wiederholung. Symmetrische Verschlüsselung klassische Verfahren: moderne Verfahren: DES (Feistel-Chiffre) mehrfache Wiederholung einer Kombination aus

Praktikum IT-Sicherheit

Lösung zur Klausur zu Krypographie Sommersemester 2005

Designziele in Blockchiffren

9 Rechnergestütze Blockchiffren

$Id: ring.tex,v /05/03 15:13:26 hk Exp $

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

Einführung in die Kryptographie

Vorlesung Sicherheit

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Seminar zur Zahlentheorie Spezialfälle des Satzes von Fermat

Eigenwerte und Diagonalisierung

Name:... Vorname:... Matrikel-Nr.:... Studienfach:...

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie

Aufgabensammlung aus Mathematik 2 UMIT, SS 2010, Version vom 7. Mai 2010

x, y 2 f(x)g(x) dµ(x). Es ist leicht nachzuprüfen, dass die x 2 setzen. Dann liefert (5.1) n=1 x ny n bzw. f, g = Ω

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Public-Key-Verschlüsselung und Diskrete Logarithmen

(Allgemeine) Vektorräume (Teschl/Teschl 9)

Das Verschlüsseln verstehen

3.6 Eigenwerte und Eigenvektoren

Probabilistische Primzahltests

Der Advanced Encryption Standard (AES)

2) Wir betrachten den Vektorraum aller Funktionen f(x) = ax 4 +bx 2 +c mit a, b, c R.

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21

2 Die Dimension eines Vektorraums

Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

Algorithmische Anwendungen Prof. Dr. Heinrich Klocke

1 Singulärwertzerlegung und Pseudoinverse

Ein Kennzeichen stetiger Funktionen ist es, dass ihre Graphen (evtl. auch nur in Intervallen) nicht. Knicke im Funktionsgraphen auftreten.

Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester 2013.

Kapitel 2: Mathematische Grundlagen

Lineare Algebra I Zusammenfassung

Vorlesung Diskrete Strukturen Gruppe und Ring

1 Zahlentheorie. 1.1 Kongruenzen

1 Angeordnete Körper. 1.1 Anordnungen und Positivbereiche

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen

Kryptographie und Kryptoanalyse Literaturhinweise

Definitionen. Merkblatt lineare Algebra. affiner Teilraum Menge, die durch Addition eines Vektors v 0 zu allen Vektoren eines Vektorraumes V entsteht

Technische Universität München Zentrum Mathematik. Übungsblatt 7

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

9.2 Invertierbare Matrizen

1 Grundlagen. 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen

Ganzzahlige Division mit Rest

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zur Linearen Algebra 1

Kryptographische Zufallszahlen. Schieberegister, Output-Feedback

Musterlösung Lineare Algebra und Geometrie Herbstsemester 2015, Aufgabenblatt 6

Galoiskörper GF(2 n ) (Teschl/Teschl 4)

Proseminar Lineare Algebra II, SS 11. Blatt

Elliptische Kurven und ihre Anwendungen in der Kryptographie

Lineare Algebra für D-ITET, D-MATL, RW. Beispiellösung für Serie 10. Aufgabe ETH Zürich D-MATH. Herbstsemester Dr. V. Gradinaru D.

Lineare Algebra II, Lösungshinweise Blatt 9

1 Algebraische Strukturen

KRYPTOSYSTEME & RSA IM SPEZIELLEN

Betriebsarten von Blockchiffren. ECB Electronic Code Book Mode. Padding. ECB Electronic Code Book Mode

Aussagenlogik. Lehrstuhl für BWL, insb. Mathematik und Statistik Prof. Dr. Michael Merz Mathematik für Betriebswirte I Wintersemester 2015/2016

Lineare Algebra und Numerische Mathematik für D-BAUG

Symmetrische Verschlüsselung. Blockchiffren, DES, IDEA, Stromchiffren und andere Verfahren

Randomisierte Algorithmen 2. Erste Beispiele

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

Projekt u23 Symmetrische Kryptografie, Betriebsmodi von Blockchiffren

Urbild Angriff auf Inkrementelle Hashfunktionen

Einführung in die Algebra

Lösungen - Serie 2 zu den Übungsaufgaben zur Vorlesung Algebraische Zahlentheorie

Seminararbeit zur Zahlentheorie. Die Gaußschen Zahlen

11. Übung zur Vorlesung. Zahlentheorie. im Wintersemester 2015/16

Nr. 4: Pseudo-Zufallszahlengeneratoren

Betriebsarten für Blockchiffren

Lösungen zu den Hausaufgaben zur Analysis II

Lösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung)

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011)

1.5 Duales Gitter und Diskriminantengruppe

Vorkurs Mathematik B

( ) ( ). Dann heißt die Zahl

4. Vektorräume und Gleichungssysteme

Klausurenkurs zum Staatsexamen (SS 2015): Lineare Algebra und analytische Geometrie 5

Methoden der Kryptographie

Kleiner Fermatscher Satz, Chinesischer Restsatz, Eulersche '-Funktion, RSA

Kapitel 5. Eigenwerte. Ein Leontief-Modell für eine Volkswirtschaft heißt geschlossen, wenn der Konsum gleich der Produktion ist, d.h. wenn.

Pollards Rho-Methode zur Faktorisierung

Digitale Unterschriften mit ElGamal

Gegeben sei eine Menge V sowie die Verknüpfung der Addition und die skalare Multiplikation der Elemente von V mit reellen Zahlen.

1 Fraktale Eigenschaften der Koch-Kurve

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

Konvergenz im quadratischen Mittel und Parsevalsche Gleichung

Matrizen spielen bei der Formulierung ökonometrischer Modelle eine zentrale Rolle: kompakte, stringente Darstellung der Modelle

Asymmetrische Kryptographie u

Breaking a Cryptosystem using Power Analysis

Vorkurs: Mathematik für Informatiker

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

1 Rechnen mit 2 2 Matrizen

Satz 16 (Multiplikationssatz)

Wiederholung. Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES

Transkript:

Heiko Knospe Eine Analyse des AES Algorithmus mit dem Computeralgebrasystem Sage Abstract. Das Computeralgebrasystem Sage bietet viele algebraische und zahlentheoretische Funktionen und ist durch eigene Python-Skripten leicht erweiterbar. Sage kann daher gut für kryptographische Untersuchungen verwendet werden. Der Beitrag behandelt eine Kryptoanalyse der Blockchiffre AES, die in vielen Netzwerkprotokollen und Sicherheitsanwendungen zum Einsatz kommt. AES besitzt eine relativ einfache algebraische Struktur. In dem Beitrag werden insbesondere die Nichtlinearität und das differentielle Verhalten der S-Box sowie die Diffusionseigenschaften der Chiffre untersucht. Sage Sage (Sagemath) [5] ist ein freies Computeralgebrasystem, das neben eigenen Funktionen auch verschiedene andere Systeme und Bibliotheken wie Singular, Maxima, PARI und R enthält und über eine einheitliche Schnittstelle zur Verfügung stellt. Sage besitzt eine interaktive Konsole sowie eine Browser-basierte Benutzeroberfläche und kann durch eigenen Python Code leicht erweitert werden. Eine besondere Stärke sind die algebraischen und zahlentheoretischen Objekte und Funktionen. Beispiele hierfür sind Ringe, Körper, algebraische Zahlkörper, Polynome, Restklassen und endliche Körper. Sage ist daher für kryptographische Untersuchungen gut geeignet und ermöglicht einen schnellen Zugang zu interessanten kryptologischen Fragestellungen, die etwa im Rahmen von Praktika und Forschungsprojekten bearbeitet werden können. Nachfolgend werden einige Elemente einer Kryptoanalyse der AES Blockchiffre unter Einsatz von Sage erläutert. Die AES Blockchiffre Der Advanced Encryption Standard AES (der Rijndael Algorithmus) ist eine standardisierte und weit verbreitete Blockchiffre. AES ist von großer

2 praktischer Bedeutung; die Chiffre wird zur symmetrischen Verschlüsselung von Daten und Datenträgern und zur Sicherung der Netzwerkkommunikation mit Protokollen wie SSL/TLS und IPsec eingesetzt. AES verschlüsselt (und entschlüsselt) Blöcke der Länge 28 Bit in Abhängigkeit von einem Schlüssel k {0, } n, wobei n = 28, n = 92 oder n = 256 zulässig sind: f k : {0, } 28 {0, } 28 Durch Wahl eines Operationsmodus, z.b. Cipher Block Chaining (CBC) Mode oder Counter Mode, und einer Paddingmethode (Auffüllen auf Vielfache der Blocklänge) entsteht ein Verschlüsselungsverfahren für Daten beliebiger Länge. Der Klartext, die Zwischenergebnisse (Status) und der Chiffretext werden in einer 4 4 Matrix über dem Körper GF (256) angeordnet. In 0, 2 oder 4 Runden (abhängig von der Schlüssellänge) werden folgende Operationen ausgeführt (siehe Abbildung ): SubBytes: Nichtlineare S-Box. ShiftRows: Zyklische Verschiebung der Zeilen. MixColumns: Lineare Abbildung der Spaltenvektoren. AddRoundKey: Addition des Rundenschlüssels. Die Rundenschlüssel werden unter Verwendung der S-Box aus dem AES Schlüssel abgeleitet. Der Körper K = GF (2 8 ) wird durch den Restklassenring GF (2)[t]/(t 8 + t 4 + t 3 + t + ) definiert. K ist als GF (2)- Vektorraum isomorph zu GF (2) 8, aber einige AES Operationen verwenden die zusätzliche Körperstruktur. Die Elemente von K können als binäres Polynom vom Grad < 8 bzw. als Hexadezimalzahl repräsentiert werden. Die Galoisgruppe Gal(K GF (2)) ist eine zyklische Gruppe der Ordnung 8, die vom Frobenius f(x) = x 2 erzeugt wird. Die GF (2)-lineare Spurabbildung ist durch die Summe der konjugierten Elemente definiert: T r : K GF (2) T r(x) = x + x 2 + x 4 + + x 28 Sage beherrscht die Rechenoperationen im Körper K und kann auch die Spur von Elementen berechnen. In dem folgenden Beispiel wird K = GF (2 8 ) und a = t mod (t 8 + t 4 + t 3 + t + ) K definiert und dann a 254 K sowie die Spur dieses Elements berechnet.

3 0 2 3 0 8 Bits SubBytes AddRound Key ShiftRows 2 3 MixColumns Abb. : AES Operationen F.<t>=GF(2)[] K.<a>=GF(2^8, name= a, modulus=t^8+t^4+t^3+t+) a^254 a^7 + a^3 + a^2 + (a^254).trace() Satz Alle GF (2)-linearen Abbildungen K GF (2) sind von der Form f(x) = T r(αx) mit α K. Beweis: Offensichtlich hat der Dualraum von K genau 256 Elemente. Falls T r(α x) = T r(α 2 x) gilt für alle x K, so ist auch T r((α α 2 )x) = 0 für alle x. Dies ist aber nur möglich, falls α = α 2 gilt. Der nichtlineare AES S-Box ist definiert durch die multiplikative Invertierung der Bytes der Zustandsmatrix, gefolgt von einer GF (2)-affinen Abbildung. AES Implementierungen verwenden hierfür üblicherweise eine Tabelle mit den 256 Funktionswerten. f RD (x) = Ax + b für x 0, bzw. f RD (0) = b.

4 0 0 0 0 0 0 0 0 0 A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b = 0 0 0 Da die Einheitengruppe K eine zyklische Gruppe der Ordnung 255 ist, gilt x = x 254 für x 0. Die Abbildung i(x) = x wird bijektiv auf K fortgesetzt, indem 0 K auf 0 abgebildet wird. Da die Matrix A regulär ist, folgt dass f RD insgesamt bijektiv und daher ausgewogen (balanced) ist, d.h. die Funktionswerte sind gleichverteilt. Jede Abbildung von K nach K kann durch ein Polynom über K vom Grad < 256 interpoliert werden. Für die S-Box f RD gilt (siehe [2] A.5): f RD (x) = 05 x 254 + 09 x 253 + F 9 x 25 + 25 x 247 + F 4 x 239 + 0 x 223 + B5 x 9 + 8F x 27 + 63 Alle Funktionen von K nach GF (2) besitzen eine algebraische Normalform (ANF), insbesondere auch die Verkettung von i(x) mit einer beliebigen GF (2)-linearen Abbildung T r(β. ) : K GF (2). Sage kann die ANF konkret berechnen. Man zeigt dann auch, dass der algebraische Grad dieser Funktionen 7 ist. Allgemein lässt sich zeigen, dass der Grad von T r(βx n ) für β 0 und n < 255 gleich dem Hamming Gewicht der binären Darstellung von n ist (siehe [3]), beispielsweise ist das Gewicht von 254 gleich 7. Im folgenden Beispiel wird die ANF von T r(x 254 ) bestimmt. from sage.crypto.boolean_function import BooleanFunction R.<x>=K[] B=BooleanFunction(x^254) B.algebraic_normal_form() x0*x6*x7 + x0*x*x2*x3*x4*x5 + x*x2*x3*x4*x5*x6*x7 +...

5 Lineare Kryptoanalyse f RD (x) = Ax +b ist offensichtlich weder K-affin noch GF (2)-affin. Aber: kann die Invertierung i(x) = x (bzw. i(0) = 0) eventuell GF (2)-linear oder GF (2)-affin genähert werden? Definition Die Nichtlinearität N (f) einer booleschen Funktion f : GF (2) n GF (2) ist die minimale Hamming Distanz von f zur Menge der affinen Abbildungen: N (f) = min h affin {x GF (2)n f(x) h(x)} Die Nichtlinearität von affinen Abbildungen ist 0 und man kann zeigen, dass stets N (f) 2 n 2 n 2 gilt (siehe []). Anwendung auf die AES S-Box: Da die S-Box vektorwertig ist, bestimmt man die Nichtlinearitäten der Verkettung von i(x) = x mit beliebigen, nichtkonstanten affinen Projektionen pr von K auf GF (2): pr i : K i K pr GF (2) Wegen Satz müssen die nichtkonstanten affinen Abbildungen pr von der Form T r(βx) oder T r(βx)+ mit einem geeigneten β K sein. Gesucht sind Abbildungen pr i mit möglichst kleiner Nichtlinearität. Man betrachtet hierfür alle α, β K, β 0 und bestimmt dann die Anzahl der x K mit T r(βx ) = T r(αx) Die Berechnung führt die Sage Funktion checklin aus (siehe unten). Falls die Eingangs- und Ausgangsbits von x eine lineare Gleichung erfüllen würden, so erhielte man die maximale Anzahl 256, bei einer echt affinen Abbildung (d.h. lineare Abbildung +) wäre die Anzahl 0. Die Anzahl der zufälligen Übereinstimmungen beträgt 28. Eine starke Nichtlinearität bedeutet eine geringe Abweichung von 28 für alle α und β, wobei kleine Abweichungen unvermeidbar sind. def checklin(alpha,beta): counter = for x in K.list():

6 if (x!= K(0)): if ((beta/x).trace() == (alpha*x).trace()): counter+= return counter Beispiele (für konkrete α, β K): checklin(a^6+a^4+a,a^2+) 44 checklin(a+,a^2+a^3+a^7) 26 Sage besitzt sogar eine eigene Funktion, welche die Nichtlinearität einer booleschen Funktion berechnet. Die folgende Schleife berechnet die Nonlinearität aller Funktionen T r(βx ). Das Ergebnis ist 2 für alle β 0. for beta in K: B = BooleanFunction( beta*x^254 ) print beta, B.nonlinearity() Satz 2 Die Nichtlinearität der AES S-Box Funktionen pr(i(x)) beträgt 2 für alle nichttrivialen affinen Projektionen pr. Beweis: Dies lässt sich mit den Funktionen checklin() oder nonlinearity() überprüfen. Der Nachweis kann alternativ auch mit Hilfe der Walsh- Transformation geführt werden [3]. Folgerung: Jede lineare (oder affine) Gleichung zwischen den 8 Eingangsund Ausgangsbits einer S-Box hat mindestens 2 und höchstens 44 Fehler (von 256). Der Betrag der Korrelation zwischen der S-Box und linearen Funktionen beträgt höchstens 44 2 2 = 2 3. Bei 25 aktiven S-Boxen in 8 vier AES Runden (vgl. [2]) beträgt die Korrelation höchstens 2 75. Eine lineare Approximation des AES damit praktisch ausgeschlossen.

Differentielle Kryptoanalyse 7 Die differentielle Kryptoanalyse untersucht, ob bestimmte charakteristische Paare von Input- und Outputdifferenzen besonders häufig auftreten. Definition Eine Abbildung f : GF (2) n GF (2) m heißt differentiell δ-uniform, wenn für alle a 0, b GF (2) n gilt (vgl. [3]): {x GF (2) n f(x + a) + f(x) = b} δ. Für affine Abbildungen f : GF (2) n GF (2) m gilt δ 2 n. In diesem Fall gilt f(x + a) + f(x) = f(a) + f(0) = b für alle x GF (2) n. Anwendung auf die AES S-Box: Bestimme ein minimales δ 256 für die S-Box f RD. Die differentiellen Eigenschaften hängen nur von der Invertierung i(x) = x (bzw. i(0) = 0) ab. Untersuche also die Lösungen folgender Gleichung im Körper K für a 0: i(x + a) + i(x) = b. Fall: i(a) b. Dann folgt x 0 und x a und es gilt: x + a + x = b bx2 + abx + a = 0 In diesem Fall gibt es höchstens 2 Lösungen. 2. Fall: i(a) = b. Dann erhält man die offensichtlichen Lösungen x = 0 und x = a. Weitere Lösungen (mit x 0 und x a) liefert dann die Gleichung: x + a + x = a x2 + ax + a 2 = 0 Quadratische Gleichungen über dem Körper K der Charakteristik 2 Für b 0 gilt: ( x x 2 + bx + c = 0 b mit T = x b. ) 2 + x b + c b 2 = 0 T 2 + T + d = 0

8 Lemma T 2 + T + d = 0 hat genau dann eine Lösung, wenn T r(d) = 0. Falls u eine Lösung ist, so ist u + eine weitere Lösung. Beweis: " ": Wenn u eine Lösung ist, dann gilt: T r(d) = T r(u 2 ) + T r(u) = 2 T r(u) = 0, da T r(u 2 ) = T r(u). " ": Nun gelte T r(d) = 0. Sei u eine Lösung der Gleichung im algebraischen Abschluss von K. Dann folgt: 0 = d+d 2 + +d 2n = (u 2 +u)+(u 4 +u 2 )+ +(u 2n +u 2n ) = u+u 2n Also ist u = u 2n und es folgt u K. Der Zusatz ist offensichtlich. Im oben betrachteten 2. Fall haben wir folgende Gleichungen: x 2 + ax + a 2 = 0 T 2 + T + = 0 mit T = x a. Da T r() = 8 = 0 gilt, hat diese Gleichung aufgrund des Lemmas zwei Lösungen. Da weder x = 0 noch x = a die Gleichung erfüllen, erhalten wir im 2. Fall also insgesamt vier Lösungen. Satz 3 Die Gleichung i(x + a) + i(x) = b hat für alle a, b K mit a 0 höchstens vier Lösungen über K. Die AES S-Box ist also differentiell 4- uniform. Die Wahrscheinlichkeit einer Ausbreitung von Differenzen beträgt für eine S-Box nur 4 2 = 2 6. Bei 25 aktiven S-Boxen in vier AES Runden 8 (vgl. [2]) beträgt die Wahrscheinlichkeit 2 50. Dies bietet Sicherheit gegen einen Angriff mit differentieller Kryptoanalyse. Lawinenkriterium Man untersucht dabei die Ausbreitungseigenschaften der S-Box und fordert, dass die Änderungen f RD (x) + f RD (x + b) möglichst ausgewogen sein sollten. Das Lawinenkriterium (Strict Avalanche Criterion, [6]) für eine boolesche Funktion f : GF (2) n GF (2) besagt, dass die Änderung eines Eingangsbits (d.h. das Hamming-Gewicht der Eingangsdifferenz b ist gleich ) die Hälfte der Ausgangswerte ändern sollte. Das Kriterium lässt sich mit Hilfe der Autokorrelation beschreiben: F (b) = (f f)(b) = x GF (2) n ( ) f(x+b) f(x)

9 f erfüllt das Lawinenkriterium, falls F (b) = 0 gilt für alle b K mit Hamming-Gewicht. Für eine lineare oder affine Funktion gilt F (b) = ±2 n. Zur Untersuchung der AES S-Box berechnet man mit Unterstützung von Sage die Autokorrelationswerte von T r(βx 254 ) oder bestimmt direkt die Ausgewogenheit der booleschen Funktionen T r(β(x 254 +(x+b) 254 )) für β 0 und b K vom Gewicht. Es zeigt sich, dass die Autokorrelation zwischen 32 und 32 liegt und die Funktionen nur für wenige β und b vollständig ausgewogen sind. Diffusionseigenschaften Überträgt man das Lawinenkriterium auf die komplette AES Chiffre f k, so ergibt sich eine Anforderung, die Claude Shannon als Diffusion bezeichnet hat [4]: die Änderung eines Klartext-Bits sollte ungefähr die Hälfte der Chiffretext-Bits ändern. Da hierbei Blöcke von 28 Bit (statt 8 Bit bei der S-Box) betrachtet werden und die Transformation zusätzlich von einem Schlüssel abhängt, wird der Kriterium statistisch formuliert. Klartext x, Schlüssel k und Bitänderung b werden zufällig gewählt und die Änderung f k (x) f k (x + b) sollte eine Folge von Zufalls-Bits sein (unabhängig und gleichverteilt). Die Diffusionseigenschaften sollen bereits nach zwei Runden erfüllt sein (vgl. [2]). Eine weitere Anforderung ist, dass die Diffusionseigenschaften nicht nur für Klartext- sondern auch für Schlüsseländerungen (bei festem Klartext) gelten sollen. Die Diffusion wird dabei im Wesentlichen durch die linearen AES Operationen MixColumns und ShiftRows erreicht, die lokale Diffusion sowie Dispersion (Ausbreitung) erzeugen. Die Diffusionseigenschaften nach zwei Runden sollen experimentell überprüft werden. Ein Schlüssel k und ein Einheitsvektor b der Länge 28 Bit sowie die Runden i und i + (mit i < 9) werden vorab zufällig gewählt. Anschließend wird ein Status x (d.h. eine 4 4 Matrix über K bzw. ein binärer Vektor der Länge 28) n mal zufällig gewählt. Der Status x und der um ein Bit veränderte Status x + b werden zwei AES Runden unterzogen. Dazu werden die Operationen SubBytes, ShiftRows, MixColumns, AddRoundKey[i], SubBytes, ShiftRows, MixColumns, AddRoundKey[i+] ausgeführt. Das Ergebnis sei y bzw. y b. Der Lawinenvektor ist y y b und

0 sollte eine Folge Zufalls-Bits sein. Zu Überprüfung sind nun verschiedene statistische Tests möglich. Wir betrachten hier nur die Häufigkeiten. Die Summation der Lawinenvektoren und anschließende Division durch n ergibt einen Wahrscheinlichkeitsvektor (p, p 2,..., p 256 ). Dabei ist p j die Wahrscheinlichkeit, dass die Eingangsänderung b nach zwei AES Runden das j-te Ausgangsbit ändert. Die Wahrscheinlichkeit p j sollte für alle j nahe bei 2 liegen. Ein Wert p j = 0 oder p j = würden bedeuten, dass das j-te Bit unabhängig von der Eingangsänderung ist. Die AES Operationen können mit Sage vergleichsweise einfach selbst implementiert werden. Alternativ kann man das Modul sage.crypto.mq verwenden, welches alle nötigen Funktionen (z.b. Rundenschlüssel erzeugen, S-Box, ShiftRows und MixColumns) zur Verfügung stellt. Es sind dann nur noch einige Zeilen Sage-Code erforderlich, um das oben beschriebene Experiment zu implementieren. Beispiel: n = 0000 Lawinenvektoren, Runden 3 und 4, Eingangsänderung b = (, 0, 0,..., 0). Wahrscheinlichkeiten der Ausgangsänderungen: (0.499, 0.502, 0.502, 0.495, 0.508, 0.495, 0.504, 0.498, 0.498, 0.499, 0.502, 0.502, 0.499, 0.488, 0.495, 0.508, 0.498, 0.499, 0.502, 0.502, 0.499, 0.488, 0.495, 0.508, 0.50, 0.504, 0.508, 0.505, 0.502, 0.505, 0.508, 0.504, 0.505, 0.505, 0.503, 0.50, 0.498, 0.503, 0.497, 0.499, 0.505, 0.505, 0.503, 0.50, 0.498, 0.503, 0.497, 0.499, 0.5, 0.5, 0.504, 0.496, 0.497, 0.498, 0.503, 0.500, 0.505, 0.503, 0.50, 0.500, 0.503, 0.497, 0.500, 0.505, 0.507, 0.509, 0.507, 0.498, 0.502, 0.509, 0.506, 0.495, 0.53, 0.503, 0.500, 0.502, 0.502, 0.495, 0.55, 0.502, 0.509, 0.507, 0.498, 0.50, 0.50, 0.506, 0.502, 0.507, 0.507, 0.509, 0.507, 0.498, 0.502, 0.509, 0.506, 0.495, 0.500, 0.504, 0.504, 0.498, 0.503, 0.503, 0.508, 0.505, 0.503, 0.509, 0.500, 0.494, 0.497, 0.53, 0.505, 0.497, 0.497, 0.503, 0.509, 0.500, 0.504, 0.505, 0.53, 0.507, 0.497, 0.503, 0.509, 0.500, 0.504, 0.505, 0.53, 0.507) Alle Ausgangsbits hängen vom ersten Eingangsbit ab. Bei diesem Experiment beträgt die mittlere Wahrscheinlichkeit für die Änderung eines Ausgangsbits p = 0,503. Mit weiteren Tests können die übrigen Eingangsbits und die Unabhängigkeit der Änderungen der einzelnen Ausgangsbits untersucht werden.

Zusammenfassung Mit Hilfe von theoretischen Überlegungen und dem Computeralgebrasystems Sage wurden die Eigenschaften des AES Algorithmus untersucht. Es wurde eine lineare und eine differenzielle Kryptoanalyse der S-Box von AES durchgeführt. Die Chiffre bietet Sicherheit gegen diese Angriffsmöglichkeiten. Die S-Box erfüllt aber nicht vollständig das Lawinenkriterium. Die Diffusionseigenschaften konnten bereits für zwei AES Runden bestätigt werden. Weitere statistische Untersuchungen sind möglich und sinnvoll. Literaturverzeichnis [] Carlet, C.:Nonlinearity of Boolean Functions. In: van Tilborg (Ed.), Encyclopedia of Cryptography and Security. Springer US (20). [2] Daemen, J.; V. Rijmen: The design of Rijndael. AES Advanced Encryption Standard. Information Security and Cryptography. Springer-Verlag, Berlin, Heidelberg, New York (2002). [3] Nyberg, K.: Differentially uniform mappings for cryptography. Advances in Cryptology EUROCRYPT 93, Lecture Notes in Computer Science, vol. 765, ed. T. Helleseth. Springer-Verlag, Berlin, 55 64 (994). [4] Shannon, C.E.: Communication Theory of Secrecy Systems. Bell Syst. Tech. Journal, Vol. 28, 656 75 (949). [5] Stein, W. et al.: Sage mathematics software. http://www.sagemath.org (20). [6] Webster, A.F., Tavares, S.E.: On the design of S-boxes. In: Advances in Cryptology Crypto 85, Lecture Notes in Computer Science, vol. 28. Springer-Verlag, Berlin, 523 534 (986). Autor Prof. Dr. Heiko Knospe Fachhochschule Köln Institut für Nachrichtentechnik Betzdorfer Str. 2 D-50672 Köln E-Mail: heiko.knospe@fh-koeln.de