Chapitre 2 Cryptographie
Chapitre 2 Cryptographie
Chapitre 2 Cryptographie
2021-2022
Plan
Généralités
La cryptographie symétrique
• Opérations de base
• Le protocole DES
• Le protocole AES
La cryptographie asymétrique
• RSA
• Diffie Hellman
• ECC
La signature numérique
• Signature RSA
• DSA
• ECDSA
Généralités
La cryptographie symétrique
• Opérations de base
• Le protocole DES
• Le protocole AES
La cryptographie asymétrique
• RSA
• Diffie Hellman
• ECC
La signature numérique
• Signature RSA
• DSA
• ECDSA
Introduction
Cryptographie: Science mathématique permettant
d’effectuer des opérations sur un texte intelligible afin
d’assurer une ou plusieurs propriétés de la sécurité de
l’information
Cryptanalyse : la science permettant d’étudier les systèmes
cryptographiques en vue de les tester ou de les casser
Cryptologie : la science qui regroupe la cryptographie et la
cryptanalyse
Introduction
Un algorithme cryptographique doit assurer ces
principaux objectifs:
• Le texte clair ne doit pas être facilement obtenu à
partir d’un texte crypté.
• Les clés ne doivent pas être facilement obtenu à
partir d’un texte crypté.
• L’espace des clés doit être assez large pour résister
aux attaques brute-force.
• Confusion: le processus modifie radicalement les
données du texte clair par rapport à ceux du texte
chiffré.
• Diffusion: un petit changement dans le texte clair doit
avoir un effet sur une large partie du texte crypté.
Canal sécurisé
Modèle de cryptage asymétrique: M=D(E(M,K),K-1) avec
K-1 ≠ K en général
Canal sécurisé
Stream Cipher
Pour un texte clair P=x1x2x3x4x5… et une clé l=l1l2l3l4l5… il
existe une fonction de cryptage El et des algorithmes de
cryptage E l tel que:
• C = El ( P)
i
10
Block Cipher
Block Cipher: Le texte clair est divisé en différents
blocks P1, P2, P3 … de taille fixe (64, 128, …octets).
Un block Pi est traité à la fois, produisant un block de
données crypté Ci.
Si la longueur du message n’est pas un multiple de la
longueur d’un bloc, on le complète : c’est le bourrage
(padding).
Cryptanalyse
Généralités
La cryptographie symétrique
• Opérations de base
• Le protocole DES
• Le protocole AES
La cryptographie asymétrique
• RSA
• Diffie Hellman
• ECC
La signature numérique
• DSA
• ECDSA
La cryptographie symétrique
Les deux parties communicantes utilisent un algorithme symétrique et une
même clé pour crypter et décrypter les données
Une clé symétrique appelée aussi clé de session est une séquence binaire
aléatoire dont la longueur dépend de l’algorithme
Un algorithme est une séquence de transformations sur les données et la clé
Opérations de base
Substitution
Transposition
Opérations algébriques simples
plaintext: abcdefghijklmnopqrstuvwxyz
ciphertext: mnbvcxzasdfghjklpoiuytrewq
Exercice
Retrouver le clair du message codé à l’aide de
l’algorithme de César (La clé est 3)
«FRGDJHGHFHVDU ».
Solution
• L’algorithme à translation de César correspond à
une translation de 3 lettres (clé) pour passer du
message original au message crypté.
Vignère Cipher
WOS VJS SOO UPC QVD FLB WHS QSI VLM XYO
Le chiffre de Vigenère
Le carré de Vigenère :
• 26 alphabets : chiffrement de César
Clé de chiffrement : un mot clé identifiant les alphabets à
utiliser
Exemple
Transposition: Principe
La transposition représente la
permutation des symboles d’un plaintext
Conserve la distribution des symboles
La cryptanalyse statistique est possible
DES
Principe de Kerkhoffs:
DES
L'algorithme DES est un algorithme de cryptographie en bloc
• Il opère généralement sur des blocs de 64 bits
• La clé est sur 64bits dont 8 sont utilisés comme calcul de l'intégrité des 56
autres (parité).
• La clé sera transformée en 16 sous-clés de 48 bits chacune.
En effet, certains calculs ont montrés qu'il était possible d'effectuer une
recherche exhaustive de clé, en 256 essais. Ces calculs sont réalisables en
un temps limité et avec un coût relativement raisonnable.
L'algorithme DES
1. Fractionnement du texte
Bloc de 64 bits
3. Découpage des blocs en deux parties: gauche et droite
L'algorithme DES
5. Recollement des parties gauche et droite puis
permutation initiale inverse (IP-1).
32 bits 32 bits
64 bits
Limites de DES
Les progrès en cryptanalyse et en électronique a fait que la
longueur 56 des clés est devenu un problème pour DES
La taille de l’ensemble : {0,1}56 permet de retrouver la clé à
partir d’un texte clair connu en faisant du brute force.
3-DES (triple DES) a été lancé comme un nouveau standard en
1999.
• Utilise 2 ou 3 clés.
• Niveau de sécurité satisfaisant.
• Permet de continuer l’utilisation des boites S-Box et P-Box matériel
et logiciel.
K3
DES
Le protocole AES
• AES: Advanced Encryption Standard
• En 1997 le NIST (National Institute of Standards and Technology) lança
un nouvel appel à projet pour élaborer l'AES (Advanced Encryption
Standard), un algorithme de chiffrement destiné à remplacer le DES
• Il s’agit d’une
succession de fonction
à appliquer en 10 (clé
128 bits), 12 (clé 192
bits) ou 14 itérations (clé
256 bits).
• Les données et la clé
sont codés en 128 bits
pour AES 128.
1 octet
Il s’agit d’une addition
binaire des octets (bytes)
de la donnée avec les
octets de la clé par
l’application de l’opérateur
XOR
SubBytes
• Il s’agit d’une étape de substitutions des octets des
données selon une matrice S-Box prédéfinie.
SubBytes: Principe
• Interprète chaque octet comme deux
chiffres hexadécimaux x et y
S1,1 = xy16
ShiftRows
• Décalage circulaire à gauche des lignes li par i-1 bytes
MixColumns
Chaque colonne est traitée indépandemment des autres
Chaque octet de la colonne est remplacée par une valeur qui
dépend des 4 octets de la colonne
Cette valeur est obtenue en multipliant la colonne par la matrice
suivante
Génération de la clé
La clé codée sur 128-bits (16-octets) est étendue à un
tableau de 44 mots
Chaque mot est de taille 32 bits
Génération de la clé
RotWord[b0,b1,b2,b3] = [b1,b2,b3,b0]
Plan
Généralités
La cryptographie symétrique
• Opérations de base
• Le protocole DES
• Le protocole AES
La cryptographie asymétrique
• RSA
• Diffie Hellman
• ECC
La signature numérique
• Signature RSA
• DSA
• ECDSA
Texte crypté
Emetteur Récepteur
Texte crypté
Emetteur Récepteur
RSA
Développé par Rivest, Shamir & Adleman en
1977, publié en 1978
Le plus connu et le plus utilisé comme algorithme
de cryptage asymétrique.
Utilise des entiers très larges 1024+ bits
Le fonctionnement du cryptosystème RSA est basé sur
la difficulté de factoriser de grands entiers.
RSA: Algorithme
Cryptage Décryptage
RSA: Exemple Texte
Texte clair Texte clair
crypté
• Un nombre premier p
• Le groupe associé à une courbe elliptique est calculé à partir de
l’équation de la courbe elliptique
• Un point, G, choisi à partir du groupe associé à la courbe
elliptique (Comme le générateur utilisé dans DH)
Avantages :
• on démarre l'échange avec l'utilisation d'un algorithme
asymétrique qui possède l'avantage d'offrir un moyen
d'identifier les interlocuteurs.
• la clé secrète est chiffrée et échangée ;
• après l'échange on bascule le chiffrement en utilisant un
algorithme symétrique plus rapide ;
RSA vs ECC
Pour protéger une clé
AES de 128 bits, il faut:
• Taille de clé RSA: 3072
bits
• Taille de clé ECC: 256 bits
Comment peut-on
augmenter le niveau de
sécurité de RSA?
• Augmentez la
longueur de la clé
Avantages de ECC
Plan
Généralités
La cryptographie symétrique
• Opérations de base
• Le protocole DES
• Le protocole AES
La cryptographie asymétrique
• RSA
• Diffie Hellman
• ECC
La signature numérique
• Signature RSA
• DSA
• ECDSA
Fonction de hachage
Internet
Hashage =? Hashage
Empreinte Empreinte Empreinte
reçue recalculée
84
Fonction de hachage
Famille MD (Message Digest)
• Développé par Ron Rivest
• Plusieurs versions: MD4, MD5
• Génère une empreinte de taille 128 bits
Famille SHA (Secure Hash Algorithm)
• Développé par NIST en collaboration avec NSA
• Plusieurs versions SHA1, SHA2, SHA3
• SHA1 Génère une empreinte de taille 160 bits
• Exemple
Introduction à la Cryptographie
5aa769e719f153611c3d0dbb4bb02e23
Introduction à la cryptographie
af575f3a9216b4158bdcd2c4201d6527
Fondements de sécurité, 2021 85
Signature numérique
Idée clé:
• L’empreinte (résultat de la fonction de hachage) d’un
message est crypté avec la clé privée de l’émetteur.
• La clé publique est utilisée pour la vérification de la
signature
Soit:
• M: message à signer, H: fonction de hachage
• Kpr, Kpu: paire de clés privée / publique de l’émetteur.
• E / D: fonction de cryptage / Décryptage en utilisant
Kpu / Kpr.
En recevant (M, EKpr(H(M))), le récepteur
vérifie si: H(M)=DKpu(EKpr(H(M)))
Clé privée
du signataire
87
Signature Décryptage
Electronique
Empreinte
reçue
88
89
Signature numérique
Exemples d’algorithmes:
Signature RSA
Signature RSA
92
DSA
• Le NIST a proposé le DSA « Digital Signature algorithm »
en 1991 et l'a adopté comme norme en 1994.
• Il est connu aussi avec le nom Digital Signature Standard
(DSS).
Génération de Clés
Sélectionner deux nombre premiers (p,q) telque q | (p-1)
Il est recommandé que le nombre de bits de p soit entre
512 and 1024 bits, et q de 160 bits
Choisir g comme un élément de Zp* avec un ordre q
• Soit α un générateur de Zp*, et définir g = α(p-1)/q mod p
Sélectionner 1 ≤ x ≤ q-1 et calculer y = gx mod p
DSA
Signer un message M:
Sélectionnez un nombre aléatoire secret
k, 0 < k < q
Calculer:
r = (gk mod p) mod q
s = k-1 ( H(M) + xr) mod q
H est une fonction de hachage
Signature: (r, s)
• La signature se compose de deux nombres de
160 bits, lorsque q est de 160 bits
Vérification de signature
Vérifier 0 < r < q and 0 < s < q, sinon, la
signature est invalide.
Calculer:
u1 = H(M)s-1 mod q, u2 = rs-1 mod q
w= (gu1 yu2 mod p) mod q
La signature est valide si r = w
ECDSA
Vérification de signature
Pour que B authentifie la signature de A , B doit avoir la clé publique de A
QA
1. Vérifier que r et s appartiennent à [1,n − 1]. Sinon, la signature est
invalide
2. Calculer e = H(m), avec H est la même fonction utilisée dans la
génération de la signature
3. Calculer w = s −1 (mod n)
4. Calculer u1 = ew (mod n) et u2 = rw (mod n)
5. Calculer (x1, y1) = u1G + u2QA
6. La signature est valide si x1 = r(mod n)