Introduction à la
cryptographie et à son
implémentation
Guillaume Duc
<guillaume.duc@telecom-paristech.fr>
2014–2015
Cryptographie
Algorithmes sans clé
• Fonction de hachage (MD5, SHA1, SHA2, SHA3...)
• Générateur de nombres aléatoires
Algorithmes à clé symétrique
• Chiffrement
– Par bloc (DES, AES...)
– Par flux/flot (RC4...)
• Fonction de hachage à clé ou MAC (Message
Authentication Code)
Algorithmes à clé publique (asymétrique)
• Chiffrement (RSA...)
• Signature (RSA, DSA...)
2/12 COMELEC / SEN Guillaume Duc 2014–2015
Algorithme de chiffrement par bloc
Block cipher
E : {0, 1}n
× {0, 1}k
→ {0, 1}n
P, K → C = EK (P)
n est la taille d’un bloc (en bits)
k la taille de la clé (en bits)
P est le message en clair (plaintext)
K est la clé
C est le message chiffré (ciphertext)
Si on veut chiffrer des messages dont la taille est différente
de n, il faut utiliser un mode d’opération
3/12 COMELEC / SEN Guillaume Duc 2014–2015
Modes d’opération usuels
ECB — Electronic CodeBook
P1
EK
C1
P2
EK
C2
P3
EK
C3
C1
DK
P1
C2
DK
P2
C3
DK
P3
Chiffrement
Déchiffrement
Problème de sécurité avec ce mode (identification de
motifs)
4/12 COMELEC / SEN Guillaume Duc 2014–2015
Modes d’opération usuels
CBC — Cipher Block Chaining
IV
P1
EK
C1
P2
EK
C2
P3
EK
C3
IV C1
DK
P1
C2
DK
P2
C3
DK
P3
Chiffrement
Déchiffrement
IV (Initialization Vector) est généré aléatoirement pour
chaque message chiffré et transmis (en clair)
5/12 COMELEC / SEN Guillaume Duc 2014–2015
Modes d’opération usuels
CTR — Counter Mode
N
EK
P1
C1
N + 1
EK
P2
C2
N + 2
EK
P3
C3
N
EK
C1
P1
N + 1
EK
C2
P2
N + 2
EK
C3
P3
Chiffrement
Déchiffrement
N est un nombre aléatoire, transmis en clair avec le
message
On ne doit jamais chiffrer deux blocs avec le même
compteur
6/12 COMELEC / SEN Guillaume Duc 2014–2015
Modes d’opération
Le choix du mode d’opération est critique pour la sécurité
ECB est déconseillé (identification de motifs)
CBC est vulnérable lorsqu’une collision survient (après en
moyenne 2n/2 où n est la taille d’un bloc en bits)
Mode compteur : ne jamais chiffrer deux blocs avec le
même compteur
7/12 COMELEC / SEN Guillaume Duc 2014–2015
Blocs de base
Selon Shannon, un algorithme de chiffrement est basé sur
deux propriétés : la diffusion et la confusion
Confusion : rendre la relation entre la clé symétrique et le
texte chiffré la plus complexe possible
Diffusion : la redondance statistique sur le texte en clair
doit être dissipée dans les statistiques du texte chiffré (les
statistiques du texte chiffré doivent donner le moins
d’informations possible sur le texte clair)
• L’inversion d’un bit en entrée doit changer chaque bit en
sortie avec une probabilité 1/2
8/12 COMELEC / SEN Guillaume Duc 2014–2015
Blocs de base
La confusion est généralement réalisée par des tables de
substitution (Substitution Box (S-Box)) qui permettent
d’introduire de la non linéarité dans les calculs
• DES : 8 fonctions différentes 6 bits vers 4 bits
• AES : 1 fonction 8 bits vers 8 bits
• Simon : Fonction logique ET
La diffusion est réalisée de diverses façons
• DES : Permutations
• AES : Opérations ShiftRows et MixColumns
• Simon : Permutations
9/12 COMELEC / SEN Guillaume Duc 2014–2015
Schéma général
Les algorithmes classiques de chiffrement par bloc
présentent une structure itérative
Opération de base (tour / ronde / round) répétée un certain
nombre de fois (16 pour DES, 10, 12 ou 14 pour AES)
Chaque ronde utilise une sous-clé dérivée de la clé
principale grâce à un algorithme baptisé key schedule
Structure idéale pour une implémentation matérielle
itérative
10/12 COMELEC / SEN Guillaume Duc 2014–2015
Implémentation matérielle itérative
Schéma général
K
P
C
SK
Data path
Key schedule
11/12 COMELEC / SEN Guillaume Duc 2014–2015
Schéma de Feistel
Plaintext (64 bits)
IP
L0 R0
F
SK1
L1 R1
F
SK2
L2 R2
...
...
L16 R16
FP
Ciphertext (64 bits)
1 tour
16 tours
12/12 COMELEC / SEN Guillaume Duc 2014–2015

