introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/crypto3/block...comme...

34
Les algorithmes de chiffrement par blocs Introduction au chiffrement par blocs A. Bonnecaze (I2M) Cryptographic primitives 2014 1 / 33

Upload: others

Post on 20-Apr-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Introduction au chiffrement par blocs

A. Bonnecaze (I2M) Cryptographic primitives 2014 1 / 33

Page 2: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Block ciphers

Un système de chiffrement par bloc chiffre des blocs d’une taille donnée (nbits) et retourne des blocs de la même taille. La clé peut être réutilisée

Principaux systèmes :DES n = 64 bits, key size : 56 bits3DES n = 64 bits, key size : 112 or 168 bitsAES n = 128 bits, key size : 128, 192 or 256 bits

A. Bonnecaze (I2M) Cryptographic primitives 2014 2 / 33

Page 3: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Petit historique

IBM, 1971 : Lucifer, algorithme de chiffrement conçu par Horst Feistel.La NSA modifie Lucifer pour en faire DES le standard de chiffrement duNIST en 1976. Actuellement DES n’est pas sûr :

la clé est trop petiteIl existe des attaques sur DES

3-DES (Walter Tuchman) enchaîne 3 applications successives de DES,avec 2 ou 3 clés. Encore utilisé mais lent.Appel d’offre en 1997 remporté (sur 15 propositions) par Rijndael (JoanDaemen et Vincent Rijmen, 2 Belges). Rijndael devient AES le standarddu NIST en 2001.

Publié en tant que FIPS 197N’utilise pas un schéma de FeistelBlock size : 128 bits ; key size : 128, 192, 256

A. Bonnecaze (I2M) Cryptographic primitives 2014 3 / 33

Page 4: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Comparatif d’efficacité

Chiffrement clé (bits) Vitesse (Mbs)

DES 56 213-DES 112 10AES 128 61

RC4 variable 113

A. Bonnecaze (I2M) Cryptographic primitives 2014 4 / 33

Page 5: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Iterated encryption

Tour (Round en anglais)

Une tour correspond à une transformation qui dépend d’une sous-clésupposons que le nombre de tours est λà partir de la clé k , on construit λ sous-clés ski

on applique sur le bloc la transformation avec sk1

puis on l’applique avec sk2

on repete l’opération λ fois

Le nombre de tours dépend de la sécurité voulue. Généralement plus il y a detours, plus la sécurité est grande.

A. Bonnecaze (I2M) Cryptographic primitives 2014 5 / 33

Page 6: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Propriétés pour un chiffrement sûr (Shannon)

Confusion

Chaque bit du chiffré doit avoir des relations hautement non linéaires avecles bits du clair et de la clé.Beaucoup de systèmes de chiffrement utilisent des substitutions pour obtenirla confusion (S-box)

DiffusionChaque bit du clair ou de la clé affecte beaucoup de bits du chiffré.Beaucoup de systèmes de chiffrement utilisent des permutations pour obtenirla diffusion.

Beaucoup de systèmes de chiffrement utilisent des schémas de Fesitel,comme DES, Blowfish, CAST-128, 3DES, RC5, ...

AES est construit différemment.

A. Bonnecaze (I2M) Cryptographic primitives 2014 6 / 33

Page 7: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Feistel cipher

2-rounds Feistel

A. Bonnecaze (I2M) Cryptographic primitives 2014 7 / 33

Page 8: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

DES description : 16 rounds

A. Bonnecaze (I2M) Cryptographic primitives 2014 8 / 33

Page 9: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

DES round description

A. Bonnecaze (I2M) Cryptographic primitives 2014 9 / 33

Page 10: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

DES Permutation initiale

58 50 42 34 26 18 10 02 60 52 44 36 28 20 12 04 62 54 46 38 30 22 14 06 6456 48 40 32 24 16 08 57 49 41 33 25 17 09 01 59 51 43 35 27 19 11 03 61 5345 37 29 21 13 05 63 55 47 39 31 23 15 07

Le bit de la 58eme position est mis en première position, celui de la 50èmeest mis en deuxième, etc

A. Bonnecaze (I2M) Cryptographic primitives 2014 10 / 33

Page 11: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

DES expension permutation E

Pour construire la permutation, les groupes de 4 bits sont étendus à 6 bits

1 2 3 4 5 6 7 8 9 10 11 1232 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13

On obtient :

32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 2120 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1

A. Bonnecaze (I2M) Cryptographic primitives 2014 11 / 33

Page 12: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Substitution Functions (S-Boxes)

S-box S1

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 150: 14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 071: 00 15 07 04 14 02 13 01 10 06 12 11 09 05 03 082: 04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 003: 15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13

Suppose input = 101110row = 10 = 2 , column = 0111 = 7output = 11 (eleven) = 1011Then 101110 is replaced by 1011

A. Bonnecaze (I2M) Cryptographic primitives 2014 12 / 33

Page 13: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

