Chapitre 2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 123

Chapitre 2: La cryptographie

2020-2021
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

Techniques de cryptographie, 2020 2


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

Techniques de cryptographie, 2020 3


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

Techniques de cryptographie, 2020 4


Introduction
Un crypto-système est décrit par cinq uplets (P,C,K,E,D),
satisfaisant ces conditions:
 «P» est un ensemble fini de textes clairs (plain text)
 «C» est un ensemble fini de textes cryptés (cypher text)
 «K» est l’espace de clés (key space), représente un
ensemble fini de clés possibles.
 Pour chaque k € K, il existe une fonction cryptage ek € E, et
une fonction de décryptage correspondante dk’ € D
• Les fonctions ek : PC et dk’ : CP doivent satisfaire:
dk’(ek(x))=x pour chaque x € P
 Crypto-système
• Les crypto-systèmes symétriques
• Les crypto-systèmes asymétriques
• Les fonctions de hachage

Techniques de cryptographie, 2020 5


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é.

Techniques de cryptographie, 2020 6


Caractéristiques d’un cryptosystème
Les systèmes cryptographiques sont caractérisés par trois
dimensions:
1. Type de l’opération utilisée pour transformer un texte clair
en un texte crypté
 Substitution: replacement de chaque élément (bit,
lettre, groupe de bits ou de lettres) dans le texte clair
par un autre élément.
 Transposition: réarrangement des éléments du texte
clair.
- La plupart des systèmes utilisent plusieurs étapes de
transposition et de substitution.

Techniques de cryptographie, 2020 7


Caractéristiques d’un cryptosystème
2. Nombre de clés utilisées
 Modèle de cryptage symétrique: M=D(E(M,K),K)

Canal non sécurisé

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 non sécurisé

Canal sécurisé

Techniques de cryptographie, 2020 8


Caractéristiques d’un cryptosystème
3. La méthode par laquelle le texte clair est traité
 Stream Cipher: traite les éléments d’entrée de façon
continue, produisant un élément de sortie (crypté), à la
fois.
• La clé est aussi longue que le stream de données.
• Étapes:
• Définition de l’état initial du key stream
• Définition de la fonction état suivant: next-state function
• Combinaison du key stream courant avec la clé K et les
caractères précédent. La fonction de sortie doit aussi
modifier l’état interne.
• Crypte chaque caractère xi du texte clair avec un caractère
zi du key stream (exemple xor)

Techniques de cryptographie, 2020 9


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:
i

• C  El ( P)
• C  El1 ( x1 ) El2 ( x2 )...
• li  f ( k , x1 , x2 , xi 1 )
 Les valeurs l1 , l2 , l3, l4 , … sont appelées key streams
 Syncronous cypher: Le key stream ne dépends pas du texte
clair. La période du key stream est égale à d tel que: li+d=li
 Self-synchronizing: le key stream dépends de n caractères
clairs précédents.

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).

 NIST définit plusieurs modes d’opérations:


• Electronic codebook mode (ECB)
• Cipher block chaining mode (CBC) – le plus connu
• Cipher feedback mode (CFB)
• Output feedback mode (OFB)
• Counter mode (CTR)

Techniques de cryptographie, 2020 11


Block Cipher

1981  Principaux modes: ECB, CBC, CFB,


OFB

2001  Apparition du mode CTR et AES

2010  Nouveau Mode : AES-XTS

 ….
Techniques de cryptographie, 2020 12
Block Cipher
Electronic Code Book (ECB)
 Chaque block du texte clair est chiffré indépendemment des autres.
 Chiffrement:

 Déchiffrement:

Techniques de cryptographie, 2020 13


Block Cipher
Electronic Code Book (ECB)
 Simple mais:

 Convient seulement aux textes courts car les informations répètées


dans le texte clair apparaissent dans le texte chiffré.

 Si le même message est chiffré (avec la meme clé) et envoyé


deux fois, les textes chiffrés seront identiques

Techniques de cryptographie, 2020 14


Block Cipher
Cipher Block Chaining (CBC)
 Chaque block du texte clair est chainé avec le block crypté précédent
avant d’être chiffré.
 Utilisation d’un vecteur d’initialisation pour commencer le processus.
 Chiffrement:

 Déchiffrement:

Techniques de cryptographie, 2020 15


Block Cipher
Cipher Block Chaining (CBC)

 Le chiffrement d’un bloc dépend du bloc courant et de tous les blocs


précédents.

 Ainsi, les blocs de texte clair répétés sont cryptés différemment.

 Le vecteur d’initialisation doit être connu entre l'expéditeur et le récepteur.

 IV peut être crypté en mode ECB et envoyé avant de commencer le


