I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs...

Post on 03-Apr-2015

103 views 0 download

Transcript of I. 3 Cryptages composés Sommaire 1.Composition de systèmes cryptographiques 2.Cryptages par blocs...

I. 3Cryptages composés

I. 3Cryptages 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 cryptages

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

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

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

2. Cryptages par blocs et en chaîne

2.1 Cryptages par blocs

2.2 Cryptages en chaîne

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

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

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

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

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.

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

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 )

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

Principe de la fonction f

substitutionspermutations

P

codeur

décodeur

Construction d’un étage

E

S1 S2 S3 S8

P

Ri-1

ki

f(Ri-1, ki)

expansionf

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

CBC Encryptage

IV = y0

x1

y1

xi

yi

Ek Ek

yi = Ek (xi yi-1)

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)

CFB Encryptage

IV = y0

x1

y1

xi

yi

Ek Ek

yi = xi Ek (yi-1)

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)

OFB Encryptage

IV = y0

x1

y1

xi

yi

Ek Ek

yi = Eki (y0) xi

OFB Décryptage

IV = y0

x1

y1

xi

yi

Dk Dk

Dk = Ek xi = Dki (y0) yi

yi = Eki (y0) xi

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.

4. Réalisations de cryptages

4.1 DES

4.2 IDEA

4.3 AES

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 »

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

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

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

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

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 +

Une « ronde »

+

+

+ +

+ +

+ +

+

+

x1 x2 x3 x4

y1 y2 y3 y4

k1 k2 k3 k4

k5

k6

Cryptage

it1

it2

it8

+ + k1 k2 k3 k4

4 x 16 bits

4 x 16 bits

…………………………

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

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