Vorlesung IT-Sicherheit FH Frankfurt Sommersemester 2007

Ähnliche Dokumente
Die (Un-)Sicherheit von DES

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

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

AES und Public-Key-Kryptographie

Blockverschlüsselung und AES

Der Advanced Encryption Standard (AES)

Designziele in Blockchiffren

Algorithmische Anwendungen Prof. Dr. Heinrich Klocke

9 Rechnergestütze Blockchiffren

DES der vergangene Standard für Bitblock-Chiffren

Einführung in die Kryptographie

Stefan Lucks Krypto und Mediensicherheit (2009) 5: Blockchiffren. 5: Blockchiffren. (n bit) (n bit) VERschlüsseln ENTschlüsseln

8 Der Advanced Encryption Standard (AES)

Praktikum IT-Sicherheit

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

IT-Sicherheit - Sicherheit vernetzter Systeme -

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo

Netzwerktechnologien 3 VO

Kryptografische Algorithmen

Das Verschlüsseln verstehen

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

Lösung zur Klausur zu Krypographie Sommersemester 2005

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

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

Einführung in die Kryptographie

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

Der Advanced Encryption Standard (AES) und seine mathematischen Grundlagen Eine Einführung für Nichtmathematiker, Teil 1

Kryptologie und Kodierungstheorie

Seminar Kryptographie und Datensicherheit

Projekt u23 Symmetrische Kryptografie, Betriebsmodi von Blockchiffren

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

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

Was heißt Kryptographie I? Understanding Cryptography Christof Paar und Jan Pelzl

monoalphabetisch: Verschiebechiffren (Caesar), multiplikative Chiffren polyalphabetisch: Vigenère-Chiffre

9.2 Invertierbare Matrizen

n ϕ n

Skript zum Kryptologie-Referat Part II

Methoden der Kryptographie

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Kryptographie praktisch erlebt

SICHERE DATENHALTUNG IN DER CLOUD VIA HANDY. Tuba Yapinti Abschlussvortrag der Bachelorarbeit Betreuer: Prof. Reinhardt, Dr.

Rijndael Nachfolger des DES

Eine Einführung in die Kryptographie

IT-Sicherheit - Sicherheit vernetzter Systeme -

Kapitel 4: Flusschiffren

Sommersemester 2002 Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit (KVBK)

Einführung in die Kryptographie ,

1.3 Gruppen. Algebra I 9. April 2008 c Rudolf Scharlau,

Inverse Matrix. 1-E Ma 1 Lubov Vassilevskaya

Praktikum Systementwurf mit VHDL HDL Design Lab

Wireless Security. IT Security Workshop Moritz Grauel Matthias Naber

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

Vorlesung Datensicherheit. Sommersemester 2010

Urbild Angriff auf Inkrementelle Hashfunktionen

Grundlagen der Kryptographie

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

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

Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code)

Vorlesung IT-Sicherheit FH Frankfurt Sommersemester 2007

1 Das RSA-Verfahren und seine algorithmischen Grundlagen

Sicherheit von PDF-Dateien

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

Kryptographische Verschlüsselung mithilfe des DES-Verfahrens und die Übersetzung eines Textes durch ein selbstgeschriebenes Delphi-Programm

Kryptographie und Komplexität

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur

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

Berechnungen mit dem Horner-Schema

ESecur Die einfache verschlüsselung

KRYPTOLOGIE KRYPTOLOGIE

Asymmetrische Kryptographie u

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

RSA Verfahren. Kapitel 7 p. 103

Vorlesung Sicherheit

Kryptographie oder Verschlüsselungstechniken

KRYPTOSYSTEME & RSA IM SPEZIELLEN

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

4: Algebraische Strukturen / Gruppen

Technische Universität München. Lösung Montag WS 2013/14. (Einheitskreis, ohne Rechnung ersichtlich) (Einheitskreis, ohne Rechnung ersichtlich)

Klassische Verschlüsselungsverfahren

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

1 Einführung: Was ist Kryptologie

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen

1 Zahlentheorie. 1.1 Kongruenzen

Einführung in die Algebra

WURZEL Werkstatt Mathematik Polynome Grundlagen

1.4 Homomorphismen und Isomorphismen

Datenkommunikation Prof. Dr. Marke SS 2001 Seminar-Thema: Kryptographie

TI-89. Gleichungssysteme