chiffrement.

Techniques de cryptographie, 2020 16


Block Cipher
Cipher Feedback (CFB)
 L’idée de base est de construire un flux de clés k1, k2, k3, …
 Chiffrement:
c0  IV

 ki  Ek (ci 1 ), for i  1

ci  pi  ki , for i  1
 Déchiffrement:

 Le chiffrement en bloc est utilisé comme un chiffrement en flux.


 Ne nécessite que l'algorithme de cryptage.
 Approprié lorsque les données arrivent en un flux de bits/octets.
• Un segment de texte chiffré dépend du segment courant et de tous les
segments de texte clair précédents.
• Un segment de texte chiffré corrompu pendant la transmission affectera
le segment de texte clair courant ainsi que quelques segments suivants.17
Techniques de cryptographie, 2020
Block Cipher
Cipher Feedback (CFB)

Techniques de cryptographie, 2020 18


Block Cipher
Output Feedback (OFB)
 Chiffrement:
k0  IV

ki  Ek ( ki 1 ), for i  1

ci  pi  ki , for i  1
 Déchiffrement

 Plus résistant aux erreurs de transmission; une erreur dans un segment


de texte chiffré affecte uniquement le décryptage de ce segment.
 Ne nécessite que l'algorithme de cryptage.

 Si un segment de texte chiffré est perdu, tous les segments suivants


seront déchiffrés incorrectement (si le destinataire n'est pas au courant
de la perte de segment).
Techniques de cryptographie, 2020 19
Block Cipher
Output Feedback (OFB)

Techniques de cryptographie, 2020 20


Block Cipher
Counter Mode (CTR)
 Chiffrement:

 Déchiffrement:

 Ne nécessite que l'algorithme de cryptage.


 Chiffrement /déchiffrement rapide; les blocs peuvent être traités (chiffrés ou
déchiffrés) en parallèle
 Accès aléatoire aux blocs de données chiffrés.

Techniques de cryptographie, 2020 21


Cryptanalyse

 Principes et méthodes permettant de trouver un message


clair à partir d’un message crypté sans connaissance de la
clé.
 Attaques classifiées selon le type de connaissance
disponible pour l’intrus (cryptanalyste).
 Connaissant C=E(P,K) mais pas K, l’objectif est de trouver P
ou K.
 Types d’attaques de cryptanalyse:
• Texte chiffré uniquement: uniquement C et E sont connus par
l’intrus
• Texte clair connu: Uniquement E, C, et quelques paires de
messages clairs/cryptés avec K, sont connus par l’intrus
• Texte clair choisi: E, C, sont connu, et P a été choisi par
l’intrus.
• …

Techniques de cryptographie, 2020 22


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
• DSA
• ECDSA

Techniques de cryptographie, 2020 23


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é

Clé Texte crypté= Clé


01010000111 cryptogramme 01010000111

Texte clair Texte clair


Cryptage Internet Décryptage
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit crédit
111111, ♠♣▼╫◊ 111111,
♫◙◘€£
Émetteur ¥₪Ω‫٭‬ Récepteur

Techniques de cryptographie, 2020 24


Chiffrement symétrique
 Cryptage par flux (stream cipher)
• Opère sur un flux continu de données
• Mode adapté pour la communication en temps réel
• Implémentation matérielle en général
• Exemple: RC4 (longueur de clé variable, généralement 128 bits)
 Cryptage par bloc
• Opère sur des blocs de données de taille fixe (généralement 64 bits)
• Implémentation logicielle en générale
• Exemples: DES (Clé: 56 bits codée sur 64 bits); 3DES (EDE (Encrypt-
Decrypt-Encrypt), Trois clés distincts ou seulement deux); IDEA (128
bits); AES longueur de clé variable: 128, 192, 256)

Techniques de cryptographie, 2020 25


Opérations de base
 Substitution
 Transposition
 Opérations algébriques simples

Techniques de cryptographie, 2020 26


Chiffrement par substitution
 Cette méthode correspond à substituer un caractère ou un groupe de
caractères par un autre dans le texte à chiffrer.
 Plusieurs types de crypto-systèmes par substitution :
• monoalphabétique (code César) consiste à remplacer chaque lettre
du message par une autre lettre de l'alphabet
• homophonique permet de faire correspondre à chaque lettre du
message en clair un ensemble possible d'autres caractères
• polyalphabétique (code Vigenère) consiste à utiliser une suite de
chiffrement, monoalphabétique réutilisée périodiquement ;
• polygrammes consiste à substituer un groupe de caractères
(polygramme) dans le message par un autre groupe de caractères.