Other known block ciphers

Blowfish, Twofish - Bruce Schneier et al.CAST - Entrust - S-boxes not fixedFEAL - more complex per round than DES so fewer rounds - FEAL-4,FEAL-8 brokenGOST - Soviet "DES" std with 256-bit keys, 32 roundsIDEA - 128-bit keys, PGP used in early versionsRC2 - "Ron’s code" (Ron Rivest), variable size keyRC5 - variable size keyRC6 - candidate for AESSkipjack - 80-bit key, 32 rounds, NSA initially classified

A. Bonnecaze (I2M) Cryptographic primitives 2014 13 / 33

Page 14: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

AES, new standard

1997 : NIST publishes request for proposal15 submissionsJoan Daemen and Vincent Rijmen (Belgium) propose Rijndeal2001 : NIST chooses Rijndeal as AES (FIPS 197)Block size : 128 bits, key sizes : 128, 192, 256Does not use FeistelBlocks are matrices of elements of F256

To be used until about 2030

A. Bonnecaze (I2M) Cryptographic primitives 2014 14 / 33

Page 15: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

AES description

A. Bonnecaze (I2M) Cryptographic primitives 2014 15 / 33

Page 16: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Les algorithmes de chiffrement par blocs

AES description

quelles sont les transformations qui assurent la confusion ?

quelles sont les transformations qui assurent la diffusion ?

A. Bonnecaze (I2M) Cryptographic primitives 2014 16 / 33

Page 17: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

Mode de chiffrement (Encryption mode)

DES, AES, ... chiffrent des blocs de taille donnéeComment chiffrer un fichier de taille arbitraire ?Diviser le fichier en blocs de même taille et chiffrer chaque blocLa manière de traiter ces blocs s’appelle le mode de chiffrementPlusieurs modes existent : ECB, CBC, CTR, GCM,...Utiliser la même clé pour tous les blocsLe choix du mode est important pour des raisons de sécurité etd’efficacité

A. Bonnecaze (I2M) Cryptographic primitives 2014 17 / 33

Page 18: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

ECB mode

Remark : Same plaintext blocks give the same ciphertext blocks

A. Bonnecaze (I2M) Cryptographic primitives 2014 18 / 33

Page 19: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

ECB mode

A. Bonnecaze (I2M) Cryptographic primitives 2014 19 / 33

Page 20: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

ECB mode : blocs rejoués

Message standard pour transfert d’argent

Banque A : émettrice 15 blocsBanque B : bénéficiaire 15 blocsNom déposant : 6 blocsN. compte du déposant : 2 blocsMontant du dépôt : 1 blocDatation : 1 bloc

Martin écoute, transfère plusieurs fois 100$, essaie de trouver des blocsidentiques, rejoue ces blocs

Martin écoute et extrait les blocs correspondant à son nom, N. compte et lesremplace dans les messages de transfert

A. Bonnecaze (I2M) Cryptographic primitives 2014 20 / 33

Page 21: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

CBC mode

- IV must be random- Cannot be parallelized- Padding (PKCS7)

A. Bonnecaze (I2M) Cryptographic primitives 2014 21 / 33

Page 22: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

CBC mode : Decryption

C1 = E(k , IV ⊕ P1) P1 = D(k ,C1)⊕ IVDéchiffrement parallélisable

A. Bonnecaze (I2M) Cryptographic primitives 2014 22 / 33

Page 23: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

ECB et CBC modes : exemple

A. Bonnecaze (I2M) Cryptographic primitives 2014 23 / 33

Page 24: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

CFB mode (Cipher feedback Mode)

C0 = IV , Ci = E(k ,Ci−1)⊕ PiPi = D(k ,Ci−1)⊕ CiDéchiffrement parallélisablePeut être vu comme un stream cipher

A. Bonnecaze (I2M) Cryptographic primitives 2014 24 / 33

Page 25: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Modes de chiffrement

CTR mode

- possible parallel encryption- Sem. secure under CPA if (ctr, key) is used just once- IV : nonce of 64 bits concatenated with counter of 64 bits (msg< 264 blocks)

A. Bonnecaze (I2M) Cryptographic primitives 2014 25 / 33

Page 26: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

Niveaux d’attaques

La sécurité d’un système est défini par rapport à la puissance de l’attaquant.

- Kerckhoffs : l’attaquant connait les détails de l’algorithme mais pas la clé- l’attaquant dispose d’une certaine puissance pour cryptanalyser

Attaque à texte chiffré seulement (ciphertext-only attack)Attaque à texte clair connu (known-plaintext attack)Attaque à texte clair choisi (Chosen-Plaintext Attack)Attaque à texte chiffré choisi (Chosen-Ciphertext Attack)

Un système de chiffrement peut être robuste face à une attaque CPA maisnon robuste face à une attaque CCA

A. Bonnecaze (I2M) Cryptographic primitives 2014 26 / 33

Page 27: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

