Übersicht. Geschichte Mathematische Grundlagen Algorithmus. ISM WS 2017/18 Teil 6/AES

Größe: px
Ab Seite anzeigen:

Download "Übersicht. Geschichte Mathematische Grundlagen Algorithmus. ISM WS 2017/18 Teil 6/AES"

Transkript

1 Übersicht Geschichte Mathematische Grundlagen Algorithmus 2

2 Literatur [6-1] [6-2] [6-3] [6-4] [6-5] [6-6] nen/technischerichtlinien/tr02102/bsi-tr pdf [6-7] Testdaten: encryption/55-aes-test-vectors#aes-ecb [6-8] [6-9] 3 Geschichte I 1997: Öffentliche Ausschreibung Symmetrische Verschlüsselung Mindestblocklänge 128 Bit Schlüssellängen 128, 192 und 256 Bit Weltweit keine Lizenzgebühren Nutzbar für 30 Jahre 2000: Entscheidungsprozess in mehreren Runden 2002: Definition als Standard Die mit * gekennzeichneten Abbildungen stammen aus dem Standard [6-1]. Dies gilt auch für viele Beispiele. 4

3 Geschichte II - Endrunde Name Land Organisation MARS USA IBM RC6 USA RSA Laboratories RIJNDAEL Belgien J. Daeman, V. Rijmen SERPENT GB, Norwegen, Israel R. Anderson, E. Biham, L. Knudsen TWOFISH USA B. Schneier et al. Die Entscheidung fiel zugunsten RIJNDAEL. Alle 5 Endrundenkandidaten sind gute Chiffre-Algorithmen. 5 Advanced Encryption Standard (AES) Entwickler: Joan Daemen, Vincent Rijmen (Belgien), 2002 Symmetrisches Verfahren Blocklänge 128 bit (16 byte) Schlüssellänge 128 bit, 192 bit oder 256 bit Ver- und Entschlüsselung verläuft in Runden, deren Anzahl von der Länge des Schlüssels abhängig ist: Schlüssellänge 128 bit: 10 Runden (N r ) Schlüssellänge 192 bit: 12 Runden (N r ) Schlüssellänge 256 bit: 14 Runden (N r ) Primär beziehen sich die Folien auf die Schlüssellänge 128 bit, an einigen Stellen werden aber auch Verallgemeinerungen benutzt. 6

4 Mathematische Grundlagen I AES beruht auf einem endlichen Körper GF(256) bzw. GF(2 8 ) über Polynome vom max. Grad 7. Es gilt: Der Körper für die Koeffizienten ist Z 2. GF(256) kann also auch geschrieben werden: Z 2 [x] m(x) Das irreduzible Polynom m(x) ist m(x) x 8 +x 4 +x 3 +x+1. Das irreduzible Polynom m(x) muss vom Grad 8 sein warum? Da es sich um einem Körper handelt, gibt es zu jeder Operation eine inverse, was bei der Entschlüsselung ausgenutzt wird. 7 Mathematische Grundlagen II Die 8 Koeffizienten aus Z 2 werden durch ein Byte repräsentiert: p(x) = a 7 x 7 +a 6 x 6 +a 5 x 5 +a 4 x 4 +a 3 x 3 +a 2 x 2 +a 1 x+a 0 Byte = a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 Bis auf wenige Ausnahmen wird beim AES mit Bytes gearbeitet, wobei jedes Byte einem Polynom entspricht. 8

5 Mathematische Grundlagen III Addition und Subtraktion werden durch XOR implementiert, da die Koeffizienten aus Z 2 kommen: Operator definiert durch e=0 Operator wird durch XOR realisiert. Addition und Subtraktion sind gleich. Operator definiert durch Operator wird durch AND realisiert. e=1 9 Mathematische Grundlagen IV - Multiplikation Modul m(x) ist x 8 +x 4 +x 3 +x+1 oder 0x11b Beispiel aus [*, S.11]: (x 6 + x 4 + x 2 +x + 1)*(x 7 + x + 1) = x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x (x 13 +x 11 +x 9 +x 8 +x 6 +x 5 +x 4 +x 3 +1) mod (x 8 +x 4 +x 3 +x+1) = x 7 +x 6 +1 Also Ausmultiplizieren und dann durch Division den Rest bestimmen Als Bitsequenzen in Hex: 0x57 * 0x83 = 0xC1 10