Techniques de cryptographie, 2020 27


Chiffrement par substitution simple
 Chaque symbole du plaintext est remplacé par un autre de
manière unique

plaintext: abcdefghijklmnopqrstuvwxyz

ciphertext: mnbvcxzasdfghjklpoiuytrewq

E.g.: Plaintext: bob. how are you. alice


ciphertext: nkn. akr moc wky. mgsbc

Techniques de cryptographie, 2020 28


Exemple de cryptage par substitution simple
 Caesar's cipher
• Remplacer chaque lettre par celle qui la succède de trois.
• a devient d, b devient e, …, y devient b, z devient c
• L’algorithme peut être décrit comme suit:
• C = E(p) = (p+3) mod (26)
 La distribution fréquentielle des symboles est préservée dans le ciphertext
 Vulnérabilité aux attaques de cryptanalyse statistique : il suffit de calculer
la fréquence d’apparition de chaque symbole dans le ciphertext et de le
comparer aux fréquences d’apparition des lettres de l’alphabet dans une
langue particulière.
• Algorithme de cryptage et de décryptage connu.
• Seulement 25 clés à essayer.
• Le langage du message clair est connu et facilement identifiable.

Techniques de cryptographie, 2020 29


Exemple de cryptage par substitution simple

 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é.

• Ainsi, la lettre F d’un message crypté


correspondra à la lettre C du message clair.
• Le texte clair est « CODAGE DE CESAR »
Techniques de cryptographie, 2020 30
Cryptanalyse du Chiffrement par substitution
 Dans le cas de l'utilisation d'un code par substitution, la
cryptanalyse ou déchiffrement se fait par l'utilisation de
données statistiques :
• En anglais, les caractères les plus fréquemment utilisés sont : e, t, o, a,
n, i…
• Les combinaisons de deux lettres (digrammes) les plus fréquentes sont
: th, in, er, re, et an.
• Les combinaisons de trois lettres (trigrammes) : the, ing, and et ion.
• Méthode empirique de cryptanalyse: Il suffit pour
retrouver le texte en clair de :
• de rechercher les caractères, digrammes et trigrammes les plus
fréquents du texte chiffré;
• de faire des suppositions en les associant à ceux les plus fréquents
d'un texte en clair (dans la langue choisi).
• Par exemple dans un texte crypté appartenant à une banque il est
probable de trouver des mots tel que financier, montant, solde…

Techniques de cryptographie, 2020 31


Cryptanalyse du Chiffrement par substitution

• Comment finir la cryptanalyse ?


• Si certains mots commencent à émerger du texte chiffré, alors il y a
de fortes probabilités que le code de chiffrement soit découvert.
• Un code par substitution ne modifie pas les propriétés statistiques
des caractères, digrammes et trigrammes substitués.
• Il conserve l'ordre des caractères du texte en clair, mais masque
ces caractères.

Techniques de cryptographie, 2020 32


Cryptanalyse du Chiffrement par substitution
 Table des fréquences d'apparition des lettres pour un texte français

Techniques de cryptographie, 2020 33


Cryptanalyse du Chiffrement par substitution
 Exemple: Texte chiffré

Techniques de cryptographie, 2020 34


Cryptanalyse du Chiffrement par substitution

 Exemple: Analyse des fréquences de caractères du texte


chiffré

Techniques de cryptographie, 2020 35


Cryptanalyse du Chiffrement par substitution
 Exemple: Comparaison des fréquences entre texte clair et
chiffré

Techniques de cryptographie, 2020 36


Cryptanalyse du Chiffrement par substitution
 Exemple: Début du déchiffrement

Techniques de cryptographie, 2020 37


Cryptanalyse du Chiffrement par substitution
 Exemple: Suite du déchiffrement

Techniques de cryptographie, 2020 38


Cryptanalyse du Chiffrement par substitution
 Exemple: poursuite du déchiffrement

Techniques de cryptographie, 2020 39


Cryptanalyse du Chiffrement par substitution
 Exemple: Fin du déchiffrement

Techniques de cryptographie, 2020 40


Cryptanalyse du Chiffrement par substitution
 Idée d'amélioration : Substitution polyalphabétique:
utilisation de deux ou plusieurs alphabets de chiffrement.
 Cette méthode opère sur des blocs de taille t
 A chaque symbole du bloc on applique une substitution
simple différente
Exemple:

Techniques de cryptographie, 2020 41


