i. 3 cryptages composés sommaire 1.composition de systèmes cryptographiques 2.cryptages par blocs...

35
I. 3 Cryptages composés

Upload: melisande-berry

Post on 03-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

I. 3Cryptages composés

I. 3Cryptages composés

Page 2: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Sommaire

1. Composition de systèmes cryptographiques

2. Cryptages par blocs et en chaîne

3. Cryptage de Feistel

4. Réalisation de cryptages

Page 3: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

1. Composition de systèmes cryptographiques

• Idée (Shannon) : sur-crypter crypter un cryptogramme

• Systèmes endomorphiques C = PS1 = < P, K1 ; E1 , D1 >

S2 = < P, K2 ; E2 , D2 >

• Composition de systèmes endomorphiquesS = S1 x S2 = < P, K ; E, D >

K = K1 x K2 K1 et K2 indépendants

E = E2 o E1 z = E2 (E1 (x, k1 ), k2 ) x, z P

D = D1 o D2 x = D1 (D2 (z, k’2 ), k’1 ) ki, k’i Ki

Page 4: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Propriétés

– Associativité (S1 x S2) x S3 = S1 x ( S2 x S3 )

toute composition endomorphique est associative

– Commutativité S1 x S2 = S2 x S1

toute composition endomorphique n’est pas commutative

– Idempotence S2 = S

beaucoup de compositions endomorphiques sont idempotentes

Page 5: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Itérations

– Sn est une itération de S si S idempotent, Sn n’a aucun intérêt

Exemples : substitutions, permutations si S n’est pas idempotent Sn offre plus de sécurité que S

Exemple : DES

• Propriété S1 et S2 idempotents et commutent S1 x S2 idempotentPreuve

(S1 x S2 ) x (S1 x S2 ) = S1 x ( S2 x S1 ) x S2 =

S1 x ( S1 x S2 ) x S2 = (S1 x S1 ) x (S2 x S2 ) = S1 x S2

Page 6: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

2. Cryptages par blocs et en chaîne

2.1 Cryptages par blocs

2.2 Cryptages en chaîne

Page 7: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

2.1 Cryptage par blocs

u = x1 x2 … P*

v = y1 y2… C*

yi = E (xi, k ) les mots successifs d’un même texte sont cryptés

de la même façon cryptanalyse facilitée

Eu v

k

Page 8: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

2.2 Cryptage en chaîne

zi = fi (k, x1, x2, …xi-1 )

yi = E (xi, zi)

on construit une suite de clefs de cryptage zi à partie de la clef initiale k et de la suite des messages en clair précédemment cryptés

E

f

x

y

z

k

Page 9: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Système cryptographique en chaîne

< P, C, K, L ; F, E, D >P, C, K : définitions habituellesL : alphabet de séquence de clefs

F = (f1, f2, …) générateur de séquence

fi : K x Pi-1 LE : P x L CD : C x L P

Page 10: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Exemple

P = C = K = L = Z26

z1 = k zi = fi (xi-1) i > 1

x P y C p,q K

E (xi, zi ) = xi + zi mod 26

D (yi, zi) = yi + zi mod 26

Page 11: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

3. Cryptage de Feistel

• PrincipeP = C = {0, 1 }n

K = {0, 1 }m

E : P x C x K P x CE (x, y, k) = (y, f (y, k) x )f est une fonction de composition de substitutions et

permutationsE utilise un y C et fournit un x PLe cryptage de Feistel est donc défini de façon itérative

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

Horst Feistel(1915-1990)

QuickTime™ et undécompresseur TIFF (non compressé)sont requis pour visionner cette image.QuickTime™ et undécompresseur TIFF (non compressé)sont requis pour visionner cette image.

Page 12: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Réalisation

x P texte en clair de départ

x = (L, R ) texte x scindé en 2

k = (k1, k2,…kr) calcul de clefs de ronde

L0 = L R0 = R cryptogramme initial

pour i = 1, 2,…r : rondes d’itération

(Li, Ri) = (Ri-1, f (Ri-1, ki ) Li-1 )

yi = (Li, Ri ) cryptogramme i

yL = Rr cryptogramme final

yR = Lr

Page 13: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Construction d’une ronde

Li-1Li-1 Ri-1Ri-1

kiki

LiLi RiRi

ff

++

(Li, Ri) = (Ri-1, f (Ri-1, ki ) Li-1 )(Li, Ri) = (Ri-1, f (Ri-1, ki ) Li-1 )

Page 14: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Décryptage

RiRi LiLi

kiki

Ri-1Ri-1 Li-1Li-1

ff

++

(Ri-1, Li-1) = (Li, f (Li, ki ) Ri )(Ri-1, Li-1) = (Li, f (Li, ki ) Ri )même circuit mais permutation de R & L

Page 15: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Principe de la fonction f

substitutionspermutations

P

codeur

décodeur

Page 16: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Construction d’un étage

E