6 Mathematische Grundlagen V - Multiplikation Wenn ein Polynom mit x multipliziert wird, dann ist das ein Schieben um 1 Stelle nach links in der Bitstring-Repräsentation. Multiplikation Ergebnis Ergebnis in Bits mit Korrektur 0x57*0x01 0x x57*0x02 0xAE x57*0x04 0x x57*0x08 0x8E x57*0x10 0x x57*0x20 0x0E x57*0x40 0x1C x57*0x80 0x Korrektur durch m(x) Das ist die Modulo- Operation Tabelle mit mehrfachen Multiplizieren von 0x57 mit x Bitte beachten: x = 1*x 1 +0*x 0 = 0x02. Die 0x57 kommt aus dem vorherigen Beispiel. 11 Mathematische Grundlagen VI - Multiplikation xtimes(byte b) { if b[7] { // falls Bit 7 auf 1 ist return (b<<1) XOR 0x1b else { return (b<<1) Korrektur durch m(x)= 0x11b Durch den Linksshift << fällt das vorderste Bit eines Bytes immer heraus. Die Routine xtimes() multipliziert ein Polynom mit x. 12

7 Mathematische Grundlagen VII - Multiplikation (x 6 + x 4 + x 2 +x + 1)*(x 7 + x + 1) = 0x57 * 0x83 0x57*(0x80+0x02+0x01) = 0x57*0x80 + 0x57*0x02 + 0x57*0x01 = 0x38 + 0xAE + 0x57 In Hex Werte aus der Tabelle ablesen 0x38 = xAE = Addieren durch XOR x57 = Addieren durch XOR (= 0xC1 = x 7 +x 6 +1) Der Algorithmus zur Multiplikation zweier Polynome ist damit sehr dem Algorithmus der schnellen Potenzierung ähnlich, nur dass nun mit x multipliziert und nicht quadriert wird. 13 Mathematische Grundlagen VIII Das Inverse Das multiplikative Inverse lässt sich mit dem erweiterten Euklid'schen Algorithmus bestimmen. p(x) * p -1 (x) 1 (mod m(x)) Es wird daher der ggt berechnet und damit bestimmt: ggt(p(x),m(x))= 1 p'(x)*p(x)+m'(x)*m(x) (mod m(x)) p -1 (x) p'(x) (mod m(x)) Der Euklid'sche Algorithmus benutzt dann die Subtraktion, die in Z 2 gleich der Addition (XOR) ist. Wir verlassen nun die mathematische Sichtweise und gehen zur Sicht der Informatik über: Fast alle Bit-Operationen auf Bytes beruhen auf diesen mathematischen Zusammenhängen. 14

8 Repräsentation der Blöcke - state Datenblock (State) a 0,0 a 0,1 a 0,2 a 0,3 Blocklänge= 32*N b Bits, N b =4 a 1,0 a 1,1 a 1,2 a 1,3 a 2,0 a 2,1 a 2,2 a 2,3 a 3,0 a 3,1 a 3,2 a 3,3 16 byte = 128 bit Die Tabelle wird im Originaldokument [*] state genannt. Jeder einzelne Schritt in AES verarbeitet ein state und liefert ein neues state. In AES sind diese 16 byte die einzige Blockgröße; RIJNDAEL erlaubt noch zwei weitere Blockgrößen, die aber nicht in AES übernommen wurden; daher ist N b im AES immer Repräsentation der Blöcke I/O Eine Sequenz von Eingabe-Bytes in 0, in 1, in 2,,in 15 wird spaltenweise das state-array eingelesen. Schema: s[r,c]:= in [r+4*c] mit r in 0..3 und c in 0..3 Analog wird das state-array bei der Ausgabe spaltenweise in die Byte-Sequenz out 0, out 1, out 2,,out 15 konvertiert. Schema: out [r+4*c] := s[r,c] mit r in 0..3 und c in 0..3 r und c durchlaufen ihre Werte aufsteigend, wobei r schneller als c läuft. Aus [*] 16

9 Der Algorithmus im Überblick (Verschlüsselung) PROC encryptaes(state, ChipherKey) { KeyExpansion(ChipherKey, ExpandedKey); AddRoundKey(state, ExpandedKey[0]); for (i = 1; i < N r ; i++) do Round(state, ExpandedKey[i]); od FinalRound(state, ExpandedKey[N r ]); Werte für N r : 128 bit: 10 Runden 192 bit: 12 Runden 256 bit: 14 Runden PROC Round(state, ExpandedKey) { SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, ExpandedKey); PROC FinalRound(state, ExpandedKey) { SubBytes(state); ShiftRows(state); AddRoundKey(state, ExpandedKey); MixColumns() fehlt 17 Bemerkungen Vor Beginn der Verschlüsselung (und vor der Entschlüsselung) wird aus dem geheimen Schlüssel ein Array von expandierten Schlüsseln mit N r +1 Elementen gemacht. N r ist die Anzahl der Runden. Jedes Array-Element von ExpandedKey[] enthält einen Teilschlüssel, der in einer bestimmten Runde benutzt wird. 18

10 AddRoundKey(state, ExpandedKey[...]); I KeyExpansion(ChipherKey,ExpandedKey); AddRoundKey(state, ExpandedKey[0]); for... do SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, ExpandedKey); od Datenblock (state) a 0,0 a 0,1 a 0,2 a 0,3 a 1,0 a 1,1 a 1,2 a 1,3 a 2,0 a 2,1 a 2,2 a 2,3 a 3,0 a 3,1 a 3,2 a 3,3 16 byte = 128 bit Rundenschlüssel k 0,0 k 0,1 k 0,2 k 0,3 k 1,0 k 1,1 k 1,2 k 1,3 = k 2,0 k 2,1 k 2,2 k 2,3 k 3,0 k 3,1 k 3,2 k 3,3 Datenblock (state) b 0,0 b 0,1 b 0,2 b 0,3 b 1,0 b 1,1 b 1,2 b 1,3 b 2,0 b 2,1 b 2,2 b 2,3 b 3,0 b 3,1 b 3,2 b 3,3 Es handelt sich um eine einfache blockweise XOR-Verknüpfung (also um eine Addition in GF(256)). 19 AddRoundKey(state, ExpandedKey[...]); II Datenblock (state) Rundenschlüssel Datenblock (state) a 0,0 k 0,0 b 0,0 a 1,0 a 2,0 k 1,0 = k 2,0 b 1,0 b 2,0 Dies wird 4x durchgeführt. a 3,0 k 3,0 b 3,0 a 0,0 a 1,0 a 2,0 a 3,0 Eine Spalte des state wird Word (32 bit) genannt. Die Blocklänge wird in Worten definiert, hier 4. 20

11 SubBytes(state) I KeyExpansion(ChipherKey,ExpandedKey); AddRoundKey(state, ExpandedKey[0]); for... do SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, ExpandedKey); od Hinweis: Die S-Box wird auch zur Generierung der Rundenschlüssel verwendet. Datenblock (state) a 0,0 a 0,1 a 0,2 a 0,3 S-Box Datenblock (state) b 0,0 b 0,1 b 0,2 b 0,3 a 1,0 a 1,1 a 1,2 a 1,3 b 1,0 b 1,1 b 1,2 b 1,3 a 2,0 a 2,1 a 2,2 a 2,3 b 2,0 b 2,1 b 2,2 b 2,3 a 3,0 a 3,1 a 3,2 a 3,3 b 3,0 b 3,1 b 3,2 b 3,3 S-Box steht für Substitutionsbox: sie dient dem "Verwürfeln" der Information. S-Boxen werden meist durch Tabellen realisiert, die den Ersetzungsmechanismus definieren. 21 SubBytes(state) II Da die S-Box unabhängig von den Schlüsseln ist, kann sie vorher berechnet und in einer Tabelle gespeichert werden: Aus 0x85 wird 0x97 Aus [*] Für die Entschlüsselung gibt es eine "inverse" S-Box. Die Werte können aus einem Array geholt, oder live in einer Funktion berechnet werden (je nach Speicherbedarf). 22

12 SubBytes(state) III Berechnung der S-Box Der Inhalt dieser Tabelle lässt sich anhand folgender Formel berechnen: y:= A*x -1 c x ist das Originalbyte, dessen Inverses in GF(256) mit einer Matrix A multipliziert wird, dessen Ergebnis am Ende zu einer Konstanten c addiert wird. Das Ergebnis ist ein neues Byte. Es wird also das multiplikative Inverse Element mittels des erweiterten Euklid'schen Algorithmus berechnet, wobei 0 sein eigenes Inverses ist. Dann wird das Ergebnis in GF(2) bzw. Z 2, also per XOR transformiert nach folgender Formel: b i = b i b (i+4)mod 8 b (i+5)mod 8 b (i+6)mod 8 b (i+7)mod 8 c i wobei i die Bitnummer (0 bis 7) und c eine Konstante mit dem Wert 0x63 ist. 23 ShiftRows(state) I KeyExpansion(ChipherKey,ExpandedKey); AddRoundKey(state, ExpandedKey[0]); for... do SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, ExpandedKey); od Die einzelnen Zeilen werden in Abhängigkeit der Zeilennummer zyklisch nach links geschoben. Kein Shift 1x Shift 2x Shift 3x Shift Aus [10-1] 24

13 MixColumns(state) I KeyExpansion(ChipherKey,ExpandedKey); AddRoundKey(state, ExpandedKey[0]); for... do SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, ExpandedKey); od Aus [*] Hier werden die Bytes innerhalb einer Spalte "verschoben" und dabei umgerechnet. Diese Funktion bestimmt wesentlich die kryptographische Stärke von AES. 25 Bemerkungen SubBytes() tauscht lediglich ein Byte gegen ein anderes aus, d.h. es gibt keine Effekte von einem Wert eines Bytes auf ein anderes, alle Bytes werden dabei isoliert behandelt. MixCollumns() sorgt dafür, dass in einer Spalte benachbarte Bytewerte sich gegenseitig beeinflussen, so dass sich bestimmte Werte auf andere im Status auswirken. Durch das in einer späteren Runde durchgeführte Shiften werden die Wirkungen innerhalb einer Spalte auf andere Spalten verteilt. Machen Sie sich die geniale Kombination von SubBytes(), ShiftRows() und MixCollumns() klar. 26

14 MixColumns(state) II Datenblock (state) Datenblock (state) a 0,0 a 0,1 a 0,2 a 0,3 b 0,0 b 0,1 b 0,2 b 0,3 a 1,0 a 1,1 a 1,2 a 1,3 b 1,0 b 1,1 b 1,2 b 1,3 a 2,0 a 2,1 a 2,2 a 2,3 b 2,0 b 2,1 b 2,2 b 2,3 a 3,0 a 3,1 a 3,2 a 3,3 b 3,0 b 3,1 b 3,2 b 3,3 Dazu wird jede Spalte als ein Polynom vom Grad 3, dessen Koeffizienten die Bytes a *,* sind, aufgefasst: c(x) = a 0,0 +a 1,0 *x+a 2,0 *x 2 +a 3,0 *x 3 Achtung! Hier sind nun die Koeffizienten selbst Polynome, d.h. die Arithmetik dieser Zahlen ist die von GF(256), Dieses Polynom wird mit f(x) = 3x 3 +x 2 +x+2 multipliziert und davon der Rest mit mod x 4-1 bestimmt. 27 MixColumns(state) III Das Ganze noch einmal in äquivalenter Form eher zum Programmieren: Es werden die Originalbytes mit den Konstanten 1, 2 oder 3 innerhalb von GF(256) multipliziert. Diese Zwischenergebnisse werden dann in folgender Weise addiert: b 0 = (a 0 2) (a 1 3) (a 2 1) (a 3 1) b 1 = (a 0 1) (a 1 2) (a 2 3) (a 3 1) b 2 = (a 0 1) (a 1 1) (a 2 2) (a 3 3) b 3 = (a 0 3) (a 1 1) (a 2 1) (a 3 2) a 0,0 b 0,0 a 1,0 b 1,0 a 2,0 b 2,0 a 3,0 b 3,0 28

15 KeyExpansion(ChipherKey, ExpandedKey) I KeyExpansion(ChipherKey,ExpandedKey); AddRoundKey(state, ExpandedKey[0]); for... do SubBytes(state); ShiftRows(state); MixColumns(state); AddRoundKey(state, ExpandedKey); od Rundenschlüssel (4x32 bit = 128 bit) k 0,0 k 0,1 k 0,2 k 0,3 k 1,0 k 1,1 k 1,2 k 1,3 k 2,0 k 2,1 k 2,2 k 2,3 k 3,0 k 3,1 k 3,2 k 3,3 Die Schlüssellänge ist variabel: 128= 32*4, 192= 32*6, 256= 32*8, also N k = 4, 6 oder 8 N k ist die Anzahl der Worte des Schlüssels. Für jede Runde muss ein eigener Schlüssel generiert werden, der genauso groß wie state ist, also 128 bit. Es gibt drei Anzahlen von Runden: N r =10, 12, 14 Runden. AddRoundKey() wird N r +1 mal aufgerufen, d.h. für 128 bit sind 11 Rundenschlüssel erforderlich. Der erste Rundenschlüssel ist immer der Originalschlüssel, d.h. es müssen daraus 10 weitere Schlüssel generiert werden (bei 128 bit). 29 KeyExpansion(ChipherKey, ExpandedKey) II Schlüsseltabelle (ExpandedKey) 128 bit-schlüssel (4x32 bit) k 0,0 k 0,1 k 0,2 k 0,3 k 0,4 k 0,5 k 0,6 k 1,0 k 1,1 k 1,2 k 1,3 k 1,4 k 1,5 k 1,6 k 2,0 k 2,1 k 2,2 k 2,3 k 2,4 k 2,5 k 2,6 k 3,0 k 3,1 k 3,2 k 3,3 k 3,4 k 3,5 k 3,6 4x15 Worte 256 bit Spalte=Wort (32 bit) 4x13 Worte 4x11 Worte Word 192 bit 128 bit Die Spalten sind jeweils die Worte, die als Grundlage zur Berechnung der nächsten Worte dienen. Die Schlüsseltabelle wird dazu als ein Vektor von Worten aufgefasst; dieser wird nun W genannt. W[0] ist damit die 1. Spalte, W[1] die 2. Spalte etc. in der Abbildung oben. Die Werte 11, 13 und 15 bilden die Anzahl der Rundenschlüssel. 30

16 KeyExpansion(ChipherKey, ExpandedKey) III Schlüssellänge N k N r 128 bit 4 10 Das ist die Version für die Schlüssellänge von 128 bit: 192 bit bit 8 14 FUNC keyexpansion128(key) { Kopieren des Schlüssels nach W[0..3] for i:=4 to 40 { temp:= W[i-1] // das vorherige Wort wird geholt if (i mod 4) = 0 { temp:= SubWord(RotWord(temp)) XOR rcon[i/4] W[i]:= W[i-4] XOR temp return W 31 KeyExpansion(ChipherKey, ExpandedKey) IV Das ist allgemeine Version für alle Schlüssellängen: FUNC keyexpansion(key) { Kopieren des Schlüssels nach W[0..N k -1] for i:=n k to 4*N r { temp:= W[i-1] // das vorherige Wort wird geholt if (i mod N k ) = 0 { temp:= SubWord(RotWord(temp)) XOR rcon[i/n k ] else { if (N k = 8) AND (i mod N k ) = 4 { temp:= SubWord(temp) W[i]:= W[i-N k ] XOR temp return W 32

17 Bemerkungen Die ersten N k Worte sind der originale Schlüssel; alle anderen Worte werden iterativ in Bezug auf die davor liegenden Worte innerhalb des Arrays berechnet. Die Funktion SubWord() macht dasselbe wie SubBytes(), d.h. ersetzen der Bytes des Wortes anhand der S-Box. Die Funktion RotWord() verschiebt das Array von Bytes, das ein Wort bildet zirkulär nach Links. Also aus [a 0,a 1,a 2,a 3 ] wird [a 1,a 2,a 3,a 0 ], wobei [] die Byte-Sequenz innerhalb des Wortes bedeutet. rcon[] ist ein Array von Konstanten; die Division (i/n k ) ist immer ganzzahlig, da (i mod N k )=0 gilt. rcon[0] wird nie benutzt. 33 rcon[] Das Array rcon[] spiegelt die Werte folgender Funktion wieder: rcon(i)= x i-1 mod x 8 +x 4 +x 3 +x+1 Da auch hier der Schlüssel nicht eingeht, können die Werte wie bei der S-Box im voraus berechnet und und in einer Tabelle gehalten werden. Die Werte sind: i rcon(i) i rcon(i) i rcon(i) i rcon(i) 0 0x8D 4 0x08 8 0x xD8 1 0x01 5 0x10 9 0x1B 13 0xAB 2 0x02 6 0x x x4D 3 0x04 7 0x x6C 15 0x9A Es ist auch möglich, die Werte live zu berechnen. Die dazu erforderlichen Algorithmen sind oben angegeben. Dies ist bei Prozessoren mit sehr kleinem RAM/ROM notwendig. 34

18 Entschlüsselung I PROC encryptaes(state, ChipherKey) { Invert_KeyExpansion(ChipherKey, ExpandedKey); AddRoundKey(state, ExpandedKey[N r ]); for (i = N r -1; i >= 1 ; i--) do Invert_Round(state, ExpandedKey[i]); od Invert_FinalRound(state, ExpandedKey[0]); PROC Invert_Round(state, ExpandedKey) { Invert_ShiftRows(state); Invert_SubBytes(state); AddRoundKey(state, ExpandedKey); Invert_MixColumns(state); PROC Invert_FinalRound(state, ExpandedKey) { Invert_ShiftRows(state); Invert_SubBytes(state); AddRoundKey(state, ExpandedKey); Ähnliche Struktur, aber mit einer anderen S-Box, das Verschieben verläuft auch in die andere Richtung und die Anwendung der Teilschlüssel ist umgekehrt. Siehe dazu: [*] Kap Kritik am AES Zu wenige Runden; der Puffer gegenüber schneller Hardware ist zu gering aber noch geht es. Für Mathematiker zu einfach besseres Gefühl bei komplexen Algorithmen :-) Hier noch etwas zum Lesen: [A] [B] 36

19 Nach dieser Anstrengung etwas Entspannung... 37

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

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Advanced Encryption Standard Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Vorwort Diese Präsentation erläutert den Algorithmus AES auf einfachste Art. Mit Hilfe des Wissenschaftlichen Rechners

Mehr

Die (Un-)Sicherheit von DES

Die (Un-)Sicherheit von DES Die (Un-)Sicherheit von DES Sicherheit von DES: Bester praktischer Angriff ist noch immer die Brute-Force Suche. Die folgende Tabelle gibt eine Übersicht über DES Kryptanalysen. Jahr Projekt Zeit 1997

Mehr

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

AES. Jens Kubieziel jens@kubieziel.de. 07. Dezember 2009. Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik Angriffe gegen Jens Kubieziel jens@kubieziel.de Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik 07. Dezember 2009 Angriffe gegen Outline 1 Zur Geschichte 2 3 Angriffe gegen

Mehr

Blockverschlüsselung und AES

Blockverschlüsselung und AES Blockverschlüsselung und AES Proseminar/Seminar Kryptographie und Datensicherheit SoSe 2009 Universität Potsdam ein Vortrag von Linda Tschepe Übersicht Allgemeines SPNs (Substitutions- Permutations- Netzwerke)

Mehr

AES und Public-Key-Kryptographie

AES und Public-Key-Kryptographie Jens Kubieziel jens@kubieziel.de Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik 22. Juni 2009 Beschreibung des Algorithmus Angriffe gegen AES Wichtige Algorithmen im 20. Jahrhundert

Mehr

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

Wiederholung. Symmetrische Verschlüsselung klassische Verfahren: moderne Verfahren: DES (Feistel-Chiffre) mehrfache Wiederholung einer Kombination aus Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne Verfahren: DES (Feistel-Chiffre) mehrfache Wiederholung

Mehr

Algorithmische Anwendungen Prof. Dr. Heinrich Klocke

Algorithmische Anwendungen Prof. Dr. Heinrich Klocke Algorithmische Anwendungen Prof. Dr. Heinrich Klocke Algorithmisches Projekt im Wintersemester 2005/06 Advanced Encryption Standard (AES) Rijndael Algorithmus Gruppe: C_gelb Thomas Boddenberg 11032925

Mehr

9 Rechnergestütze Blockchiffren

9 Rechnergestütze Blockchiffren 9 Rechnergestütze n 9.1 ata Encryption Standard (ES) 1977 von National Bureau of Standards (heute National Institute of Standards and Technology) genormt arbeitet auf bit-blöcken Schlüssel 5 bit + 8 bit

Mehr

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

Galoiskörper GF(2 n ) (Teschl/Teschl 4) Galoiskörper GF(2 n ) (Teschl/Teschl 4) auch Galois-Felder (englisch Galois elds), benannt nach Evariste Galois (18111832). Körper (in der Mathematik) allgemein: Zahlenbereich, in dem die vier Grundrechenarten

Mehr

8 Der Advanced Encryption Standard (AES)

8 Der Advanced Encryption Standard (AES) 127 Das momentan wohl bedeutendste symmetrische Verschlüsselungsverfahren ist der Advanced Encryption Standard (AES). Unter dem Namen Rijndael hat dieses Verfahren den Wettbewerb um die Nachfolge des DES

Mehr

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

Aufgabensammlung aus Mathematik 2 UMIT, SS 2010, Version vom 7. Mai 2010 Aufgabensammlung aus Mathematik 2 UMIT, SS 2, Version vom 7. Mai 2 I Aufgabe I Teschl / K 3 Zerlegen Sie die Zahl 8 N in ihre Primfaktoren. Aufgabe II Teschl / K 3 Gegeben sind die natürliche Zahl 7 und

Mehr

Designziele in Blockchiffren

Designziele in Blockchiffren Designziele in Blockchiffren Konstruiere Verschlüsselungsfunktion die sich wie eine zufällige Funktion verhalten soll. Konfusion: Verschleiern des Zusammenhangs zwischen Klartext und Chiffretext. Diffusion:

Mehr

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC)

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC) Übungen zu Architektur Eingebetteter Systeme Blatt 4 22.05.2009 Teil 1: Grundlagen 1.1: Grundlagen des Cyclic redundancy code (CRC) Im Gegensatz zum Parity-Check, der nur einfache Bit-Fehler erkennen kann,

Mehr

Der Advanced Encryption Standard (AES)

Der Advanced Encryption Standard (AES) Der Advanced Encryption Standard (AES) Prof. Dr. Rüdiger Weis TFH Berlin Sommersemester 2008 Geschichte des AES Die Struktur des AES Angriffe auf den AES Aktuelle Ergebnisse DerAdvanced Encryption Standard

Mehr

Lösung zur Klausur zu Krypographie Sommersemester 2005

Lösung zur Klausur zu Krypographie Sommersemester 2005 Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2

Mehr

Praktikum IT-Sicherheit

Praktikum IT-Sicherheit IT-Sicherheit Praktikum IT-Sicherheit - Versuchshandbuch - Aufgaben Kryptografie II In diesem zweiten Versuch zur Kryptografie gehen wir etwas genauer auf die Art und Weise der Verschlüsselung mit der

Mehr

WURZEL Werkstatt Mathematik Polynome Grundlagen

WURZEL Werkstatt Mathematik Polynome Grundlagen Die WURZEL Werkstatt Mathematik Polynome Grundlagen Wer lange genug über hunderten von Problemen gebrütet hat, kann bei vielen bereits erraten, aus welchem Land sie kommen. So lieben die Briten etwa die

Mehr

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

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005 Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005 Inhaltsverzeichnis Abelsche Gruppe 3 Kommutativer Ring 5 Körper 6 Endliche Körper 7 Endliche

Mehr

8. Advanced Encryption Standard

8. Advanced Encryption Standard 8. Advanced Encryption Standard von Maximilian Fischer Im Jahre 1997 rief das amerikanische National Institute of Standards and Technology, kurz NIST, einen Wettbewerb für einen neuen offenen Verschlüsselungsstandard

Mehr

Kryptografische Algorithmen

Kryptografische Algorithmen Kryptografische Algorithmen Lerneinheit 5: Weitere symmetrische Kryptosysteme Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2015/2016 21.9.2015 Einleitung Einleitung Diese

Mehr

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

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Krytographie Techniken Symmetrische Verschlüsselung( One-time Pad,

Mehr

IT-Sicherheit - Sicherheit vernetzter Systeme -

IT-Sicherheit - Sicherheit vernetzter Systeme - IT-Sicherheit - Sicherheit vernetzter Systeme - Kapitel 5: Symmetrische Kryptosysteme Helmut Reiser, LRZ, WS 09/10 IT-Sicherheit 1 Inhalt Symmetrische Kryptosysteme Data Encryption Standard (DES) Advanced

Mehr

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

Vorkurs für. Studierende in Mathematik und Physik. Einführung in Kryptographie Kurzskript 2015 Vorkurs für Studierende in Mathematik und Physik Einführung in Kryptographie Kurzskript 2015 Felix Fontein Institut für Mathematik Universität Zürich Winterthurerstrasse 190 8057 Zürich 11. September 2015

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Ä Johannes Buchmann Einführung in die Kryptographie Dritte, erweiterte Auflage Inhaltsverzeichnis 1. Einleitung 1 2. Ganze Zahlen 3 2.1 Grundlagen 3 2.2 Teilbarkeit 4 2.3 Darstellung ganzer Zahlen 5 2.4

Mehr

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

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo Kryptographische Verfahren zur Datenübertragung im Internet Patrick Schmid, Martin Sommer, Elvis Corbo 1. Einführung Übersicht Grundlagen Verschlüsselungsarten Symmetrisch DES, AES Asymmetrisch RSA Hybrid

Mehr

3. Diskrete Mathematik

3. Diskrete Mathematik Diophantos von Alexandria um 250 Georg Cantor 1845-1918 Pythagoras um 570 v. Chr Pierre de Fermat 1607/8-1665 Seite 1 Inhalt der Vorlesung Teil 3: Diskrete Mathematik 3.1 Zahlentheorie: Abzählbarkeit,

Mehr

Das Verschlüsseln verstehen

Das Verschlüsseln verstehen Das Verschlüsseln verstehen Kurz-Vorlesung Security Day 2013 Prof. (FH) Univ.-Doz. DI. Dr. Ernst Piller Kurzvorlesung "Das Verschlüsseln verstehen", Security Day 2013, Ernst Piller 1 Warum eigentlich Verschlüsselung

Mehr

DES der vergangene Standard für Bitblock-Chiffren

DES der vergangene Standard für Bitblock-Chiffren DES der vergangene Standard für Bitblock-Chiffren Klaus Pommerening Fachbereich Mathematik der Johannes-Gutenberg-Universität Saarstraße 1 D-55099 Mainz Vorlesung Kryptologie 1. März 1991, letzte Änderung:

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 8. Zufallszahlen Generatoren Anwendungen

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 8. Zufallszahlen Generatoren Anwendungen UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 8 Zufallszahlen Generatoren Anwendungen Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040

Mehr

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum: Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

4: Algebraische Strukturen / Gruppen

4: Algebraische Strukturen / Gruppen Stefan Lucks Diskrete Strukturen (WS 2009/10) 120 4: Algebraische Strukturen / Gruppen Definition 46 Sei G eine nichtleere Menge. Eine Funktion : G G G bezeichnen wir als Verknüpfung auf G. Das Paar (G,

Mehr

Das RSA Verfahren. Die Mathematik von RSA. Ganzzahl Arithmetik. Die Mathematik des RSA-Verfahrens

Das RSA Verfahren. Die Mathematik von RSA. Ganzzahl Arithmetik. Die Mathematik des RSA-Verfahrens Das RSA Verfahren Das RSA-Verfahren beruht auf Modulo-Arithmetik mit riesigen ganzen Zahlen und der Berechnung modularer Potenzen bei der Verschlüsselung. Die genaue Mathematik wird in den folgenden Kapiteln

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

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

Symmetrische Verschlüsselung. Blockchiffren, DES, IDEA, Stromchiffren und andere Verfahren Symmetrische Verschlüsselung Blockchiffren, DES, IDEA, Stromchiffren und andere Verfahren Symmetrische Verfahren Sender und Empfänger haben sich auf einen gemeinsamen Schlüssel geeinigt (geheim!!). Sender

Mehr

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

Name:... Vorname:... Matrikel-Nr.:... Studienfach:... Stefan Lucks Medien Bauhaus-Univ. Weimar Probeklausur Name:.............................. Vorname:........................... Matrikel-Nr.:....................... Studienfach:........................ Wichtige

Mehr

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

GF(2 2 ) Beispiel eines Erweiterungskörpers (1) GF(2 2 ) Beispiel eines Erweiterungskörpers (1) Im Kapitel 2.1 wurde bereits gezeigt, dass die endliche Zahlenmenge {0, 1, 2, 3} q = 4 nicht die Eigenschaften eines Galoisfeldes GF(4) erfüllt. Vielmehr

Mehr

Methoden der Kryptographie

Methoden der Kryptographie Methoden der Kryptographie!!Geheime Schlüssel sind die sgrundlage Folien und Inhalte aus II - Der Algorithmus ist bekannt 6. Die - Computer Networking: A Top außer bei security by obscurity Down Approach

Mehr

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

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr. Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr. Kurzweil Florian Franzmann André Diehl Kompiliert am 10. April 2006 um 18:33

Mehr

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen Algebra und Diskrete Mathematik, PS3 Sommersemester 2016 Prüfungsfragen Erläutern Sie die Sätze über die Division mit Rest für ganze Zahlen und für Polynome (mit Koeffizienten in einem Körper). Wodurch

Mehr

Advanced Encryption Standard

Advanced Encryption Standard Fakultät für Mathematik und Informatik (Fakultät ) Institut für Diskrete Mathematik und Algebra Lehrstuhl für Algebra Seminararbeit Advanced Encryption Standard Michael von Wenckstern Angewandte Mathematik

Mehr

Einführung in die Kryptographie - Multiple Choice Quiz

Einführung in die Kryptographie - Multiple Choice Quiz Technische Universität Darmstadt Einführung in die Kryptographie - Multiple Choice Quiz Oren Halvani. M.Sc. Inf ormatik. Matrikel N o. Disclaimer Um was für ein Dokument handelt es sich hier genau?. Im

Mehr

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

Der Advanced Encryption Standard (AES) und seine mathematischen Grundlagen Eine Einführung für Nichtmathematiker, Teil 1 Informatik > Der Advanced Encryption Standard (AES) WissenHeute Jg. 59 3/2006 Der Advanced Encryption Standard (AES) und seine mathematischen Grundlagen Eine Einführung für Nichtmathematiker, Teil 1 In

Mehr

Rijndael Nachfolger des DES

Rijndael Nachfolger des DES Schwerpunkt Rijndael Nachfolger des DES Der zukünftige Advanced Encryption Standard Michael Welschenbach Der symmetrische Blockverschlüsselungs-Algorithmus Rijndael von Joan Daemen und Vincent Rijmen wurde

Mehr

1 Potenzen und Polynome

1 Potenzen und Polynome 1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels

Mehr

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

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Ganzzahlige Division mit Rest

Ganzzahlige Division mit Rest Modulare Arithmetik Slide 1 Ganzzahlige Division mit Rest Für a,b Æ mit a b gibt es stets eine Zerlegung von a der Form a = q b+r mit 0 r b 1. Hierbei gilt q = a b (salopp formuliert: b passt q-mal in

Mehr

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)

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) Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May Mathias Herrmann, Alexander Meurer Lösungsblatt zur Vorlesung Kryptanalyse WS 2009/2010 Blatt 6 / 23. Dezember

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4

Mehr

Public-Key-Algorithmen WS2015/2016

Public-Key-Algorithmen WS2015/2016 Public-Key-Algorithmen WS2015/2016 Lernkontrollfragen Michael Braun Was bedeuten die kryptographischen Schutzziele Vertraulichkeit, Integrität, Nachrichtenauthentizität, Teilnehmerauthentizität, Verbindlichkeit?

Mehr

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

Wiederholung. Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES Wiederholung Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES Mathematische Grundlagen: algebraische Strukturen: Halbgruppe, Monoid,

Mehr

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

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

Mehr

Stichpunktezettel fürs Tutorium

Stichpunktezettel fürs Tutorium Stichpunktezettel fürs Tutorium Moritz und Dorian 11. November 009 1 Kleiner Fermat Behauptung. Seien a, b N relativ prim und b eine Primzahl. Dann ist a b 1 = 1. Beweis. Wir definieren die Funktion f

Mehr

9.2 Invertierbare Matrizen

9.2 Invertierbare Matrizen 34 9.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen

Mehr

A2.3 Lineare Gleichungssysteme

A2.3 Lineare Gleichungssysteme A2.3 Lineare Gleichungssysteme Schnittpunkte von Graphen Bereits weiter oben wurden die Schnittpunkte von Funktionsgraphen mit den Koordinatenachsen besprochen. Wenn sich zwei Geraden schneiden, dann müssen

Mehr

Zahlen und elementares Rechnen

Zahlen und elementares Rechnen und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3

Mehr

Einführung in die Kryptographie. 20.6.2011, www.privacyfoundation.ch

Einführung in die Kryptographie. 20.6.2011, www.privacyfoundation.ch Einführung in die Kryptographie 20.6.2011, www.privacyfoundation.ch Kryptographie Name kryptós: verborgen, geheim gráphein: schreiben Verschlüsselung Text so umwandeln, dass man ihn nur noch entziffern/lesen

Mehr

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

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Mit Python von Caesar zur Public-Key Kryptographie

Mit Python von Caesar zur Public-Key Kryptographie Mit Python von Caesar zur Public-Key Kryptographie Thomas Grischott KSS 30. Juni 2008 1 Die Caesarverschiebung Caesar hat Nachrichten an seine Feldherren verschlüsselt, indem er jeden Buchstaben um drei

Mehr

Berechnungen mit dem Horner-Schema

Berechnungen mit dem Horner-Schema Berechnungen mit dem Horner-Schema Das Hornerschema kann als Rechenhilfsmittel zur Berechnung von Funktionswerten von Polynomfunktionen, zur Faktorisieriung von Polynomen alternativ zur Polynomdivision

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Einführung in Computer Microsystems

Einführung in Computer Microsystems Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Tutorium Mathematik II, M Lösungen

Tutorium Mathematik II, M Lösungen Tutorium Mathematik II, M Lösungen März 03 *Aufgabe Bestimmen Sie durch Hauptachsentransformation Lage und Typ der Kegelschnitte (a) 3x + 4x x + 3x 4x = 0, (b) 3x + 4x x + 3x 4x 6 = 0, (c) 3x + 4x x +

Mehr

Vorkurs: Mathematik für Informatiker

Vorkurs: Mathematik für Informatiker Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 2016/17 Steven Köhler mathe@stevenkoehler.de mathe.stevenkoehler.de 2 c 2016 Steven Köhler Wintersemester 2016/17 Inhaltsverzeichnis Teil 1 Teil

Mehr

n ϕ n

n ϕ n 1 3. Teiler und teilerfremde Zahlen Euler (1707-1783, Gymnasium und Universität in Basel, Professor für Physik und Mathematik in Petersburg und Berlin) war nicht nur einer der produktivsten Mathematiker

Mehr

8 Komplexitätstheorie und Kryptologie

8 Komplexitätstheorie und Kryptologie 8 Komplexitätstheorie und Kryptologie Verschlüsselung, Authentisierung,... müssen schnell berechenbar sein. Formal: polynomiell zeitbeschränkte Funktionen/Algorithmen Angreifer hat beschränkte Ressourcen.

Mehr

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

1.3 Gruppen. Algebra I 9. April 2008 c Rudolf Scharlau, Algebra I 9. April 2008 c Rudolf Scharlau, 2002 2008 18 1.3 Gruppen Der Begriff der Gruppe ordnet sich in gewisser Weise dem allgemeineren Konzept der Verknüpfung (auf einer Menge) unter. So ist zum Beispiel

Mehr

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st Primzahlen Herbert Koch Mathematisches Institut Universität Bonn 12.08.2010 1 Die Primfaktorzerlegung Wir kennen die natürlichen Zahlen N = 1, 2,..., die ganzen Zahlen Z, die rationalen Zahlen (Brüche

Mehr

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen.

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen. Kapitel 4 Der RSA-Algorithmus Der RSA-Algorithmus ist das heute bekannteste Verfahren aus der Familie der Public-Key-Kryptosysteme. Es wurde 1978 der Öffentlichkeit vorgestellt und gilt bis heute als der

Mehr

Netzwerktechnologien 3 VO

Netzwerktechnologien 3 VO Netzwerktechnologien 3 VO Univ.-Prof. Dr. Helmut Hlavacs helmut.hlavacs@univie.ac.at Dr. Ivan Gojmerac gojmerac@ftw.at Bachelorstudium Medieninformatik SS 2012 Kapitel 8 - Netzwerksicherheit 8.1 Was ist

Mehr

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

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

3.6 Eigenwerte und Eigenvektoren

3.6 Eigenwerte und Eigenvektoren 3.6 Eigenwerte und Eigenvektoren 3.6. Einleitung Eine quadratische n n Matrix A definiert eine Abbildung eines n dimensionalen Vektors auf einen n dimensionalen Vektor. c A x c A x Von besonderem Interesse

Mehr

Lineare Differenzengleichungen und Polynome. Franz Pauer

Lineare Differenzengleichungen und Polynome. Franz Pauer Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck, Technikerstr. 13/7, A-600 Innsbruck, Österreich. Franz.Pauer@uibk.ac.at Vortrag beim ÖMG-LehrerInnenfortbildungstag

Mehr

Lineare Gleichungssysteme (Teschl/Teschl 11.1)

Lineare Gleichungssysteme (Teschl/Teschl 11.1) Lineare Gleichungssysteme (Teschl/Teschl.) Ein Lineares Gleichungssystem (LGS) besteht aus m Gleichungen mit n Unbekannten x,...,x n und hat die Form a x + a 2 x 2 +... + a n x n b a 2 x + a 22 x 2 +...

Mehr

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.

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. 4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst

Mehr

Lineare Gleichungen mit 2 Variablen

Lineare Gleichungen mit 2 Variablen Lineare Gleichungen mit 2 Variablen Lineare Gleichungen mit 2 Variablen sind sehr eng verwandt mit linearen Funktionen. Die Funktionsgleichung einer linearen Funktion f(x) = m x+q m: Steigung, q: y Achsenabschnitt

Mehr

Urbild Angriff auf Inkrementelle Hashfunktionen

Urbild Angriff auf Inkrementelle Hashfunktionen Urbild Angriff auf Inkrementelle Hashfunktionen AdHash Konstruktion: (Bellare, Micciancio 1997) Hashe Nachricht x = (x 1,..., x k ) als H(x) = k i=1 h(i, x i) mod M. Inkrementell: Block x i kann leicht

Mehr

Projekt u23 Symmetrische Kryptografie, Betriebsmodi von Blockchiffren

Projekt u23 Symmetrische Kryptografie, Betriebsmodi von Blockchiffren Symmetrische Kryptografie Betriebsmodi von Blockchiffren und was man sonst damit machen kann Martin e.v. https://koeln.ccc.de 12. Oktober 2015 Definition Krypto-System Tupel (M, C, K, E, D) Message, Ciphertext,

Mehr

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. 3 1384788374932954500363985493554603584759389 mod 28374618732464817362847326847331872341234 Wieso kann ein

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Definition, Rechenoperationen, Lineares Gleichungssystem

Definition, Rechenoperationen, Lineares Gleichungssystem Bau und Gestaltung, Mathematik, T. Borer Aufgaben / Aufgaben Matrizen Definition, Rechenoperationen, Lineares Gleichungssystem Lernziele - die Bezeichnung der Matrixelemente kennen und verstehen. - den

Mehr

II. Lineare Gleichungssysteme. 10 Matrizen und Vektoren. 52 II. Lineare Gleichungssysteme

II. Lineare Gleichungssysteme. 10 Matrizen und Vektoren. 52 II. Lineare Gleichungssysteme 52 II Lineare Gleichungssysteme II Lineare Gleichungssysteme 10 Matrizen und Vektoren 52 11 Der Gaußsche Algorithmus 58 12 Basen, Dimension und Rang 62 13 Reguläre Matrizen 66 14 Determinanten 69 15 Skalarprodukte

Mehr

Public-Key Kryptographie mit dem RSA Schema. Torsten Büchner

Public-Key Kryptographie mit dem RSA Schema. Torsten Büchner Public-Key Kryptographie mit dem RSA Schema Torsten Büchner 7.12.2004 1.Einleitung 1. symmetrische-, asymmetrische Verschlüsselung 2. RSA als asymmetrisches Verfahren 2.Definition von Begriffen 1. Einwegfunktionen

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,

Mehr

I. II. I. II. III. IV. I. II. III. I. II. III. IV. I. II. III. IV. V. I. II. III. IV. V. VI. I. II. I. II. III. I. II. I. II. I. II. I. II. III. I. II. III. IV. V. VI. VII. VIII.

Mehr

II. Grundlagen der Programmierung

II. Grundlagen der Programmierung II. Grundlagen der Programmierung II.1. Zahlenssteme und elementare Logik 1.1. Zahlenssteme 1.1.1. Ganze Zahlen Ganze Zahlen werden im Dezimalsstem als Folge von Ziffern 0, 1,..., 9 dargestellt, z.b. 123

Mehr

Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor du dir die Lösungen anschaust!

Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor du dir die Lösungen anschaust! Chr.Nelius: Zahlentheorie (SoSe 2016) 1 14. Aufgabenblatt ZAHLENTHEORIE (für Master G und HRG) Lösungen Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor

Mehr

WIEDERHOLUNG (BIS ZU BLATT 7)

WIEDERHOLUNG (BIS ZU BLATT 7) Universität Bielefeld SS 2016 WIEDERHOLUNG (BIS ZU BLATT 7) JULIA SAUTER Wir wiederholen, welche Aufgabentypen bis zu diesem Zeitpunkt behandelt worden sind. Auf der nächsten Seite können Sie sich selber

Mehr

DLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27

DLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27 DLP Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de Fachbereich Mathematik und Informatik ALZAGK SEMINAR Bremen, den 18. Januar 2011 1 / 27 Inhaltsverzeichnis 1 Der diskrete Logarithmus Definition

Mehr

Übungen zu Numerisches Programmieren

Übungen zu Numerisches Programmieren Technische Universität München SS 009 Institut für Informatik Prof. Dr. Thomas Huckle Michael Lieb, M. Sc. Dipl.-Tech. Math. Stefanie Schraufstetter Übungen zu Numerisches Programmieren 3. Programmieraufgabe

Mehr

Vorbereitungskurs Mathematik zum Sommersemester 2011 Tag 7

Vorbereitungskurs Mathematik zum Sommersemester 2011 Tag 7 Vorbereitungskurs Mathematik zum Sommersemester 2011 Tag 7 Timo Stöcker Erstsemestereinführung Informatik TU Dortmund 22. März 2011 Heute Themen Lineare Gleichungssysteme Matrizen Timo Stöcker https://fsinfo.cs.tu-dortmund.de/studis/ese/vorkurse/mathe

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Johannes Buchmann Einführung in die Kryptographie Fünfte Auflage ~ Springer Inhaltsverzeichnis 1. Einleitung... 1 2. Ganze Zahlen............................................. 3 2.1 Grundlagen... 3 2.2

Mehr

1 Algebraische Strukturen

1 Algebraische Strukturen Prof. Dr. Rolf Socher, FB Technik 1 1 Algebraische Strukturen In der Mathematik beschäftigt man sich oft mit Mengen, auf denen bestimmte Operationen definiert sind. Es kommt oft vor, dass diese Operationen

Mehr

KRYPTOSYSTEME & RSA IM SPEZIELLEN

KRYPTOSYSTEME & RSA IM SPEZIELLEN KRYPTOSYSTEME & RSA IM SPEZIELLEN Kryptosysteme allgemein Ein Kryptosystem ist eine Vorrichtung oder ein Verfahren, bei dem ein Klartext mithilfe eines Schlüssels in einen Geheimtext umgewandelt wird (Verschlüsselung)

Mehr

Jürgen Roth Didaktik der Linearen Algebra & Analytischen Geometrie

Jürgen Roth Didaktik der Linearen Algebra & Analytischen Geometrie Jürgen Roth Didaktik der Linearen Algebra und Analytischen Geometrie Modul 12a: Fachdidaktische Bereiche juergen-roth.de/lehre/did_linalg_anageo/ Kapitel 3: Modellieren & Angewandte Mathematik 3.1 Inhalte

Mehr

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

(Allgemeine) Vektorräume (Teschl/Teschl 9) (Allgemeine) Vektorräume (Teschl/Teschl 9) Sei K ein beliebiger Körper. Ein Vektorraum über K ist eine (nichtleere) Menge V, auf der zwei Operationen deniert sind, die bestimmten Rechenregeln genügen:

Mehr