Sécurité lorsque la clé peut être réutiliséeLes système de chiffrement par blocs permettent de chiffrer plusieurs fichiersavec la même clé.→ l’adversaire peut obtenir plusieurs chiffrés de la même clé

Puissance de l’adversaire : chosen-plaintext attack (CPA)il peut choisir n’importe quel messageBut de l’adversaire : casser la sécurité sémantique

Le jeu est le même que pour "one-time key" mais maintenant l’attaquant peutrépéter le jeu plusieurs fois

E est sémantiquement sûr sous CPA

si pour tout algo A

AdvCPA[A,E] = |Pr [EXP(0) = 1]− Pr [EXP(1) = 1]|

est négligeable

A. Bonnecaze (I2M) Cryptographic primitives 2014 27 / 33

Page 28: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

Sous CPA, un chiffrement déterministe n’est pas sûr

Supposons que le même clair donne le même chiffré

m0,m0 ∈Mc0 ← E(k ,m0)

m0, m1 ∈Mc ← E(k ,mb)

-

-

Chal.

k R←− K

b ∈ {0,1}

Adv.

A. Bonnecaze (I2M) Cryptographic primitives 2014 28 / 33

Page 29: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

CBC Security

Supposons qu’on puisse prédire l’IV du prochain message

CBC with predictable IV⇒ not CPA secure

0

c1 ← [IV ,E(k ,0⊕ IV )]

m0 = IV ⊕ IV1, m1 6= m0

c ← [IV1,E(k , IV )] orc ← [IV1,E(k ,m1 ⊕ IV )]

-

-

Chal.

k R←− K

b ∈ {0,1}

Adv.

Example : TLS1.1IV for record i is last CT block of record i − 1

A. Bonnecaze (I2M) Cryptographic primitives 2014 29 / 33

Page 30: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

CBC with random IV : Security

TheoremCBC avec IV aléatoire est sémantiquement sûr sous CPA, à partir du momentoù le système de chiffrement par blocs est une pseudo-random permutation

Rappel : Une PRP E : K × X → X telle que1 Il existe un algo efficace pour calculer E(k , x)2 La fonction E(k , .) est injective3 Il existe un algo d’inversion efficace D(k , x)

C’est le cas de AES-CBC si le nombre de blocs est plus petit que 248

ou 3DES si le nombre de blocs est plus petit que 216

A. Bonnecaze (I2M) Cryptographic primitives 2014 30 / 33

Page 31: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

Chosen Ciphertext Attack (CCA)

Certaines fois, l’adversaire est capable d’obtenir le clair de certains chiffrés.Cela peut aider pour décrypter son message

Puissance de l’Adv : CPA et CCAObtenir le chiffrement des messages de son choixObtenir le déchiffrement des chiffrés de son choix (autre que lechallenge)

But de l’adversaire : casser la sécurité sémantique

A. Bonnecaze (I2M) Cryptographic primitives 2014 31 / 33

Page 32: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

Modèle de sécurité : Chosen ciphertext security

Soit E = (E ,D) un syst. de chiffrement sur (K,M, C)

for i = 1, . . . , q :

(1) requête CPAmi,0,mi,1 ∈Mci ← E(k ,mi,b)

(2) requête CCAci ∈ Cci /∈ {c1, . . . , ci−1}mi ← D(k , ci)

-

-

Chal.

k R←− K

b ∈ {0,1}

Adv.

A. Bonnecaze (I2M) Cryptographic primitives 2014 32 / 33

Page 33: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

Chosen ciphertext security

E est sûr si pour tout algo A efficient :

AdvCCA[A,E] = |Pr [EXP(0) = 1]− Pr [EXP(1) = 1]| est négligeable

Exemple : CBC avec IV aléatoire n’est pas CCA-sûr

m0,m1 : |m0| = |m1| = 1

c ← E(k ,mb) = (IV , c[0])

c′ = (IV ⊕ 1, c[0])

D(k , c′) = mb ⊕ 1

� -

� -

Chal.

k R←− K

b ∈ {0,1}

Adv. A

A. Bonnecaze (I2M) Cryptographic primitives 2014 33 / 33

Page 34: Introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/Crypto3/Block...comme DES, Blowfish, CAST-128, 3DES, RC5, ... AES est construit différemment. A. Bonnecaze

Sécurité des systèmes

Chosen ciphertext security

E est sûr si pour tout algo A efficient :

AdvCCA[A,E] = |Pr [EXP(0) = 1]− Pr [EXP(1) = 1]| est négligeable

Exemple : CBC avec IV aléatoire n’est pas CCA-sûr

m0,m1 : |m0| = |m1| = 1

c ← E(k ,mb) = (IV , c[0])

c′ = (IV ⊕ 1, c[0])

D(k , c′) = mb ⊕ 1

� -

� -

Chal.

k R←− K

b ∈ {0,1}

Adv. A

A. Bonnecaze (I2M) Cryptographic primitives 2014 33 / 33