Chiffrement par substitution polyalphabétique
• Vignère cipher (exemple):
- Il opère sur des blocs de taille 3
- Le premier symbole du bloc est remplacé par le troisième symbole à droite
- Le deuxième symbole du bloc est remplacé par le septième symbole à
droite
- Le troisième symbole du bloc est remplacé par le dixième symbole à droite

THIS CIPHER IS NOT CERTAINLY SECURE


THI SCI PHE RIS NOT CER TAI NLY SEC URE

Vignère Cipher

WOS VJS SOO UPC QVD FLB WHS QSI VLM XYO

Techniques de cryptographie, 2020 42


Chiffrement par substitution polyalphabétique

 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

Techniques de cryptographie, 2020 43


Chiffrement par substitution polyalphabétique

Techniques de cryptographie, 2020 44


Chiffrement par substitution polyalphabétique

 L'idée de Vigenère est d'utiliser un code de César, mais où le


décalage utilisé change de lettres en lettres.
 Pour coder un message,
• on choisit une clé qui sera un mot de longueur arbitraire.
• On écrit ensuite cette clé sous le message à coder, en la
répétant aussi souvent que nécessaire pour que sous
chaque lettre du message à coder, on trouve une lettre de
la clé.
• On remplace les lettres par leur rang dans l’alphabet
(attention on commence à 0).

• A chaque lettre on additionne les deux rangs et on prend le


reste de cette somme dans la division euclidienne par 26 et
on trouve ainsi la lettre codée correspondante.

Techniques de cryptographie, 2020 45


Exemple

Techniques de cryptographie, 2020 46


Application

Techniques de cryptographie, 2020 47


Cryptanalyse de la substitution polyalphabétique
 Deux étapes:
• trouver la longueur du mot-clé ;
• faire l'analyse fréquentielle sur chacun des alphabets
 Faiblesse
• Taille de la clé : le codage d'un mot peut être le même, en particulier
celui d'un digramme.
• Il est possible de faire une analyse fréquentielle afin de déterminer la
taille de la clé.

Techniques de cryptographie, 2020 48


Substitution homophonique

 Au lieu d'associer un seul caractère


crypté à un caractère en clair on dispose
d'un ensemble de possibilités de
substitution de caractères dans laquelle
on choisit aléatoirement.

Techniques de cryptographie, 2020 49


Transposition: Principe

 La transposition représente la
permutation des symboles d’un plaintext
 Conserve la distribution des symboles
 La cryptanalyse statistique est possible

Techniques de cryptographie, 2020 50


Exemple de cryptage par transposition

Rail fence technique


 Le texte clair est réécrit comme une séquence
de lignes, puis réordonnée comme une
séquence de colonnes
Key: 4 3 1 2 5 6 7
Plaintext: a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
Ciphertext: TTNA APTM TSUO AODW COIX KNLY PETZ

Techniques de cryptographie, 2020 51


Opérations algébriques simples
 Composition des fonctions (fog)
 XOR
 Remarque:
• La substitution ajoute du désordre (confusion) au
processus de cryptage. L’objectif est de rendre la
relation entre le ciphertext et la clé la plus compliquée
que possible
• La transposition ajoute de la diffusion au processus
de cryptage. L’objectif est de réarranger les bits du
plaintext afin de détruire toute forme de redondance

Techniques de cryptographie, 2020 52


Algorithmes de chiffrement symétriques

Techniques de cryptographie, 2020 53 53


DES

Principe de Kerkhoffs:

La sécurité d’un système cryptographique ne doit pas reposer sur


la non divulgation des fonctions de chiffrement et de
déchiffrement utilisées mais sur la non divulgation des clés
utilisées pour le paramétrer.

Techniques de cryptographie, 2020 54


DES
 DES: Data Encryption Standard
 Algorithme de cryptage par block(Block cipher) a clés
symétriques

Techniques de cryptographie, 2020 55


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.

Techniques de cryptographie, 2020 56


L'algorithme DES

 Les grandes lignes de l'algorithme sont les suivantes :


1. Fractionnement du texte en blocs de 64 bits (8 octets) ;
2. Permutation initiale des blocs (IP);
3. Découpage des blocs en deux parties: gauche et droite,
nommées G et D ;
4. Étapes de permutation et de substitution répétées 16 fois
(appelées rondes) ;
5. Recollement des parties gauche et droite puis permutation
initiale inverse (IP-1).

Techniques de cryptographie, 2020 57


L'algorithme DES
1. Fractionnement du texte

2. Permutation initiale des blocs (IP)

