introduction au chiffrement par blocsalexis.bonnecaze.perso.luminy.univ-amu.fr/crypto3/block...comme...
TRANSCRIPT
Les algorithmes de chiffrement par blocs
Introduction au chiffrement par blocs
A. Bonnecaze (I2M) Cryptographic primitives 2014 1 / 33
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
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
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
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
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
Les algorithmes de chiffrement par blocs
Feistel cipher
2-rounds Feistel
A. Bonnecaze (I2M) Cryptographic primitives 2014 7 / 33
Les algorithmes de chiffrement par blocs
DES description : 16 rounds
A. Bonnecaze (I2M) Cryptographic primitives 2014 8 / 33
Les algorithmes de chiffrement par blocs
DES round description
A. Bonnecaze (I2M) Cryptographic primitives 2014 9 / 33
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
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
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
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
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
Les algorithmes de chiffrement par blocs
AES description
A. Bonnecaze (I2M) Cryptographic primitives 2014 15 / 33
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
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
Modes de chiffrement
ECB mode
Remark : Same plaintext blocks give the same ciphertext blocks
A. Bonnecaze (I2M) Cryptographic primitives 2014 18 / 33
Modes de chiffrement
ECB mode
A. Bonnecaze (I2M) Cryptographic primitives 2014 19 / 33
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
Modes de chiffrement
CBC mode
- IV must be random- Cannot be parallelized- Padding (PKCS7)
A. Bonnecaze (I2M) Cryptographic primitives 2014 21 / 33
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
Modes de chiffrement
ECB et CBC modes : exemple
A. Bonnecaze (I2M) Cryptographic primitives 2014 23 / 33
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
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
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
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
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
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
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
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
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
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
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