S1 S2 S3 S8

P

Ri-1

ki

f(Ri-1, ki)

expansionf

Page 17: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Modes d’utilisation

– ECB Electronic Codebook Mode cryptage par blocs

– CBC Block Chaining Mode cryptage en chaîne

– CFB Cipher Feedback Mode clef modifiée par le cryptogramme

– OFB Output Feedback Mode clef modifiée par la sortie

Page 18: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

CBC Encryptage

IV = y0

x1

y1

xi

yi

Ek Ek

yi = Ek (xi yi-1)

Page 19: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

CBC Décryptage

IV = y0

x1

y1

xi

yi

Dk Dk

Dk (yi ) = xi yi-1

xi = Dk (yi ) yi-1

yi = Ek (xi yi-1)

Page 20: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

CFB Encryptage

IV = y0

x1

y1

xi

yi

Ek Ek

yi = xi Ek (yi-1)

Page 21: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

CFB Décryptage

IV = y0

x1

y1

xi

yi

Dk Dk

xi = Ek (yi-1) yi Dk = Ek xi = Dk (yi-1) yi

yi = xi Ek (yi-1)

Page 22: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

OFB Encryptage

IV = y0

x1

y1

xi

yi

Ek Ek

yi = Eki (y0) xi

Page 23: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

OFB Décryptage

IV = y0

x1

y1

xi

yi

Dk Dk

Dk = Ek xi = Dki (y0) yi

yi = Eki (y0) xi

Page 24: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Cryptanalyse

– force brute• essais systématique de toutes les clefs

– cryptogrammes uniquement • pas de solutions connues

– couples de messages en clair et cryptogrammes• cryptanalyse différentielle

– Biham et Shamir (1991)

• cryptanalyse linéaire– Matsui (1994)

QuickTime™ et undécompresseur TIFF (non compressé)sont requis pour visionner cette image.

Eli Biham

QuickTime™ et undécompresseur TIFF (non compressé)sont requis pour visionner cette image.

Adi Shamir

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

Page 25: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

4. Réalisations de cryptages

4.1 DES

4.2 IDEA

4.3 AES

Page 26: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

4.1 DES

• Data Encryption Standard– développé par IBM en 1970– normalisé par le NBS en 1977– basé sur le cryptage de Feistel– texte en clair et cryptogramme de 64 bits– composé de 19 étages

• 17 itérations (rondes)• 2 transpositions

– clefs de 56 bits• expansion de la clef pour les « rondes »

Page 27: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Cryptage

T

it1

it2

it16

Échange GD

T-1

transposition

Itérations de Feistel

transposition inverse

expa

nsio

n

64 bits

64 bits

clef

56 b

its

……………

lsb

msb

Page 28: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Décryptage

T

it1

it2

it16

Échange GD

T-1

transposition

Itérations de Feistel

transposition inverse

expa

nsio

n

64 bits

64 bits

clef

56 b

its

……………

msb

lsb

Page 29: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Triple DES

• Faiblesse de la clef de 56 bits• Compatibilité avec le DES

DES1 DES2 DES3

clef de 168 bits

clef k de 56 bitsk k k

Page 30: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

4.2 IDEA

• International Data Encryption Standard– Issu de PES Xueja Lai & James Massey

Proposed Encryption Standard 1990

– Censé résister à la cryptanalyse différentielle (faiblesse du DES)

– Utilisé pour• PGP Pretty Good Privacy

• openSSL Secure Socket Level

Page 31: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Principe

– Cryptage par blocs de 64 bits

– Clefs de 128 bits

– Cryptage itératif en 8 « rondes »

– Utilisation d’opérations simples à câbler• addition modulo 2 • addition modulo 16

• produit modulo 216 + 1 +

Page 32: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Une « ronde »

+

+

+ +

+ +

+ +

+

+

x1 x2 x3 x4

y1 y2 y3 y4

k1 k2 k3 k4

k5

k6

Page 33: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Cryptage

it1

it2

it8

+ + k1 k2 k3 k4

4 x 16 bits

4 x 16 bits

…………………………

Page 34: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

4.3 AES

• Advanced Encryption Standard– Appel d’offres lancé par le NIST en 1997

• National Institute of Standards and Technology

pour remplacer le DES et résister aux

cryptanalyse différentielle

cryptanalyse linéaire

– Choix d’AES le 2 Octobre 2000

– Auteurs Daemen & Rijndael

Page 35: I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs et en chaîne 3.Cryptage de Feistel 4.Réalisation de

Principe

• Cryptage de blocs de 32 bits– Opérations définies au niveau de l’octet

• octet : élément du corps de Galois F28

• F28 : polynômes dans F2 modulo 1+x+x3+x4+x8

• mot : polynôme à coefficients dans F28

• mot de 32 bits : polynôme modulo x4+1

• Produit défini modulo x4+1 par a(x) tel que

p(x) = a(x) mod (x4+1) inversible