Bloc de 64 bits
3. Découpage des blocs en deux parties: gauche et droite

Techniques de cryptographie, 2020 58


L'algorithme DES
4. Étapes de permutation et de substitution répétées 16 fois
(appelées rondes ou rounds) ;

Techniques de cryptographie, 2020 59


L'algorithme DES
5. Recollement des parties gauche et droite puis
permutation initiale inverse (IP-1).

32 bits 32 bits

64 bits

Techniques de cryptographie, 2020 60


L'algorithme DES

Techniques de cryptographie, 2020 61


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

Cryptage décryptage Cryptage Cryptage Cryptage Cryptage

Techniques de cryptographie, 2020 62


3-DES (triple DES)
 Le triple DES
 Pour palier à la faiblesse du DES concernant sa longueur de clé (56 bits),
on utilise souvent une version renforcée appelée triple DES ou 3DES. Ce
n’est pas la solution car cette version est trop lente, comparée à un AES
par exemple.
 Si EK, DK sont les fonctions de chiffrement et de déchiffrement du DES,
on chiffre par: x = EK1(DK2(EK1(x))), ce qui double la longueur de la clé.

Techniques de cryptographie, 2020 63


Etapes de AES

• 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.

Techniques de cryptographie, 2020 64


64
Représentation des données

Techniques de cryptographie, 2020 65


AddRoundKey

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

Techniques de cryptographie, 2020 66


66
SubBytes
• Il s’agit d’une étape de substitutions des octets des
données selon une matrice S-Box prédéfinie.

Techniques de cryptographie, 2020 67


67
Table de substitution (S-box)

Techniques de cryptographie, 2020 68


SubBytes: Principe
• Interprète chaque octet comme deux
chiffres hexadécimaux x et y

S1,1 = xy16

Chaque octet de la matrice état est remplacé par l’octet situé à


la ligne x (4 bits de gauche) et colonne y (4 bits de droite)
Exemple: l’octet {95} est remplacé par l’octet situé dans la
ligne 9 et la colonne 5 don’t la valeur est {2A}

Techniques de cryptographie, 2020 69


Table de substitution Inverse

Techniques de cryptographie, 2020 70


ShiftRows
• Décalage circulaire à gauche des lignes li par i-1 bytes

• InvShiftrows: décalage circulaire à droite des lignes li


par i-1 bytes
Techniques de cryptographie, 2020 71
71
MixColumns

Techniques de cryptographie, 2020 72


31/10/2020 LAABIDI Mounira 72
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

Techniques de cryptographie, 2020 73


Matrice de MixColumns et son inverse

Techniques de cryptographie, 2020 74


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

Techniques de cryptographie, 2020 75


Génération de la clé

Key Expansion Scheme

Techniques de cryptographie, 2020 76


Génération de la clé

 RotWord fait un décalage circulaire à gauche d’un octet


pour chaque mot:

RotWord[b0,b1,b2,b3] = [b1,b2,b3,b0]

 SubWord permet de substituer chaque octet du mot en


entrée en utilisant la matrice S-box

 SubWord(RotWord(temp)) effectue l’opérateur XOR


avec RCon[j] ( une constante à chaque ronde)

Techniques de cryptographie, 2020 77


Génération de la clé

Techniques de cryptographie, 2020 78


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

Techniques de cryptographie, 2020 79


Cryptage symétrique
 Limitation: Pas d'intégrité et d'identification de l'auteur
 Si Alice, Bob et Cédric partage le même lien de communication alors ils
partagent la même clé de chiffrement symétrique.

Techniques de cryptographie, 2020 80


Cryptage asymétrique (à clé publique)
 Utilisation d’une paire de clés:
• Publique: Connue par tout le monde, utilisée généralement pour
crypter ou vérifier la signature des messages.
• Privée: Connue uniquement par le détenteur, utilisée pour décrypter
et signer des messages.
 Impossible de trouver la clé privée à partir de la clé publique.
 Exemples: RSA, Diffie-Hellman, El Gamal, ECC
 Généralement dix fois plus lent que le cryptage symétrique.
 Utilisé généralement pour
• Cryptage / décryptage: assurer la confidentialité.
• Signature numérique: assurer l’authentification et la non répudiation.
• Distribution de clés: se mettre d’accord sur une clé de session.
 Clés à grande taille (ex: RSA: 1024-2048-…)

Techniques de cryptographie, 2020 81


Cryptage asymétrique: confidentialité

Clé publique Clé privée


du récepteur du récepteur

Texte clair Cryptage Décryptage Texte clair