Algorithmische Anwendungen

Betriebsarten für Blockchiffren

Vorkurs für. Studierende in Mathematik und Physik. Einführung in Kryptographie Kurzskript 2015

( ) ( ) Schnittpunkt mit der y Achse P 0 y : Bedingung: y = f 0. y s s

8. Advanced Encryption Standard

Hochschule Wismar Fachbereich Wirtschaft

3.4 Der Gaußsche Algorithmus

Public-Key-Kryptographie

y x x y ( 2x 3y + z x + z

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005

Kapitel 2 Kryptographische Grundlagen

Transkript:

Vorlesung IT-Sicherheit FH Frankfurt Sommersemester 2007 Dr. Volker Scheidemann

Standards für symmetrische Verschlüsselung DES, 3DES, AES

DES Seite: 3

DES Data Encryption Standard 1974 von IBM unter Beteiligung der NSA entwickelt 1977 zum US-Standard (FIPS 46-3) für die Verschlüsselung von Daten im Bankwesen und der öffentlichen Verwaltung erklärt Seite: 4

DES Iterierte 64 Bit-Blockchiffre mit 16 Runden Schlüssellänge 64 Bit. Davon jedoch 8 Parity-Bits. Effektive Schlüssellänge daher nur 56 Bit. Seite: 5

DES: Schematischer Ablauf Seite: 6

DES: Rundenschlüssel In jeder Runde werden aus dem 56 Bit Schlüssel k nach einem fest vorgegebenen Schema 48 Bit ausgewählt, die den Rundenschlüssel k i bilden (Details siehe HAC). Mit jedem Rundenschlüssel wird ein Zwischenergebnis der Verschlüsselung erzeugt, welches dann mit dem nächsten Rundenschlüssel weiter bearbeitet wird. Seite: 7

DES: Feistel-Struktur DES besteht aus einer Iteration von so genannten Feistel- Runden (Horst Feistel, IBM-Chefingenieur von DES). Jede Feistel-Runde verläuft nach dem gleichen Prinzip. Die i-te Runde kann durch folgendes Diagramm beschrieben werden: Seite: 8

i-te Feistel-Runde 64 Bit je 32 Bit Verschlüsselung mit i-tem Rundenschlüssel k i Seite: 9

Eine DES-Runde Seite: 10

DES: S-Boxen In den S-Boxen steckt das tiefere Geheimnis von DES. Die Boxen definieren Substitutionen. Jede S-Box ist eine 4 x 16 Tabelle mit Einträgen zwischen 0 und 15 ( mit vier Bit darstellbar). Seite: 11

DES: S-Boxen Das Ziel der S-Box Operation ist, aus einem 6 Bit-Block einen 4 Bit-Block zu machen. Die äußeren zwei Bit jedes 6er Blocks definieren die Zeile, die inneren vier die Spalte der Box. Der Eingangs-6er-Block wird dann durch den Wert an der so berechneten Stelle der S-Box ersetzt. Seite: 12

DES: S-Boxen Beispiel: Der Eingangsblock 111101 hat die äußeren Bits 11 ( = 3) und die inneren 1110 ( = 14 ), d.h. der Block wird beim Durchgang durch die S-Box ersetzt durch den Wert in der dritten Zeile, vierzehnte Spalte. In der Box S 1 ist dies z.b. der Wert 10 ( = 1010). Konkret wird also 111101 ersetzt durch 1010. Seite: 13

DES: S-Boxen Die S-Box-Operationen sind nicht linear, d.h. es ist i.a. S(b b ) S(b) S(b ) für Bitblöcke b und b. Alle anderen Operationen in DES sind linear. S-Boxen sind verantwortlich für Konfusion und Diffusion. Seite: 14

Konfusion und Diffusion Konfusion: Verschleierung der Zusammenhänge zwischen Klartext, Chiffretext und Schlüssel. Diffusion: Verteilung der Auswirkungen einzelner Bits des Klartextes oder des Schlüssels auf möglichst viel Chiffretext. Seite: 15

Konfusion und Diffusion Beispiel DES: Nach fünf Runden hängt jedes Bit des Chiffretextes von jedem Bit des Klartextes und jedem Bit des Schlüssels ab. Das bedeutet konkret, dass sich der komplette Chiffretext ändert, wenn man nur ein Bit des Klartextes oder des Schlüssels abändert (Lawineneffekt). Seite: 16

DES: Entschlüsselung So kompliziert die DES-Verschlüsselung auch erscheinen mag, so verblüffend einfach ist die Entschlüsselung für den rechtmäßigen Empfänger. Dieser muss den gleichen Schlüssel k besitzen. Die Einfachheit der Entschlüsselung ist auch keine Eigenschaft von DES, sondern von jeder Feistel-Chiffre. Unter anderem deshalb bedienen sich so viele Krypto-Algorithmen des Feistel-Schemas. Seite: 17

DES: Entschlüsselung Für iterierte Chiffren stimmt die Inversion des gesamten Algorithmus i.w. überein mit der Inversion seiner Einzelteile. Eine Verschlüsselungsrunde einer Feistel- Chiffre hat die Form R i = L i-1 E(R i-1,k), L i =R i-1 Daraus ergibt sich L i-1 = R i E(R i-1,k), R i-1 = L i Seite: 18

DES: Entschlüsselung Ver- und Entschlüsselung sind praktisch identisch. Der Entschlüsselungsalgorithmus ist derselbe wie der zur Verschlüsselung, man muss nur Reihenfolge der Rundenschlüssel umkehren. Seite: 19

3DES Problem bei DES: zu geringe Schlüssellänge Lösung: 3DES (Triple-DES) Schema E-D-E Wahlweise mit zwei oder drei Schlüsseln von je (effektiv) 56 Bit. Seite: 20

3DES EDE-Prinzip: c = E(D(E(p,k 1 ),k 2 ),k 3 ) Mittlerer D-Schritt sorgt für Abwärtskompatibilität mit dem einfachen DES Im 2-key Modus ist k 1 =k 3 Im 3-key Modus sind alle k j unterschiedlich Seite: 21

3DES Verwendet man drei unterschiedliche Schlüssel k 1, k 2, k 3 so ergibt sich eine Gesamtlänge des Schlüssels von 3 x 56 = 168 Bit. Wem das nicht reicht, kann auch 5DES, 7DES, benutzen Seite: 22

DES: Abschlussbemerkungen DES war von 1977 bis 2001 der offizielle Standard für Datenverschlüsselung in der amerikanischen Verwaltung und wird in vielen kommerziellen Produkten eingesetzt. DES ist bis heute nicht geknackt in dem Sinne, dass jemand eine Attacke auf DES (offiziell) kennt, mit der DES mit wesentlich geringerem Aufwand als Brute Force geknackt werden kann. Aufgrund der geringen Schlüssellänge kann man den einfachen DES heute mit Brute Force knacken, 3DES im 3-key-Modus jedoch nicht Seite: 23

DES: Abschlussbemerkungen DES besitzt vier schwache Schlüssel, die vermieden werden sollten: 00000000000000, 0000000FFFFFFF, FFFFFFF0000000, FFFFFFFFFFFFFF. Diese Schlüssel produzieren nämlich in jeder Runde identische Rundenschlüssel. Jede DES-Variante mit weniger als 16 Runden ist mit einer speziellen Known-Plaintext-Attacke (differentielle Kryptanalyse) angreifbar und damit leichter knackbar, als mit Brute Force (Eli Biham, Adi Shamir, 1990). Seite: 24

Rijndael (AES) Seite: 25

AES: Historie Am 12. September 1997 schrieb das US National Institute of Standardsand Technology (NIST) einen Wettbewerb für einen Nachfolger von DES als Standardalgorithmus zur Datenverschlüsselung in der öffentlichen Verwaltung aus: den Advanced Encryption Standard (AES). Seite: 26

AES: Historie Das NIST forderte eine symmetrische Blockchiffre mit Blocklänge 128 Bit. Der AES sollte mit Schlüssellangen von128, 192 und 256 Bit arbeiten können und resistent gegen alle im Laufe der Zeit bekannt gewordenen Attacken auf DES sein, z.b. die lineare oder die differentielle Kryptanalyse. Seite: 27

AES: Historie Weiter sollte der Algorithmus frei von Rechten Dritter sein und jedem zur Benutzung frei zur Verfügung stehen. Die Begutachtung der eingereichten Vorschläge erfolgte ausschließlich in einer öffentlichen Diskussion (das war bei DES nicht so). Insgesamt akzeptierte das NIST 15 Vorschläge, die den Wettbewerb gegeneinander antraten. Seite: 28

AES: Historie Am 2. Oktober 2000 verkündete das NIST den Gewinner: den Algorithmus Rijndael der beiden belgischen Kryptologen Joan Daemen und Vincent Rijmen. Seite: 29

AES: Historie Detaillierte Informationen findet man auf der Homepage von Vincent Rijmen unter www.esat.kuleuven.ac.be/~rijmen/rijndael Die NIST Spezifikation des AES findet sich auf http://csrc.nist.gov/encryption/aes/rijndael/ Inzwischen gibt es auch das Buch The Design of Rijndael von Daemen/Rijmen, erscheinen im Springer-Verlag. Seite: 30

AES: Der Rijndael-Algorithmus Der Rijndael-Algorithmus kann auch andere Blocklängen als 128 Bit bearbeiten.in der AES-Spezifikation ist aber die Länge 128 Bit festgelegt. Abhängig von der Schlüssellänge durchläuft Rijndael 10, 12 oder 14 Runden. Seite: 31

AES: Der Rijndael-Algorithmus Im Gegensatz zu DES enthält Rijndael keine Bestandteile, deren Funktionen und deren Aufbau sich nicht präzise beschreiben ließen. Dennoch empfinden viele den Algorithmus als hässlich. Er enthält nämlich viel Mathematik! Seite: 32

AES: Der Rijndael-Algorithmus Abgesehen davon ist er jedoch einfach und übersichtlich aufgebaut.rijndael ist eine SP-Chiffre, jedoch kein Feistel- Netzwerk.Von der letzten Runde abgesehen, in der eine MixColumn-Operationentfällt, besteht jede Runde aus der Hintereinanderausführung von vier Schritten: SubBytes ShiftRow MixColumn AddRoundKey Seite: 33

AES: Der Rijndael-Algorithmus Rijndael operiert auf den Klartextblöcken byteweise. Ein Block von 128 Bit = 16 Byte wird intern als eine 4 x 4 Matrix gespeichert. Diese Matrix heißt der Zustand (State). Seite: 34

AES: Der Rijndael-Algorithmus Diese zweidimensionale Matrix kann auch als ein eindimensionales Feld von Spalten von je 32 Bit Wörtern aufgefasst werden. Seite: 35

AES: Der Rijndael-Algorithmus Der Schlüssel wird ebenfalls als Matrix mit 4x4, 4x6 oder 4x8 Byteeinträgen gespeichert. Der Algorithmus kann dann in Pseudocode folgendermaßen formuliert werden (der Parameter Nr gibt die Anzahl der zu durchlaufenden Runden an): Seite: 36

AES: Der Rijndael-Algorithmus Rijndael(byte in[4 * 4], byte out[4 * 4], word k[4 * (Nr + 1)]) begin byte state[4,4] state = in AddRoundKey(state, k) // Addition des Rundenschlüssels ssels for round = 1 to Nr 1 SubBytes(state) // Anwendung S-Box ShiftRows(state) // Zyklische Zeilenverschiebung MixColumns(state) // Durchmischung der Spalten AddRoundKey(state, k + round * 4) end for SubBytes(state) ShiftRows(state) AddRoundKey(state, k + Nr * 4) out = state end Seite: 37

Rijndael: SubBytes Nichlineare Operation Substitution von Zustandsbytes durch S-Box Separate Anwendung auf jedes Zustandsbyte, daher parallelisierbar Zusätzlich: Affin-lineare Transformation Seite: 38

Rijndael: SubBytes Mathematische Beschreibung der S-Box-Substitution ( 8) ( 8) 0, falls a = inv: GF 2 GF 2 : aa 1 a, sonst 0 Seite: 39

Rijndael: SubBytes Mathematische Beschreibung der affin-linearen Transformation x a Mx+ b Hierbei sind die b i die einzelnen Bits jedes Zustandsbytes. Seite: 40

Rijndael: SubBytes Diese affin-lineare Operation hat lediglich den Zweck, die SubBytes Operation als algebraischen Ausdruck schwieriger erscheinen zu lassen. Sie hat keine echte kryptografische Relevanz und könnte auch durch eine andere invertierbare affin-lineare Transformation ersetzt werden. Man könnte (vermutlich) auch ganz darauf verzichten, ohne die Sicherheit von Rijndael zu untergraben. Seite: 41

Rijndael: SubBytes SubBytes hat maximal 256 mögliche Ein- und Ausgaben. Daher kann die Operation für Implementierungen tabelliert werden: Das Byte mit dem Wert xy (in Hexadezimalform) wird durch das Byte in der x-ten Zeile, y-te Spalte ersetzt. Seite: 42

Rijndael: SubBytes SubBytes wendet jetzt die S-Box auf jedes Zustandsbyte an. Seite: 43

Rijndael: SubBytes Hierbei ist noch zu beachten, dass die Operation über GF(2) erfolgt. Das heißt nichts anderes, als dass die Addition das bitweise XOR ist und die Multiplikation das bitweise AND ist. Seite: 44

Rijndael: SubBytes Aufbau der Rijndael-S-Box durch einfache arithmetische Operation Gegensatz DES: S-Boxen geheimnisumwittert, da Designkriterien nicht bekannt Paranoia: NSA hat bei DES Hintertür eingebaut Rijndael: Nur eine S-Box ( geringer Speicherplatzverbrauch) Seite: 45

Rijndael: ShiftRow ShiftRow verschiebt jeweils die letzten drei Zeilen des Zustandes zyklisch um 1, 2 oder 3 Positionen nach links. Zusammen mit der MixColumn-Operation bewirkt ShiftRow, dass sich Byteänderungen möglichst schnell und gleichmäßig über den gesamten Zustand verteilen (Diffusion). Seite: 46

Rijndael: MixColumn Die MixColumn-Transformation operiert spaltenweise auf dem Zustand. Jede Spaltentransformation kann ebenfalls als Matrix-Vektormultiplikation geschrieben werden: Die Addition ist hierbei wieder als das bitweise XOR aufzufassen,während die Multiplikation hier einer komplizierteren Regel gehorcht. Seite: 47

Rijndael: MixColumn Für diese Regel müssen wir etwas weiter ausholen. Jedes Byte besteht bekanntlich aus acht Bit. Ein Byte kann daher durch ein Polynom vom Grad sieben repräsentiert werden, wobei jedes gesetzte Bit das Auftauchen der entsprechenden x-potenz im Polynom angibt. Seite: 48

Rijndael: MixColumn Beispiel: Das Byte 10100001 hat die Polynomdarstellung x 7 +x 5 +1. Die Multiplikation von zwei Bytes in der MixColumn- Transformation ist nun aufzufassen als Multiplikation der zugehörigen Polynome und anschließender Reduktion modulo des Polynoms m(x) = x 8 +x 4 +x 3 +x+1. Seite: 49

Rijndael: MixColumn Beispiel: Wir wollen die Bytes (Hexadezimal) 0x57 und 0x83 nach diesem Schema multiplizieren. Binärdarstellung 0x57 = 01010111 0x83 = 10000011 Polynomdarstellung 0x57 = x 6 +x 4 +x 2 +x+1 0x83 = x 7 +x+1 Seite: 50

Rijndael: MixColumn Multiplikation dieser beiden Polynome ergibt zunächst (x 6 +x 4 +x 2 +x+1)(x 7 +x+1) = x 13 +x 11 +x 9 +x 8 +x 7 +x 7 +x 5 +x 3 +x 2 +x+x 6 +x 4 +x 2 +x+1 = x 13 +x 11 +x 9 +x 8 +x 6 +x 5 +x 4 +x 3 +1 =: p(x) Man beachte, dass die Addition dem bitweisen XOR entspricht, d.h. die Gleichung 1+1 = 0 gilt. Daher fallen doppelt auftretende Terme im Ergebnis weg. Seite: 51

Rijndael: MixColumn Das Ergebnis x 13 +x 11 +x 9 +x 8 +x 5 +x 4 +x 3 +1 hat den Grad 13, ist also nicht mehr als Byte repräsentierbar. Daher folgt nun noch die Reduktion modulo m(x) d.h. man berechnet den Rest der Polynomdivision von p(x) durch m(x): p(x) = q(x)m(x)+r(x) Seite: 52

Rijndael: MixColumn Das Restpolynom r(x) ist dann das gesuchte Ergebnis p(x) mod m(x). In diesem Beispiel ist r(x) = x 7 +x 6 +1, denn es gilt x 13 +x 11 +x 9 +x 8 +x 5 +x 4 +x 3 +1 = (x 5 +x 3 )(x 8 +x 4 +x 3 +x+1) +(x 7 +x 6 +1) Seite: 53

Rijndael: MixColumn Leider ist diese Multiplikation, anders als die Addition, auf Byte-Level nicht durch eine einfache, computergerechte Operation zu implementieren. Hier entsteht etwas Aufwand. Seite: 54

Rijndael: MixColumn Für Mathematiker sei noch angemerkt, dass das Polynom m(x) irreduzibel über GF(2) ist. Daher erhalten wir durch die so eingeführten Addition und Multiplikation auf Byte-Level den endlichen Körper GF(2 8 ), denn es gilt die Isomorphie GF( 2 8 ) GF(2)[ x] m( x) Seite: 55

Rijndael: MixColumn Mathematisch gesehen ist die MixColumn-Operation also ein linearer Automorphismus des GF(2 8 )-Vektorraumes GF(2 8 ) 4. Seite: 56

Rijndael: MixColumn Nicht-Mathematiker sollten sich zumindest soviel von dieser recht kompliziert anmutenden Konstruktion und der seltsamen Gleichung merken, dass sie dafür wichtig ist, dass sich die MixColumn-Operation bei der Entschlüsselung wieder rückgängig machen lässt. Außerdem sollte man anmerken, dass hinter dieser Konstruktion etwas den Fachleuten wohlbekanntes steckt und man ebenfalls keine Angst vor einer eingebauten Hintertür haben muss. Seite: 57

Rijndael: AddRoundKey Die letzte Operation jeder Rijndael-Runde ist die Addition des Rundenschlüssels. Diese ist einfach wieder die bitweise XOR-Verknüpfung jeder Zustands-Spalte mit einer Schlüssel-Spalte aus der Schlüsselmatrix. Seite: 58

Rijndael: AddRoundKey Der Rundenschlüssel wird aus dem Verschlüsselungsschlüssel nach einem fest vorgegebenen Schema extrahiert, auf das hier nicht näher eingegangen werden soll. Details findet man in der NIST-Spezifikation. Seite: 59

Rijndael: Entschlüsselung Die Entschlüsselung von Rijndael ist einfach. Da jede einzelne Operation invertierbar ist, ist auch der Gesamtalgorithmus nach dem allgemeinen Prinzip für iterierte Chiffren invertierbar. In Pseudocode kann man die Entschlüsselung wie folgt schreiben: Seite: 60

Rijndael: Entschlüsselung InvRijndael(byte in[4 * 4], byte out[4 * 4], word k[4 * (Nr + 1)]) begin byte state[4,4] end state = in AddRoundKey(state, k + Nr * 4) for round = Nr - 1 to 1 InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, k + round * 4) InvMixColumns(state) end for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, k) out = state Seite: 61

