Analyse kryptographischer Algorithmen: CAST-128 / 256

Ähnliche Dokumente
Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil

A B C DB E C F D B CB C F AA DB FF C D B E C F D B CB C F AA DB D DB C DD B E C F D B CB C F AA DB D B B B B AF C B


PHOTOVOLTAIK PREISLISTE 1/2012. Fachgroßhandel für Photovoltaik PV-Equipment und Services

ABC DB DE F F EB BE C EF CF E F F F FF C EF E

Erinnerung Blockchiffre

Erinnerung Blockchiffre

Erinnerung Blockchiffre

4.6.1 Mathematische Grundlagen

Data Encryption Standard

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

/-010 2% 3%.-&"(2#( 4#5% 6077## 7 8$$04%27.0& 905$0& :0;+

Die (Un-)Sicherheit von DES

Endgültige Gruppeneinteilung Kohorte Innere-BP Sommersemester 2016 (Stand: )

Analyse Kryptographischer Algorithmen: KRYPTON & TWOFISH

Netzwerktechnologien 3 VO

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

Die (Un-)Sicherheit von DES

4: Blockchiffren. Klartexte (n bit) Chiffretexte. VERschlüsseln. ENTschlüsseln. Stefan Lucks Kryptographie und Mediensicherheit (2017)

Vorlesung Sicherheit

AB CDE CFB F AF C CFB F F F C A BCDEF C CEA D A D C F C EF A

6 Der Advanced Encryption Standard (AES)

Anfertigung von Hüllen nach Maß oder Modellangabe

Elemente der Mathematik - Sommer 2016

Güterkontrollverordnung - Listenrevision Mai 2017: Überblick über die Änderungen (unverbindliche Fassung)

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 11

Euklides: Stoicheia (Euklids Elemente)