Internet
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit crédit
111111, ♠♣▼╫◊ 111111,
♫◙◘€£
¥₪Ω‫٭‬

Texte crypté
Emetteur Récepteur

Techniques de cryptographie, 2020 82


82
Cryptage asymétrique: Authentification et non
répudiation

Clé privée Clé publique


de l’émetteur de l’émetteur

Texte clair Cryptage Décryptage Texte clair


Internet
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit crédit
111111, ♠♣▼╫◊ 111111,
♫◙◘€£
¥₪Ω‫٭‬

Texte crypté
Emetteur Récepteur

Techniques de cryptographie, 2020 83


RSA

Techniques de cryptographie, 2020 84


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.

Techniques de cryptographie, 2020 85


Rappel
 A mod B est le reste de la division entière de A par B
 La multiplication et le modulo
(A mod B) (C mod B) = A * C mod B
 L'exponentielle et le modulo
an mod m = (a mod m)n mod m
 Pierre Fermat :
Si on utilise un nombre premier comme module, alors quand on
élève un nombre à la puissance (nombre premier -1), on obtient 1
• Pour n'importe quel nombre m et pour p premier :
m( p – 1 ) mod p = 1
• Exemple : 7 10 mod 11 = 1 …pas besoin de calcul car 11 est
premier

Techniques de cryptographie, 2020 86


Rappel
 Leonhard Euler :
• Lorsqu'on utilise un module comme étant le produit de deux
nombres premiers on a :
Soit n = p * q, avec p et q premiers, et quelque soit m
m( p – 1 ) ( q – 1 ) mod n = 1
• Exemple : soit p = 11 et q = 5, n = 55 et (p – 1)(q – 1) = 10 * 4 =
40
38 40 mod 55 = 1
• Si on manipule le résultat d'Euler en multipliant par m l'équation :
m * m( p – 1 ) ( q – 1 ) mod n = m
m( p – 1 ) ( q – 1 ) + 1 mod n = m

Techniques de cryptographie, 2020 87


RSA: Algorithme
 Étapes
1. Sélectionner deux entiers premiers entre eux « p » et « q »
2. Calculer n = p x q
3. Calculer φ(n)=(p-1)(q-1)
4. Sélectionner « e » tel que: pgcd(φ(n),e)=1 ; 1<e<φ(n)
 En général « e » est un entier de petite taille.
5. Calculer d=e-1 mod φ(n). En d’autre terme: d.e = 1 mod (φ(n))
6. Clé publique: Kpu={e,n}
7. Clé privée Kpr = {d,n}
 Pour crypter un message M < n, l’émetteur:
• Obtient une clé publique du récepteur et calcule « C= Me mod n »
 Pour décrypter un message crypté C le récepteur
• Utilise sa clé privée et calcule « M = Cd mod n »

Techniques de cryptographie, 2020 88


RSA: Algorithme
Cryptage Décryptage
RSA: Exemple Texte
Texte clair Texte clair
crypté

 p = 17, q = 11, n = p x q= 187


 (n) = 16 x 10 =160,
 Choisir e = 7,
 d.e =1 (mod (n))  d = 23

Techniques de cryptographie, 2020 89


Preuve de RSA
 D(E(M)) = (Me mod n)d mod n
= Me.d mod n
 On a: e.d = 1 (mod φ(n) )
= z x φ(n) + 1
 Me.d = M z x φ(n) + 1
= (Mz)φ(n) x M
= 1 x M (mod n)
 Par hypothèse RSA crypte des blocks de données de taille
inférieure à n (décomposition en blocks)
 D(E(M)) = M

Techniques de cryptographie, 2020 90


Exemple d'utilisation de RSA
 Création de la paire de clés:
• Soient deux nombres premiers au hasard: p = 29, q = 37, on
calcule n = pq = 29 * 37 = 1073.
• On doit choisir e au hasard tel que e n'ai aucun facteur en
commun avec (p-1)(q-1):
(p-1)(q-1) = (29-1)(37-1) = 1008
• On prend e = 71
• On choisit d tel que 71*d mod 1008 = 1, on trouve d = 1079.

• On a maintenant les clés :


- la clé publique est (e,n) = (71,1073) (=clé de chiffrement)
- la clé privée est (d,n) = (1079,1073) (=clé de déchiffrement)

Techniques de cryptographie, 2020 91


Exemple d'utilisation de RSA
 Chiffrement du message 'HELLO'.
 On prend le code ASCII de chaque caractère et on les met
bout à bout:
m = 7269767679
 Il faut découper le message en blocs qui comportent moins de