Cours implementation-crypto

  • 1.
    Introduction à la cryptographieet à son implémentation Guillaume Duc <guillaume.duc@telecom-paristech.fr> 2014–2015
  • 2.
    Cryptographie Algorithmes sans clé •Fonction de hachage (MD5, SHA1, SHA2, SHA3...) • Générateur de nombres aléatoires Algorithmes à clé symétrique • Chiffrement – Par bloc (DES, AES...) – Par flux/flot (RC4...) • Fonction de hachage à clé ou MAC (Message Authentication Code) Algorithmes à clé publique (asymétrique) • Chiffrement (RSA...) • Signature (RSA, DSA...) 2/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 3.
    Algorithme de chiffrementpar bloc Block cipher E : {0, 1}n × {0, 1}k → {0, 1}n P, K → C = EK (P) n est la taille d’un bloc (en bits) k la taille de la clé (en bits) P est le message en clair (plaintext) K est la clé C est le message chiffré (ciphertext) Si on veut chiffrer des messages dont la taille est différente de n, il faut utiliser un mode d’opération 3/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 4.
    Modes d’opération usuels ECB— Electronic CodeBook P1 EK C1 P2 EK C2 P3 EK C3 C1 DK P1 C2 DK P2 C3 DK P3 Chiffrement Déchiffrement Problème de sécurité avec ce mode (identification de motifs) 4/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 5.
    Modes d’opération usuels CBC— Cipher Block Chaining IV P1 EK C1 P2 EK C2 P3 EK C3 IV C1 DK P1 C2 DK P2 C3 DK P3 Chiffrement Déchiffrement IV (Initialization Vector) est généré aléatoirement pour chaque message chiffré et transmis (en clair) 5/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 6.
    Modes d’opération usuels CTR— Counter Mode N EK P1 C1 N + 1 EK P2 C2 N + 2 EK P3 C3 N EK C1 P1 N + 1 EK C2 P2 N + 2 EK C3 P3 Chiffrement Déchiffrement N est un nombre aléatoire, transmis en clair avec le message On ne doit jamais chiffrer deux blocs avec le même compteur 6/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 7.
    Modes d’opération Le choixdu mode d’opération est critique pour la sécurité ECB est déconseillé (identification de motifs) CBC est vulnérable lorsqu’une collision survient (après en moyenne 2n/2 où n est la taille d’un bloc en bits) Mode compteur : ne jamais chiffrer deux blocs avec le même compteur 7/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 8.
    Blocs de base SelonShannon, un algorithme de chiffrement est basé sur deux propriétés : la diffusion et la confusion Confusion : rendre la relation entre la clé symétrique et le texte chiffré la plus complexe possible Diffusion : la redondance statistique sur le texte en clair doit être dissipée dans les statistiques du texte chiffré (les statistiques du texte chiffré doivent donner le moins d’informations possible sur le texte clair) • L’inversion d’un bit en entrée doit changer chaque bit en sortie avec une probabilité 1/2 8/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 9.
    Blocs de base Laconfusion est généralement réalisée par des tables de substitution (Substitution Box (S-Box)) qui permettent d’introduire de la non linéarité dans les calculs • DES : 8 fonctions différentes 6 bits vers 4 bits • AES : 1 fonction 8 bits vers 8 bits • Simon : Fonction logique ET La diffusion est réalisée de diverses façons • DES : Permutations • AES : Opérations ShiftRows et MixColumns • Simon : Permutations 9/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 10.
    Schéma général Les algorithmesclassiques de chiffrement par bloc présentent une structure itérative Opération de base (tour / ronde / round) répétée un certain nombre de fois (16 pour DES, 10, 12 ou 14 pour AES) Chaque ronde utilise une sous-clé dérivée de la clé principale grâce à un algorithme baptisé key schedule Structure idéale pour une implémentation matérielle itérative 10/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 11.
    Implémentation matérielle itérative Schémagénéral K P C SK Data path Key schedule 11/12 COMELEC / SEN Guillaume Duc 2014–2015
  • 12.
    Schéma de Feistel Plaintext(64 bits) IP L0 R0 F SK1 L1 R1 F SK2 L2 R2 ... ... L16 R16 FP Ciphertext (64 bits) 1 tour 16 tours 12/12 COMELEC / SEN Guillaume Duc 2014–2015