Wasser da$ \sie Ö{se. Maße hei# Schluss-$: $ an Stelle des $ kurzer Anstrich für \s: \ an Stelle des \ langer Anstrich für {s: { an Stelle des {

9.5 Blockverschlüsselung

Algorithmische Anwendungen

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren

Das Verschlüsseln verstehen

+,! %(! + )! " -.. ) %+ " / " & (, $. $ %

Verzeichnis der Farbklimata

MLB Charity Fashion Show

Vorlesung Sicherheit

Unverbindlicher Überblick über die Änderungen der Anhänge 1 und 2 Güterkontrollverordnung (GKV; SR )

ABCC D D D FD F D B D D FD D D B F D CC E D D D D D D C D

Kapitel 9: Kryptographie: DES. Java SmartCards, Kap. 9 (1/19)

Die Befehle mit dem Ziel IP sind nichts anderes als Sprungbefehle, sie sind unten noch mal aufgeführt.

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

IT-Sicherheit Kapitel 2 Symmetrische Kryptographie

Kryptographie und Komplexität

IT-Sicherheit: Kryptographie

ech Spezifikation für das System Versichertenkarte Offline Card-to-Card Authentication and Authorization

9 Rechnergestütze Blockchiffren

Niedersachsen. Statistische Berichte. Niedersachsen. Personal im öffentlichen Dienst am 30. Juni L III 2 j / 08. Landesamt für Statistik

IT-Sicherheitsmanagement Teil 7: Symmetrische Verschlüsselung

IT-Security. Teil 12: Symmetrische Verschlüsselung

Inhaltsverzeichnis. Wolfgang Ertel. Angewandte Kryptographie. ISBN (Buch): ISBN (E-Book):

3.1.1 Satz: (sws) Zwei Dreiecke sind kongruent, wenn sie ï

Kryptographie I Symmetrische Kryptographie

Großer Beleg. Arithmetische Optimierung eines kryptographischen Algorithmus für moderne FPGA-Architekturen. Peter Heinzig. 17.

Vorlesung Sicherheit

Designziele in Blockchiffren

Algorithmische Anwendungen Prof. Dr. Heinrich Klocke

A BCDAEBC A B C DE FF C F A F. Durchgeführt von:

Chaos-based Image Encryption

Folie 1. Kryptographie

VI. Public-Key Kryptographie

Grundlagen der Verschlüsselung und Authentifizierung (1)

Einführung in die Kryptographie

Bezeichnung: Universal Relais Modbus Protokoll Beschreibung. EA-Nr.: 1451 Ersatz für: Blatt: 1 von 9

Klassische Verschlüsselungsverfahren

EINIGE GRUNDLAGEN DER KRYPTOGRAPHIE

IT-Sicherheitsmanagement Teil 11: Symmetrische Verschlüsselung

Überblick über die Änderungen im Anhang I durch die Delegierte Verordnung (EU) Nr. 2017/xxxx der Kommission (unverbindliche Fassung)

Kapitel 7: Kryptographische Hash- Funktionen. IT-Sicherheit

Kryptographie für CTFs

Übung Datenbanksysteme Normalformen

7!, !" #$% & "'()* + '!! > 05 ;$ $?% 3 ;"?% 1 ;, 6 % &' % 8? + 02 ( )*+ " 51 $'8 6 $'A 0 BC%% 0 $', 3 D 005 C 0306 :,; !

Basis Dreieck 2. x = = y. 14 = y. x = = y. x = x = 28. x = 45. x = x = = 2.1+x y = 2.

Überblick über die Änderungen im Anhang I durch die Delegierte Verordnung (EU) Nr. 2015/2420 der Kommission (unverbindliche Fassung)

CIE L*a*b* Lab-Farbwerte

A B C CD B C A ABCDE EF C C A A A B D C EF C C

Kryptografische Algorithmen

!"#$%&'()$ "* +,-./*

Transkript:

Analyse kryptographischer Algorithmen: CAST-128 / 256 Roland Stigge stigge@informatik.hu-berlin.de http://www.informatik.hu-berlin.de/~stigge/ Humboldt Universität zu Berlin 8. Mai 2002

Analyse kryptographischer Algorithmen CAST: Überblick Einführung Geschichte Eigenschaften Algorithmus Analyse Roland Stigge 1

Einführung Blockchiffre CAST Design Procedure CAST-256: AES-Kandidat nicht in Endauswahl Roland Stigge 2

Geschichte Carlisle Adams ( CA ), Entrust Inc., Kanada Stafford Tavares ( ST ), Queens University Kingston, Kanada 1992: CAST-1 1995: CAST-5 = CAST-128 1997: CAST-6 = CAST-256 ( AES, 1998) Roland Stigge 3

Geschichte (2) Beide: international freigegeben, offengelegt CAST-128: RFC2144, CAST-256: RFC2612 kommerziell / nicht kommerziell CAST-128 in PGP 5+ Bruce Schneier (1998): I give a big yuk to CAST-128. Roland Stigge 4

Eigenschaften: CAST-128 Ähnlichkeit: DES, Blowfish SPN (Substitution-Permutation-Network) Produktalgorithmus (Runden) Feistel-Netzwerk Resistenz gegen: lineare differentielle related-key Kryptoanalysis Roland Stigge 5

Eigenschaften: CAST-128 (2) Blockgröße: 64 bits Schlüsselgröße: 40 bis 128 bits (8-bit Schritte) Runden: 16 (kleine Schlüssel: 12) SAC (Strict Avalanche Criterion) BIC (Bit Independence Criterion) No-Complementation -Eigenschaft (DES: nicht) Roland Stigge 6

Eigenschaften: CAST-128 (3) keine schwachen Schlüssel keine semi-schwachen Schlüssel Entschlüsselung wie Verschlüsselung (bis auf Key-Schedule) Performanz: 3,3 MByte/sec (150 MHz Pentium) Roland Stigge 7

Eigenschaften: CAST-128 (4) 8 Substitutions-Boxen (S-Boxen): Nicht-Linearität: 74 Maximum bei Differenzen-Verteilung von 2 Operationsmix: XOR, Addition, Subtraktion verschiedene Reihenfolge mehrere Rundenfunktionen gegen lin./diff./hod Angriffe Roland Stigge 8

Eigenschaften: CAST-256 Basiert auf CAST-128: Rundenfunktionen S-Boxen S 1 bis S 4 Schlüsselmix Operationsmix Roland Stigge 9

Eigenschaften: CAST-256 (2) Schlüsselgrößen: 128, 160, 192, 224, 256 Bits Blockgröße: 128 Bits Rundenschlüssel durch Verschlüsselung 48 Runden: 12 Vierer-Runden erweitertes ( unvollständiges ) Feistel-Netzwerk: Roland Stigge 10

Feistel-Netzwerk (Eigenschaften: CAST-256) Roland Stigge 11

Algorithmus: CAST-128 Def.: Rundenfunktion(en) f: Z 2 32 Z 2 32: Typ 1: I = ((k mi + D) k ri ) f 1 = ((S 1 [I a ] S 2 [I b ]) S 3 [I c ]) + S 4 [I d ] Typ 2: I = ((k mi D) k ri ) f 2 = ((S 1 [I a ] S 2 [I b ]) + S 3 [I c ]) S 4 [I d ] Typ 3: I = ((k mi D) k ri ) f 3 = ((S 1 [I a ] + S 2 [I b ]) S 3 [I c ]) S 4 [I d ] Typ n: Bei Runde r mit r n (mod 3) Roland Stigge 12

Algorithmus: CAST-128 (2) 1. Eingabe: Klartext m 1 m 64, Schlüssel k = k 1 k 128 2. Rundenschlüsselgenerierung: k mi (Maske, 32 bits), k ri (Rotation, 5 bits) für jede Runde i (abh. von k) 3. (L 0, R 0 ) (m 1 m 64 ) d.h. L 0 (m 1 m 32 ) und R 0 (m 33 m 64 ) 4. 16 Runden: L i = R i 1 und R i = L i 1 f(r i 1, k mi, k ri ) für alle i {1,..., 16} (Typ von f hängt von i ab) 5. Ausgabe: Kryptotext c 1 c 64 (R 16, L 16 ) d.h. noch eine Vertauschung Roland Stigge 13

Algorithmus: CAST-128 (3) Entschlüsselung: Gleicher Algorithmus, nur Schlüssel in umgekehrter Reihenfolge ((R 16, L 16 ) (L 0, R 0 )) 8 S-Boxen: 4 für Rundenfunktionen (S 1,..., S 4 ) 4 für (einmalige) Schlüsselgenerierung (S 5,..., S 8 ) jew. 8x32 : Lookup-Table von 2 8 x 32bits Roland Stigge 14

Algorithmus: CAST-128 (4) - Beispiel: S-Box S 1 30fb40d4 9fa0ff0b 6beccd2f 3f258c7a 1e213f2f 9c004dd3 6003e540 cf9fc949 bfd4af27 88bbbdb5 e2034090 98d09675 6e63a0e0 15c361d2 c2e7661d 22d4ff8e 28683b6f c07fd059 ff2379c8 775f50e2 43c340d3 df2f8656 887ca41a a2d2bd2d a1c9e0d6 346c4819 61b76d87 22540f2f 2abe32e1 aa54166b 22568e3a a2d341d0 66db40c8 a784392f 004dff2f 2db9d2de 97943fac 4a97c1d8 527644b7 b5f437a7 b82cbaef d751d159 6ff7f0ed 5a097a1f 827b68d0 90ecf52e 22b0c054 bc8e5935 4b6d2f7f 50bb64a2 d2664910 bee5812d b7332290 e93b159f b48ee411 4bff345d fd45c240 ad31973f c4f6d02e 55fc8165 d5b1caad a1ac2dae a2d4b76d c19b0c50 882240f2 0c6e4f38 a4e4bfd7 4f5ba272 564c1d2f c59c5319 b949e354 b04669fe b1b6ab8a c71358dd 6385c545 110f935d 57538ad5 6a390493 e63d37e0 2a54f6b3 3a787d5f 6276a0b5 19a6fcdf 7a42206a 29f9d4d5 f61b1891 bb72275e aa508167 38901091 c6b505eb 84c7cb8c 2ad75a0f 874a1427 a2d1936b 2ad286af aa56d291 d7894360 425c750d 93b39e26 187184c9 6c00b32d 73e2bb14 a0bebc3c 54623779 64459eab 3f328b82 7718cf82 59a2cea6 04ee002e 89fe78e6 3fab0950 325ff6c2 81383f05 6963c5c8 76cb5ad6 d49974c9 ca180dcf 380782d5 c7fa5cf6 8ac31511 35e79e13 47da91d0 f40f9086 a7e2419e 31366241 051ef495 aa573b04 4a805d8d 548300d0 00322a3c bf64cddf ba57a68e 75c6372b 50afd341 a7c13275 915a0bf5 6b54bfab 2b0b1426 ab4cc9d7 449ccd82 f7fbf265 ab85c5f3 1b55db94 aad4e324... Roland Stigge 15

Algorithmus: CAST-128 (5) bei k 80 nur 12 statt 16 Runden falls k < 128, so k neu := 2 128 k k Für Schlüsselgenerierung (k mi und k ri ): Seien im folgenden x 0,..., x 15 (Bytes) Kopie von k z 0,..., z 15 temporäre Bytes k mi = 32-Bit-Werte k ri = 32-Bit berechnet, aber nur 5 Bit verwendet Roland Stigge 16

Algorithmus: CAST-128 (6) Schlüsselgenerierung: z 0 z 1 z 2 z 3 = x 0 x 1 x 2 x 3 S 5 [x 13 ] S 6 [x 15 ] S 7 [x 12 ] S 8 [x 14 ] S 7 [x 8 ] z 4 z 5 z 6 z 7 = x 8 x 9 x 10 x 11 S 5 [z 0 ] S 6 [z 2 ] S 7 [z 1 ] S 8 [z 3 ] S 8 [x 10 ] z 8 z 9 z 10 z 11 = x 12 x 13 x 14 x 15 S 5 [z 7 ] S 6 [z 6 ] S 7 [z 5 ] S 8 [z 4 ] S 5 [x 9 ] z 12 z 13 z 14 z 15 = x 4 x 5 x 6 x 7 S 5 [z 10 ] S 6 [z 9 ] S 7 [z 11 ] S 8 [z 8 ] S 6 [x 11 ] k m1 = S 5 [z 8 ] S 6 [z 9 ] S 7 [z 7 ] S 8 [z 6 ] S 5 [z 2 ] k m2 = S 5 [z 10 ] S 6 [z 11 ] S 7 [z 5 ] S 8 [z 4 ] S 6 [z 6 ] k m3 = S 5 [z 12 ] S 6 [z 13 ] S 7 [z 3 ] S 8 [z 2 ] S 7 [z 9 ] k m4 = S 5 [z 14 ] S 6 [z 15 ] S 7 [z 1 ] S 8 [z 0 ] S 8 [z 12 ]. Roland Stigge 17

Algorithmus: CAST-256 Def.: β = (ABCD) 128-Bit-Block; A,..., D jew. 32 Bits C = C f 1 (D, k r (i) 0, k m (i) 0 ) Def.: β Q i (β) gdw. Def.: β Q i (β) gdw. B = B f 2 (C, k (i) r 1, k (i) m 1 ) A = A f 3 (B, k (i) r 2, k (i) m 2 ) D = D f 1 (A, k (i) r 3, k (i) m 3 ) D = D f 1 (A, k (i) r 3, k (i) m 3 ) A = A f 3 (B, k (i) r 2, k (i) m 2 ) B = B f 2 (C, k (i) r 1, k (i) m 1 ) C = C f 1 (D, k (i) r 0, k (i) m 0 ) Roland Stigge 18

Algorithmus: CAST-256 (2) Q = Vorwärts-Vierer-Runde Q = Rückwärts-Vierer-Runde Def.: k (i) r Def.: k (i) m = {k (i) r 0, k (i) r 1, k (i) r 2, k (i) r 3 } = {k (i) m 0, k (i) m 1, k (i) m 2, k (i) m 3 } Roland Stigge 19

Algorithmus: CAST-256 (3) Def.: κ = (ABCDEF GH) 256-Bit-Schlüssel; A,..., H jew. 32 Bits G = G f 1 (H, t (i) r 0, t (i) m 0 ) Def.: κ ω i (κ) gdw. ω = Vorwärts-Oktave F = F f 2 (G, t (i) r 1, t (i) m 1 ) E = E f 3 (F, t (i) r 2, t (i) m 2 ) D = D f 1 (E, t (i) r 3, t (i) m 3 ) C = C f 2 (D, t (i) r 4, t (i) m 4 ) B = B f 3 (C, t (i) r 5, t (i) m 5 ) A = A f 1 (B, t (i) r 6, t (i) m 6 ) H = H f 2 (A, t (i) r 7, t (i) m 7 ) Roland Stigge 20

Algorithmus: CAST-256 (4) Def.: k (i) r κ gdw. k r (i) 0 = LSB(5, A) k r (i) 1 = LSB(5, C) k r (i) 2 = LSB(5, E) k r (i) 3 = LSB(5, G) Def.: k (i) m κ gdw. k m (i) 0 = H k m (i) 1 = F k m (i) 2 = D k m (i) 3 = B Roland Stigge 21

Algorithmus: CAST-256 (5) Die Verschlüsselung ansich: 1: Eingabe: β = 128-Bit-Klartextblock 2: for i = 0 to 5 do 3: β Q i (β) 4: end for 5: for i = 6 to 11 do 6: β Q i (β) 7: end for 8: Ausgabe: 128-Bit-Kryptotextblock = β Entschlüsselung: s.o. mit umgekehrter Reihenfolge der Schlüssel k r (i) und k m (i) Roland Stigge 22

Algorithmus: CAST-256 (6) Rundenschlüsselberechnung: Initialisierung 1: c m = 2 30 2 = 5A827999 16 2: m m = 2 30 3 = 6ED9EBA1 16 3: c r = 19 4: m r = 17 5: for i = 0 to 23 do 6: for j = 0 to 7 do 7: t (i) m j = c m 8: c m = (c m + m m ) mod 2 32 9: t (i) r j = c r 10: c r = (c r + m r ) mod 32 11: end for 12: end for Roland Stigge 23

Algorithmus: CAST-256 (7) falls k < 256, so k neu := 2 256 k k Rundenschlüsselberechnung: 1: κ = ABCDEF GH = 256-Bit-Primär-Schlüssel k 2: for i = 0 to 11 do 3: κ ω 2i (κ) 4: κ ω 2i+1 (κ) κ 6: k m (i) κ 7: end for 5: k (i) r Roland Stigge 24

Analyse: Allgemein 10 Jahre Entwicklung (1998) keine praxisrelevanten (veröff.) Angriffe bis 6 Runden, vereinfachte Bedingungen (keine Rotation, nur XOR): non-surjective attacks HOD attacks denn: erst nach 7 Runden ist jedes Ausgabebit von jedem Eingabebit abhängig ( non-degeneracy property ) alle Schlüssel verwendbar, da keine schwachen oder semi-schwachen Schlüssel bekannt Roland Stigge 25

Analyse: Allgemein (2) Mögliche, bisher erfolglose, Angriffe: Ciphertext Only Attack Known Plaintext Attack, Lineare Kryptoanalysis Chosen Plaintext Attack, Differentielle Kryptoanalysis Chosen Key Attack Roland Stigge 26

Analyse: Allgemein (3) Related Key Attack Higher Order Differential (HOD) Attack Non Surjective Attack Combination Attack Roland Stigge 27

Analyse: CAST-128 Gute Speicher- / Zeitkomplexität gleiche Performanz bei allen Schlüsselgrößen Roland Stigge 28

Analyse: CAST-256 Erbt Sicherheit des Vorgängers spart Speicherplatz (4KBytes von 4 S-Boxen) 2/3 der Geschwindigkeit des Vorgängers kaum halb so schnell wie Rijndael Transparenz: Feistel-Netzwerk gut verständlich Roland Stigge 29

Literatur [1] Carlisle Adams: The CAST-256 Encryption Algorithm (Teil der AES-Bewerbung), Juni 1998 http://www.entrust.com/resources/pdf/cast-256.pdf [2] C. Adams, Entrust Technologies: RFC2144 - The CAST-128 Encryption Algorithm, Mai 1997 http://www.ietf.org/rfc/rfc2144.txt [3] C. Adams, J. Gilchrist: RFC2612 - The CAST-256 Encryption Algorithm, Juni 1999 http://www.ietf.org/rfc/rfc2612.txt [4] C. Adams: Constructing Symmetric Ciphers using the CAST Design Procedure http://www.entrust.com/resources/pdf/cast.pdf [5] C. Adams: CAST-256 - A Submission for the Advanced Encryption Standard (Folien), August 1998 http://csrc.nist.gov/encryption/aes/round1/conf1/cast-slides.pdf [6] Adams, Heys, Tavares, Wiener: An Analysis of the CAST-256 Cipher http://www.engr.mun.ca/~howard/papers/cast256.ps Roland Stigge 30

Schluß Vielen Dank für die Aufmerksamkeit! Fragen? Roland Stigge 31