chiffres que n.
 n comporte 4 chiffres, on découpe notre message en blocs de
3 chiffres:
726 976 767 900 (on complète avec des zéros)
 On chiffre chacun de ces blocs :
• 726^71 mod 1073 = 436
• 976^71 mod 1073 = 822
• 767^71 mod 1073 = 825
• 900^71 mod 1073 = 552
 Le message chiffré est 436 822 825 552.

Techniques de cryptographie, 2020 92


Problèmes de RSA
 Complexité algorithmique de la méthode:
• recherche de nombres premiers de grande taille, et choix
de clés très longue
• Réalisation des opérations modulo n.
 Problème d’implémentation sur les équipements disposants
de faible puissance de calcul (ex: cartes bancaire, stations
mobiles, etc.)
 La méthode est officiellement sûre si des contraintes de
longueur des clés et d’usage sont respectées.
  Solution: Utilisation de RSA pour l’échange des clés
secrètes de session d'un algorithme symétrique à clés
privées.

Techniques de cryptographie, 2020 93


La méthode Diffie - Hellman

• Le protocole de Diffie Hellman est basé sur le problème


de logarithme discret (Discrete Logarithm Problem
DLP):

DLP: Soit G un groupe cyclique d’ordre n engendré


par g.
Pour y G, trouver ℓ Z tel que gℓ=y est le problème du
logarithme discret.

Techniques de cryptographie, 2020 94


La méthode Diffie - Hellman

Techniques de cryptographie, 2020 95


La méthode Diffie - Hellman
Déroulement de l’algorithme

Techniques de cryptographie, 2020 96


La cryptographie sur les courbes elliptique

 Les systèmes à base de courbes elliptiques appliqués à la


cryptographie ont été proposés pour la première fois en
1985 par Neal Koblitz et Victor Miller.

 La cryptographie à courbe elliptique (Elliptic curve


cryptography [ECC]) est un système cryptographique à clé
publique, tout comme RSA, El gamal, …

 Chaque utilisateur possède une clé publique et une clé


privée:
• La clé publique est utilisée pour le chiffrement/ la
vérification de la signature.
• La clé privée est utilisée pour le déchiffrement / la
génération de la signature.

Techniques de cryptographie, 2020


La cryptographie sur les courbes elliptique
 Les deux parties se mettent d’accord sur des données
publiques:
• L’équation de la courbe elliptique en choisissant les valeurs de a
et b :
y2 = x3 + ax + b
où: 4a3 + 27b2 ≠ 0

• 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)

 Chaque utilisateur génère sa paire de clés publique/privée


• Clé privée= un entier x appartenant à l’interval [1, p-1]
• Clé publique= le produit, Q, de la clé privée par le point G
(Q = x*G)

Techniques de cryptographie, 2020


La cryptographie sur les courbes elliptiques

Exemples de courbes elliptiques:

Techniques de cryptographie, 2020


La cryptographie sur les courbes elliptique
• La sécurité de ECC dépend de la difficulté de résoudre
le problème de logarithme discret.
• Le problème de logarithme discret :
DLP: Soient G et Q deux points sur la courbe elliptique tel que
Q = xG, où x est une valeur scalaire.
DLP: Étant donné Q et G, trouvez x? Si x est très grand, il devient
impossible de le calculer.

• Le probleme de logarithme discret défini sur un groupe


associé à une courbe elliptique est considéré plus
difficile que celui défini sur un groupe fini (muni de
l’opération de multiplication).

• L'opération principale dans ECC est la multiplication de


points
Techniques de cryptographie, 2020
La cryptographie sur les courbes elliptique

 La multiplication de points est réalisée par deux opérations


de base:
- Addition de points, L = J + K
- Doublement de points, L = 2J

Exemple:
Si k = 23; alors, kP = 23*P
= 2(2(2(2P) + P) + P) + P

Techniques de cryptographie, 2020


La cryptographie sur les courbes elliptique

Addition de points

Techniques de cryptographie, 2020


La cryptographie sur les courbes elliptique

Doublement de points

Techniques de cryptographie, 2020


La cryptographie sur les courbes elliptique

Les courbes elliptiques sont utilisées comme une


extension à d'autres cryptosystèmes actuels:
• Elliptic Curve Diffie-Hellman Key Exchange
• Elliptic Curve Digital Signature Algorithm

Techniques de cryptographie, 2020


La cryptographie sur les courbes elliptique

 ECDH – Elliptic Curve Diffie Hellman