Rijndael: Abschlussbemerkungen Rijndael ist effizient in implementierbar, sowohl in Hard- als auch in Software. Der Algorithmus in weiten Teilen parallelisierbar. Rijndael benötigt wenig Speicherplatz und ist deshalb auch für Smartcards o.ä. interessant. Rijndael ist optimiert gegen lineare und differentielle Kryptanalyse, die erfolgreichsten Attacken auf DES. Seite: 62

Rijndael: Abschlussbemerkungen Rijndael ist mindestens so sicher wie 3DES, aber im Schnitt dreimal so schnell. Auf spezieller Hardware sogar noch schneller. Rijndael ist frei verfügbar. Es gibt Referenzimplementierungen im Internet in C, C++, Java, VHDL, Rijndael hat den AES-Wettbewerb mit großem Vorsprung gewonnen und ist seit Sommer 2001 offizieller Advanced Encryption Standard. Seite: 63

Rijndael: Abschlussbemerkungen Im März 2002 veröffentlichten Nicolas T. Courtois und Josef Pieprzyk eine Forschungsarbeit, dass man das Problem, den geheimen Schlüssel von Rijndael heraus zu finden, auf ein anderes mathematisches Problem zurückführen kann, welches leichter zu lösen ist, als eine Brute Force Attacke auf Rijndael. Seite: 64

Rijndael: Abschlussbemerkungen Jedoch ist das korrespondierende Problem in der Praxis immer noch kompliziert genug, um Rijndael sicher zu machen. Darüber hinaus gibt es auch im Jahr 2006 noch keine tatsächliche Computerimplementierung, welche die praktische Durchführbarkeit der Attacke bewiese. Seite: 65