A (QA,dA) – Paire de clé publique privée
B (QB,dB) – Paire de clé publique privée
1. Soit (QA,dA) la paire de clés d'Alice et (QB,dB) celle de
Bob
2. Alice calcule (xk,yk)=dAQB et Bob calcule (xk,yk)=dBQA

3. La clé partagée est xk (l’abscisse x du point).

La clé partagée secrète calculée par Bob et Alice est égale,


car dAQB=dAdBG=dBdAG=dBQA.

Techniques de cryptographie, 2020


Échange sécurisé
 Résolution du problème de l'échange des clés secrètes :
utilisation d'une méthode hybride combinant à la fois chiffrement
symétrique et asymétrique.

 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 ;

Techniques de cryptographie, 2020 106


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

 Mêmes avantages que les autres crypto-systèmes


asymétriques: confidentialité, authentification et non-
répudiation

 Longueurs de clé plus courtes


- Chiffrement, déchiffrement et vérification de signature
accélérés
- Économie de stockage et de bande passante

Techniques de cryptographie, 2020


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

Techniques de cryptographie, 2020 109


Fonction de hachage
 Entrée: message M avec contenu et taille arbitraire.
 Sortie: message de taille fixe h=H(M).
 H(M) est appelé condensât, ou empreinte, ou fingerprint, ou
message digest
 Irréversible:
• Étant donnée h, il est difficile de trouver x tel que: h = H(x)
• Complexité de l’ordre de 2n, n est le nombre de bits du digest.
 Résistance forte à la collision:
• Étant donné x, il est impossible de trouver y avec H(x) = H(y)
• Il est impossible de trouver une paire x, y tel que H(x) = H(y)
 Calcul facile et rapide (plus rapide que le cryptage symétrique).

Techniques de cryptographie, 2020 110


Fonction de hachage

Texte clair Texte clair

Internet
Hashage =? Hashage
Empreinte Empreinte Empreinte
reçue recalculée

1) = Le texte reçu est intègre


Empreinte Empreinte
reçue recalculée

2) ≠ Le texte reçu est altéré


Empreinte Empreinte
reçue recalculée

111
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
Techniques de cryptographie, 2020 112
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)))

Techniques de cryptographie, 2020 113


Signature numérique: Création

Clé privée
du signataire

Texte clair Signature


Hashage Cryptage
Électronique
Empreinte

Processus de Création de la Signature


Électronique

114
Signature numérique: Vérification

Texte clair Hashage


Empreinte
recalculée
Clé publique
=?
de l’émetteur

Signature Décryptage
Electronique
Empreinte
reçue

1) = La signature reçue est correcte


Empreinte Empreinte
reçue recalculée

2) ≠ La signature reçue est incorrecte


Empreinte Empreinte
reçue recalculée

115
Signature numérique

• La signature permet de mettre en œuvre


les services:
• Intégrité du message
• Authentification
• Non-répudiation
• Génération d’une clé de chiffrement
symétrique pour le service de Confidentialité

Techniques de cryptographie, 2020 116


Signature numérique

Exemples d’algorithmes:
 Signature RSA

 Digital signature Algorithm (DSA)

 Elliptic Curve Digital signature Algorithm


(ECDSA)

Techniques de cryptographie, 2020 117


Signature RSA

 Pour signer un message m  P, A doit calculer:


h  H (m), avec H une fonction de hachage
s  h d mod n
• La signature de m calculée par A est s

 Pour vérifier la signature de A, B doit:


• Obtenir la clé publique de A (n, e)
• Calculer: h1  s e mod n
• Calculer: h  H (m)
• Vérifier si h  h1 , sinon la signature est rejetée

118
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

Clé publique: (p, q, g, y)


Clé privée: x
Techniques de cryptographie, 2020 119
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

Techniques de cryptographie, 2020 120


DSA

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

Techniques de cryptographie, 2020 121


ECDSA

 ECDSA - Elliptic Curve Digital Signature Algorithm


Génération de signature :
Pour signer un message m par l’émetteur A, en utilisant dA la clé privée
de A et QA = dA * G la clé publique de A.

1. Calculer e = H (m), avec H une fonction de hachage, comme SHA-1


2. Selectionner un nombre aléatoire k de [1,n − 1] avec n est l’ordre de G
3. Calculer r = x1 (mod n), avec (x1, y1) = k * G. Si r = 0, revenir à l’étape 2
4. Calculer s = k − 1(e + dAr)(mod n). Si s = 0, revenir à l’étape 2
5. La signature est la paire (r, s)

Techniques de cryptographie, 2020 122


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)

Techniques de cryptographie, 2020 123

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy