Course Crypto
Course Crypto
Course Crypto
Khalil IBRAHIMI
Laboratoire d’Informatique
d Informatique d’Avignon
d Avignon (LIA)
Contact : [email protected]
1
Plan
Chapitre 1 : Concepts généraux et définitions;
Chapitre
Ch it 4 : Authentification,
A th tifi ti hachage,
h h signature
i t ett
gestion de clés;
2
Références
1- Titre : Cryptographie
yp g p appliquée
pp q :p
protocoles,, algorithmes,
g , et code
source en C,
Auteur : Bruce Schneier.
4
Cryptologie
yp g
Cryptographie Cryptanalyse
Cryptosystème Cryptosystème
Symétriques Asymétrique
Confidentialité des
informations transmises ou
stockées
5
Schéma général de la cryptologie
– Un espace M = {M1,
{M1 M2,
M2 …}} des messages en clair;
8
Concepts généraux et définitions
Cryptosystème :
¾ La sécurité de système doit reposer uniquement sur le secret des clés K et K’.
10
Cryptosystèmes à usage générale
– Gé
Généralement
é l t un seull algorithme
l ith estt utilisé
tili é pour lle chiffrement
hiff t ett lle
déchiffrement (D = E).
11
Message en Message en
clair
l i M clair M
Déchiffrement
Chiffrement Canal de communication non sécurisé
M = DK’ (C)
C = EK (M)
Clé K’
Clé K Message
chiffré C
É tt
Émetteur A Récepteur B
Émetteur A Récepteur
p B
Message en Message en
clair
l i M clair M
Déchiffrement
Chiffrement Canal de communication non sécurisé
M = DK (C)
C = EK (M)
Clé K
Clé K Message
chiffré C
• Avantages
– Rapidité de chiffrement / déchiffrement,
– Confidentialité
C fid ti lité llocale
l par un seull utilisateur
tili t ((protection
t ti d de fifichiers
hi d
dans
une machine),
– Champs d’application très vaste (Banques, communications
téléphoniques),
– Longueur de la clé relativement petite codée entre 40 bits et 256 bits.
• Inconvénients
– Si la clé est compromise (volée, piratée, …) le système n’est plus fiable
et donc plus de confidentialité
confidentialité,
– Dans un réseau de N correspondants, il faut distribuer N (N-1)/2 clés
par des canaux sûr et donc problème de distributions des clés par des
voies sécurisées
sécurisées.
14
Cryptosystèmes à clé symétrique
• Outils
– Substitution,
– Transposition,
– Ou Exlusif,
– Décalage logique,
– C bi i
Combinaison d
des ffonctions
ti ci-dessus.
id
• Exemples
p de réalisation
– DES,
– IDEA,
– MARS
MARS,
– 3DES, …
15
• Le conceptt de
L d cryptosystèmes
t tè asymétriques
ét i a été introduit,
i t d it en 1976,
1976 par
Delfie Hellman. L’idée de base est repose essentiellement sur deux
algorithmes Ek différent de Dk’ pour K différent de K’ (voir la figure 3 ci-
après).
après)
• Ce cryptosystème met en jeu deux clés, une pour le chiffrement (K) et une
autre pour le déchiffrement (K’). De ce fait, chaque utilisateur doit posséder
une paire de clé (K, K’). La clé k est appelée publique Kp : elle peut être
rendue publique dans un annuaire, une base de donnée. L’autre clé K’ est
appelée
lé privée
i é Kpr
K doit
d i êêtre garder
d secrète
è et n’est
’ connue que d de son
propriétaire.
Émetteur A Récepteur
p B
Message en Message en
clair
l i M clair M
Déchiffrement
Chiffrement Canal de communication non sécurisé
M = DK’ (C)
C = EK (M)
Clé K’
Clé K Message
chiffré C
1
1. Confidentialité (voir la figure 4)
• Il s’agit de garantir le secret de l’information transmise ou
archivée.
• S it A un utilisateur
Soit tili t avec la
l paire
i de d clé
lé suivante
i t : Kp
K A la
l clé
lé
publique, KprA la clé privée,
• Soit B un utilisateur avec la paire de clé suivante : KpB la clé
publique,
bli K B la
Kpr l clé
lé privée,
i é
• A est l’émetteur du message chiffré et B est le récepteur de ce
message.
18
Message en Message en
clair M clair M
Déchiffrement
Chiffrement Canal de communication non sécurisé
M = DKprB (C)
C = EKpB (M)
A chiffre le
message M avec
KpB la clé publique de Message
B provenant d’un chiffré C B déchiffre le
centre de message C avec sa
di ib i
distribution clé privée tenue
secrète
Canal de KpA
communication KpB
non sécurisé Centre de distribution
de clés publiques
Émetteur A Récepteur B
19
Fig 4 : Synoptique du mécanisme de confidentialité
– A chiffre le message
g M avec la clé p
publique
q B Î C = EkpB ((M).
)
20
Aspects techniques de la cryptographie
asymétrique
• Il s’agit
’ i d de garantir
i l’l’origine
i i d’d’une iinformation
f i (l(le courrier
i
électronique, un bon de commande transmis en ligne),
(KprA) (C = EkprA(M),
M = DkpA(C) = DkpA[EkprA(M)],
21
• B identifie A en utilisant
tilisant la clé publique
p bliq e de A pour
po r déchiffrer le
message C ce qui donne l’authentification de A.
3 Intégrité
g
22
Aspects
p techniques
q de la cryptographie
yp g p
asymétrique
– B déchiffre le message
g c’ avec sa clé p privée ((kprB)), puis
p le résultat
sera ensuite déchiffré par la clé publique de A (kprA),
1. DkprB (C’) = C
2 Ekp
2. k (C) = Ekp
A
k [ Dkpr
A
k
B (C
(C’))
= EkpA[ DkprB (EkpB[ EkprA (M) ]) ] = M
• Hypothèse fondamentale :
On ne doit pas pouvoir trouver la clé privée à partir de la clé publique
(connue par tous le monde et circule sur des canaux non sécurisés).
23
Émetteur A
Récepteur B
Messageg en Assure la confidentialité
clair M
M = EKpA (C)
Message
chiffré
hiff é C’
Messageg en
A
Assure l’authenticité
l’ th ti ité
clair M
• Avantages
– Échange de clé publique sur un canal non sécurisé (pas besoin d’un
canal sécurisé),
– Possibilité de création de base de données des clés publiques,
– Authentification du message grâce à la signature numérique,
– Nombre de clés croît linéairement avec le nombre d’utilisateurs Î N
utilisateurs Î N pairs de clés
clés.
• Inconvénients
– Temps de calcul mathématique et espace mémoire relativement
important, donc moins rapides que les cryptosystèmes symétriques,
– Sensible aux attaques à message clairs choisis (clé publique),
– Validité des clés publiques Î problème de certifications des clés
publiques Î confiance à une tiers personne Î organisme de
distribution des clés,
– Longueur des clés très grandes : nombre premiers aléatoires avec une
certaine probabilité codée entre 1024 et 4096 bits
bits.
25
• O il
Outils
– Théorie des grands nombres premiers,
– Fonctions d’exponentiation
p modulaires.
• Exemples de réalisation
– RSA,
RSA Diffi
Diffie-Hellman,
H ll
– El Gamal, …
• Cryptosystème hybrides
L’idée de base consiste à utiliser un cryptosystème asymétrique pour
échanger les clés d’un
d un cryptosystème symétrique.
symétrique Ce système combine
donc tous les avantages des deux cryptosystèmes symétriques et
asymétriques.
26
Cryptosystèmes hybride
É
Émetteur A
Récepteur B
La clé de
Canal de communication non
session Ks C = EKpB (Ks) Ks = DKprB (C)
sécurisé
La clé de
session Ks
Fi 6 : Schéma
Fig S hé d’un
d’ cryptosystème
t tè hybride
h b id : échange
é h de
d clé
lé de
d session
i
(cryptosystème asymétrique) 27
Cryptosystèmes hybride
Récepteur B
Émetteur A
Message en
Canal de communication non
clair M C = EKs (M) M = DKs(C)
sécurisé
Message en
clair M
Exemple
p de réalisation :
PGP (Pretty Good Privacy)
28
Chapitre 2 : Aspects techniques de la
cryptographie symétrique
29
Cryptographie classique
• Substitution
Une substitution est un remplacement d’alphabet. A chaque caractère ou
groupe de caractères du message en clair on substitue un autre caractère ou
groupe de caractères
caractères. Ce procédé doit augmenter la confusion de façon à
compliquer la liaison entre le message en clair. La substitution inverse redonne
le message en claire.
1 Substitution monoalphabétique
Soient A = {a0,
S { a1, …, an-1}} les caractères alphabétiques
ordonnés dans le message en clair et C = {f(a0), f(a1), …, f(an-1)} les
caractères alphabétiques utilisés dans le message chiffré. La fonction
f estt la
l fonction
f ti de
d chiffrement.
hiff t Soit
S it M = {m0,
{ 0 m1,1 …, mr-1}
1} lle
message en clair où mi sont les caractères du message M de A.
La clé et l’algorithme de chiffrement sont combinés et représentés par
Exemple :
M : RENAISSANCE
n: 26
Cryptographie classique
Exercice :
32
Cryptographie classique
2
2. S b i i polyalphabétique
Substitution l l h bé i
fi(A) = Ci pour i = 1, …, n
33
Cryptographie classique
En pratique
E ti l nombre
le b d’alphabets
d’ l h b t utilisées
tili é dans
d l chiffrement
le hiff t estt égale
é l
au nombre utilisés dans la clé. De ce fait, la clé de chiffrement doit donc
q caractère de la clé on attribut un
être constituée de d caractère, à chaque
alphabet de substitution Ci. Donc, cette clé sera répétée autant de fois que
nécessaire pour chiffrer le message M.
35
Message en clair
36
3 Substitution par polygrammes
Cette technique permet de chiffrer les carctères par blocs de deux
caractères (bigramme) ou trois caractères (trigramme),
(trigramme) …. L
L’algorithme
algorithme le
plus connu est play fair Wheastone (1854) qui a été
utilisé par les anglais durant la première guerre mondiale.
38
3 Masque
3. M jetable
j bl ((one time
i P
Pad)
d)
Pour éviter les attaques statistiques, cette technique consiste à utiliser une clé,
appelé masque, constituée de K caractères tries au hasard et de même longueur
que le message en clair. Le chiffrement est effectué par :
Ci = f(mi) = (mi + Ki) mod n
Où
mi : le caractère à chiffrer
Ki : caractère de la clé (masque) généré aléatoirement pour chiffrer mi
n : dimension de ll’ensemble
ensemble de ll’alphabets
alphabets A.
A
Cette fonction est identique au système de vigénere avec une génération aléatoire
des caractères de la clé dont la taille est celle du message en clair.
clair
Exemple :
n = 26
K = TBFRGFARFMIKL
M = MASQUEJETABLE
Calculer le message chiffré C = Ek(M)?
39
Cryptographie classique
• T
Transposition
iti
Le chiffrement par transposition est basé sur les permutations des caractères
du message en clair.
clair De ce fait,
fait les caractères sont toujours mais dans un
Autre ordre pour augmenter les diffusions dans le message en clair. Ce
procédé est fondé essentiellement sur des matrices d’ordres nxp.
Lecture du
Matrice message Message
Message
de taille chiffré à chiffré C
en clair M
nxp partir de la
matrice
Fi 6
Fig 6. P
Principe
i i d de lla ttransposition
iti
40
1 Transposition
1. T i i simple
i l par colonnes
l
Dans la matrice, le message en clair est écrit horizontalement et le message chiffré
est obtenu en lisant la matrice verticalement. De ce fait, ll’ordre
ordre de la matrice
représente la clé de chiffrement K.
Exemple :
K=4x4
M = INFORMATIQUES
Donc nous avons une matrice de 4 lignes et 4 colonnes.
colonnes
X est pour compléter la matrice.
1 2 3 4
I N F O
R M A T
I Q U E
S X X X
D’ ù le
D’où l message chiffré
hiff é estt
C = IRISNMQXFAUXOTEX 41
1 2 3 4
I N F O
R M A T
I Q U E
S X X X
42
1 Transposition
1. T i i complexe
l par colonnes
l
Dans la transposition complexe par colonnes, le nombre de colonnes (p) de la
matrice est fixé par le nombre de caractères dd’une
une clé K (tous les caractères sont
différents les uns aux autres), le nombre de ligne (n) dépendra de la longueur du
message en clair. Le classement dans l’ordre alphabétique des caractères de la clé
permet de fixer le séquencement de la lecture des colonnes de la matrice.
matrice
Exemple :
K = GATS,
GATS p = 4
M = INFORMATIQUES
G A T S
I N F O
R M A T
I Q U E
S X X X
43
A G S T
N I O F
M R T A
Q I E U
X S X X
44
Cryptographie moderne
La cryptographie
L t hi symétrique
ét i classique
l i t it i t des
traitaient d cryptosystèmes
t tè b é
basé
sur des caractères. Les différents algorithmes remplaçaient ou
p
transposaient les caractères. Les meilleurs systèmes
y combinaient les deux
opérations plusieurs fois.
Actuellement la cryptographie symétrique moderne utilise la même
philosophie La différence est que les algorithmes associés manipulent des
philosophie.
bits au lieu des caractères. Donc, il y a un passage d’un alphabet de 26
caractères à un alphabet de 2 caractères (base 2).
La plus part des algorithmes combinent également des substitutions avec
des transpositions en plus des deux fonctions logiques : « ou-
exclusif» et décalage logique.
45
Cryptographie moderne
1
1. O Exclusif
Ou E l if simple
i l
La fonction logique « ou-exclusif » ou « XOR » est une opération classique
sur les bits, est notée ‘^’ en langage C et ((+)) en mathématique binaire.
La table de vérité ou a et b sont codés sur un bit est
Entrée a Entrée b Sortie S
0 0 0
0 1 1
1 0 1
1 1 0
Table de vérité
46
Considérons un n bloc M du
d message en clair et une
ne clé K de chiffrement.
chiffrement Ils
sont codés à l’intérieur d’une machine informatique en code ASCII, et le
chiffrement se réalise en effectuant un XOR entre les différents bits de M
et C :
ci : ll’état
état logique du ième bit du message chiffré,
mi : l’état logique du ième bit du message en clair,
Ki : l’état logique du ième bit de la clé K.
47
Il existe
i t deux
d modes
d d de b
base d
de ffonctionnement
ti tddes algorithmes
l ith
symétriques ou à clé secrète : les algorithmes de chiffrement par blocs
g
et les algorithmes de chiffrement en continu. Les algorithmes
g de
chiffrement par blocs manipulent des blocs de texte en clair et de texte
chiffré. Les algorithmes de chiffrement en continu manipulent des flux
de texte en clair et de texte chiffré bit par bit ou octet par octet
octet.
Clé K
Ek Ek Ek
50
Modes cryptographiques
Vecteur
d’initialisation
VI
Message Ek Ek Ek
chiffré C
Fi 8 : Mode
Fig M d CBC : Chiff
Chiffrementt
52
M1 = Dk(C1) VI Mi = Dk(Ci) Ci-1
Dk Dk Dk
Vecteur
V t
d’initialisation
VI
Fi 9 : Mode
Fig M d CBC : Dé
Déchiffrement
hiff t
53
Modes cryptographiques
• Modes
M d d de chiffrement
hiff t en continu
ti
– Chiffrement à rétroaction (CFB : Cipher Feed Back )
En mode CBC,, les données peuventp être chiffrées par
p unités de m
bits plus petite ou égale à la taille d’un bloc à chiffrer de n bits.
La figure suivante montre un exemple de chiffrement en mode CFBà 8 bits
appliqué à un algorithme de chiffrement par bloc de 64 bits (n = 64 et m =
8). Un algorithme de chiffrement par bloc en mode CFB manipule une file
d’attente de la taille d’un bloc d’entrée. Initialement, la file est initialisée par
un bloc quelconque de même taille que le bloc à chiffrer : vecteur
d’initialisation VI. Ensuite, la file est chiffrée par un algorithme de
chiffrement par bloc Ek et les 8 bits les plus à gauche du résultat de
chiffrement
hiff t sontt combinés
bi é par ou exclusifl if avec lle premier
i caractère
tè d de 8
bits du message en clair pour former les 8 premiers bits du message
chiffré.
Modes cryptographiques
Les 8 bits sont placés dans les 8 bits les plus à droite de la file d’attente
et les autres bits sont décalés de 8 positions vers la gauche
gauche. Les 8 bits les plus
à gauche sont ignorés. Les autres caractères sont chiffrés de la même manière
jusqu’à la fin du bloc de 64 bits.
File d
d’attente
attente de 64 bits (8 octets)
Clé K Ek
Octet le plus
à gauche
Chiffrement
Ci = Mi Ek(Ci-1)
Mi (8 bits) Ci (8 bits)
Déchiffrement
Fig 8 : Mode CFB Mi = Ci Ek(Ci-1)
Modes cryptographiques
– Mode de rétroaction de sortie (OFB : Output-Feed Back)
Ce mode est similaire au mode CFB,, sauf que q n bits chiffrés sont rangés g
dans les 8 positions les plus à droite de la file d’attente. Le résultat de
chiffrement peut être transmis et ne contribue pas au chiffrement du
caractère suivant.
suivant
File d’attente de 64 bits (8 octets)
Clé K Ek
Octet le plus
à gauche Si-1
Si 1 Chiffrement
1977 : L’algorithme de chiffrement conçu par IBM est retenu par le NBS
(National Bureau of Standards) sous le nom de DES.
1978 : L’ANSI valide à son tour cet algorithme sous le nom du DEA (Data
E
Encryption
ti AlAlgorithm).
ith )
Principe
p : L’algorithme
g DES est un cryptosystème
yp y de chiffrement
symétrique par blocs (mode ECB). Le principe de base du DES est fondé
essentiellement sur la transposition binaire ou permutation pour insérer le
mécanisme de diffusion et sur la substitution binaire pour intégrer le
mécanisme de confusion.
Clé K de
DES DES DES
64 bits
59
Bloc T
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 12 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
Le nouveau bloc généré par cette permutation est divisé en deux parties
de 32 bits chacune. La partie droite notée R(i-1), constituée uniquement
des bits pairs de la permutation. La partie gauche notée L(i-1) est
constituée par les indices des bits impairs restants.
restants
58 50 42 34 26 18 10 2 57 49 41 33 25 17 9 1
60 52 44 36 28 20 12 4 59 51 43 35 27 19 11 3
62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5
64 56 48 40 32 24 16 8 63 55 47 39 31 23 15 7
Bloc E(Ri-1)
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 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
B = S(E(R
b1
Ri-1) XOR
b2 b’5
b3 Table de
substitution b’6
b4 b’7
R Ki) de 3
b5 S2
b’8
b6
32 bits
b43
b44 b’29
b45 Table de
substitution b’30
b46 b’31
b47 S8
b’32
b48
Figure 13 : Substitution compressive
Mé
Mécanisme:
i
Substitution pour le bloc b1b2b3b4b5b6. Les deux bits faible et fort
g b6b1 =X, les 4 bits intermédiaires le
sélectionnent le numéro de la ligne
numéro de la colonne b2b3b4b5 =Y. La position (X,Y) permet de substituer le
bloc b6b5b4b3b2b1 par un autre bloc de 4 bits comme intersection de la ligne
X et colonne YY.
Exemple : G = 101110. Les premiers et derniers bits donnent 10, c'est-ŕ-dire
2 en binaire. Les bits 2,3,4 et 5 donnent 0111, soit 7 en binaire. Le résultat
de la fonction de sélection est donc la valeur situé ŕ la ligne n°2=X, dans la
colonne n°7=Y. Il s'agit de la valeur 11=(X,Y), soit en binaire 1011.
Le standard des algorithmes de chiffrement de
données : le DES
Les tables de substitutions :
itération on obtient le bloc L16, R16 de 64 bits qui subira une permutation
finale ((inverse de la p
permutation initiale et constitue le bloc chiffré T du
message en clair M.).
Le standard des algorithmes de chiffrement de
données : le DES
Le bloc chiffré est
La figure
g 14 suivante p
présente le synoptique
y p q g générale p
pour chiffrer un
bloc T du message M.
75
Taille de la clé :
Les experts ont estimé que la taille de la clé utilisée est très faible. Leurs
arguments tournaient principalement autour de la possibilité d’une attaque
exhaustive Le DES code des messages en clair grâce à une clé de taille 56
exhaustive.
bits. Donc, le nombre des clés possibles est de 256=7,2*1016 clés. En
imaginant un ordinateur capable de tester la validité d’une clé par
microseconde (attaque directe), et en supposant que la bonne clé est la
dernière testée, le temps de calcul approcherai 2258 années. Mais ces
suppositions sont toutes prises par excès.
excès Certains mathématiciens estiment
que pour que le code soit inviolable la clé doit avoir la taille de 300 bits. Au
début IBM a proposé une clé de 128 bits mais la NSA l’a réduit à 64 bits. La
raison d’une telle réduction n’a pas été rendue publique.
.
76
Tables-S (S-Box) :
L’existence de ces tables-S permettent d’imposer au message chiffré un
caractère non linéaire des bits entre eux. Classifiés par la NSA, les
critères de réalisation des fonctions S(i) n’ont jamais été rendus publics.
Aussi est-il difficile de se prononcer sur le caractère fortement non
linéaire de leur comportement. De plus, à travers plusieurs articles écrits
d
dans l
les parutions
ti régulières
é liè d
des conférences,
fé d
deux mathématiciens
thé ti i
(Diffie & Hellman) ont mis en évidence la structure quasi-linéaire de ces
fameuses fonctions. Cette considération pourrait réduire
considérablement le temps de cryptoanalyse.
cryptoanalyse
Nombre d’itération :
La sécurité du DES avec 16 itérations est grande et résiste à l’heure
l heure
actuelle à toutes les attaques effectuées avec des moyens financiers et
temporels raisonnables (i.e. moins de 10 millions de dollars et moins d’un
mois) Plusieurs versions du DES avec 3
mois). 3, 4
4, 6
6,… itérations ont été touts
cassées.
77
C
Conclusion:
l i
78
Variantes du DES :
Message Message
K1 K2 K3 chiffré
en clair
79
Historique :
Le 2 janvier 1997,
1997 le NIST a lancé un processus de remplacement de DES :
Advanced Encryption Standard, (AES). Un appel d’offre a été lancé le 12
Septembre 1997. Il y était requis qu’AES possède une longueur de bloc égale à
128 bits et ququ’ilil supporte des longueurs de clef égales à 128, 192 et 256 bits. De
plus, Il était nécessaire qu’AES soit libre de droits dans le monde entier.
Les soumissions devaient être rendues le 15 juin 1998. Des vingt-et-un systèmes
yp g p q
cryptographiques soumis,, q
quinze remplissaient
p tous les critères nécessaires et ont
été acceptés en tant que candidats AES. Le NIST a présenté les quinze candidats
lors de la First AES Candidate Conference le 20/08/1998. Une second AES
Candidate Conference s’est tenue en mars 1999. En août 1999, cinq candidats ont
été choisis par le NIST comme finalistes : MARS, RC6, Rijndael, Serpent et
Twofish. En avril 2000, une Third AES Candidate Conference a eu lieu. Le 2
octobre 2000, Rijndael a été choisis comme standard avancé de chiffrement.
80
Le standard des algorithmes de chiffrement de
données : AES (Advenced Encryption Standard)
81
Description d’AES:
AES est un algorithme de chiffrement symétrique itéré; le nombre d’étages ou de
ronde, qu’on le note Ne, dépend de la longueur de la clef. Ne = 10 si la clé a
une longueur
l d 128 bits;
de bi Ne=12
N 12 dans
d l cas d’une
le d’ clé
lé de
d longueur
l 192 bits
bi et
Ne =14 si la clé comporte 256 bits.
L fifigure 15 montre
La t succinctement
i t t le
l déroulement
dé l t du
d chiffrement.
hiff t Chaque
Ch
ronde/étage est composé comme suit :
1. BYTE_SUB (Byte Substitution) est une fonction non-linéaire opérant
indépendamment sur chaque bloc à partir d d'un
un table dite de substitution.
substitution
2. SHIFT_ROW est une fonction opérant des décalages (typiquement elle prend
l'entrée en 4 morceaux de 4 octets et opère des décalages vers la gauche de
0 1,
0, 1 2 et 3 octets pour les morceaux 1,
1 2,
2 3 et 4 respectivement).
respectivement)
3. MIX_COL est une fonction qui transforme chaque octet d'entrée en une
combinaison linéaire d'octets d'entrée et qui peut être exprimée
mathématiquement par un produit matriciel sur le corps de Galois (28). )
4. Le + entouré d'un cercle désigne l'opération de OU exclusif (XOR). Ki est la
82
ième sous-clé calculée par un algorithme à partir de la clé principale K.
M
K
Etage 1
BYTE_SUB
SHIFT ROW
SHIFT_ROW
MIX_COL
k1
Etage 2
Etage 9
g 10
Etage
BYTE_SUB
SHIFT_ROW
k10
C
Figure 15 : Chiffrement selon l’algorithme AES. 83
84
Le concept de la cryptographie asymétrique a été introduit pour la première
fois par Diffie Hellman en 1976
1976.
L’idée neuve dans le domaine était d’utiliser deux clés différentes pour
chiffrer et déchiffrer un message. Une des clés sera publiée et l’autre
l autre doit
être maintenu secrète.
yp y
Cryptosystèmes asymétriques
y q ou à clé p
publique.
q
A la même époque une nouvelle approche à clé publique a été proposée par
Rivest, Shamir et Aldeman appelée RSA.
Les algorithmes à clé publique sont conçus pour résister aux attaques à
texte en clair choisi; leur sécurité dépend à la fois de la difficulté de déduire
la clé privée à partir de la clé publique et la difficulté de déduire le texte en
clair à partir du texte chiffré.
Avantage
Chiffrement et le déchiffrement
I- 1. Principe
L’utilisation du RSA consiste à générer tout d’abord des clés publiques et
privées et ensuite effectuer le chiffrement, le déchiffrement des messages
ou l’authentification (signature numérique des messages).
a b mod n
Elle est facile à calculer dans un sens et elle est difficile à inverser ( le
logarithme discret)
Chiffrement
Déchiffrement
88
Pour que les deux mécanismes soient réversibles il faut que
Ainsi, les clés publiques et privées sont liées par l’équation suivante :
Un nombre premier est un entier dont les seuls facteurs soit 1 et lui-même.
Deux nombres entiers sont premiers entre eux si leurs PGCD = 1.
L’algorithme
L algorithme le plus utilisé pour tester la primalité d’un
d un entier de grande
valeur est celui de Rabin-Miller.
a = kn + b
90
3. Exponentielle modulaire de base n
ax mod n
91
x = a-1 mod n
5. Fonction d’Euler
1.
1 a aФ(n)-1
( ) mod n =1 1
2. a =a
-1 Ф(n)-1 mod n
3. x = a mod n
-1
4. x = aФ(n)-1 mod n
x = b aФ(n)-1 mod n
Factorisation
Condition pour avoir le chiffrement par (eA , nA) et le déchiffrement par (dA ,
nA))
Pour que eA dA mod Ф (nA) = 1 possède une solution unique il faut que le
PGCD (eA , Ф (nA) ) = 1
3- Calcul du nombre dA
Remarque :
e-11 peut être également calculé par l’algorithme
l algorithme d’Eculide
d Eculide étendu
dA = eA-1 mod Ф (nA)
dA Є [ 2 ,nA
nA – 1 ]
(dA , nA) représente la clé privée KApr à garder secrète
III. Exemples
Exemple 1
Chiffrement / déchiffrement du message M=8 reçu par A
KAp = ( 11 , 15 )
dA = 11 Ф ((nA)-1
) mod 15 = 3
KApr = ( 3 , 15 )
Chiffrement de M
Un correspondant B chiffre M = 8 avec la clé publique de A
C = 811 mod 15 =2
Déchiffrement de C
M = 23 mod 15 =8
97
Exemple 2
Chiffrement / déchiffrement du message M « couleurs » reçu par A
KAp = ( 83 , 901 )
Ainsi, dA = 83 Ф (nA)-1 mod 901 = 411
Chiffrement de M
99
Déchiffrement de C
L’inconvénient majeur est que M peut être déchiffrer par n’importe qui
puisque eA et nA sont publiques.
101
Sécurité de RSA :
La sécurité de RSA réside au niveau de la longueur des nombres p et q.
Ces deux nombres ont été codés sur 512 bits, 640 bits et 1024 bits.
Actuellement sont codés sur 2048 et 4096 bits.
Performances :
Le RSA est moins rapide que le DES à cause des calculs des puissances
modulo. Dans les réalisations matérielles le RSA est environ 1000 fois plus
lente que le DES. Au niveau logiciel,
g le chiffrement de RSA est bien plus
rapide si vous choisissez bien la valeur de e (les plus courants sont 3, 17 et
65537).
Conclusion :
Le RSA est le plus populaire parmi les algorithmes à clé publique. Vu la
complexité de calculs, le RSA est souvent utilisé au début des
communications
i i pour é
échanger
h d
des clés
lé dde session
i (f
(faible
ibl quantité
ié
d’information à communiquer) des algorithmes symétriques qui seront 103
utilisés pour effectuer des communications en différé ou en temps réel.
Ainsi, la valeur K = gYX mod n reçue par les deux parties devient leur secret
partagé et par conséquent, elle peut être utilisé comme clé de session pour
communiquer en utilisant un algorithme à clé symétrique.
104
KA p = gX mod n est la clé publique de A et sa clé privée est KA pr = X.
KB p = gY mod n est la clé publique de B et sa clé privée est KB pr = Y.
Pour trouver les clés privées X et Y un attaquant doit résoudre l’inverse
l inverse de
gX mod n ou gY mod n. Cette résolution reste un problème très redoutable
en mathématique.
Algorithme d’ElGamal
y = gx mod n
La signature d’un
d un message M nécessite le choix d’un
d un nombre aléatoire k tel
que k et n-1 soient premiers entre eux. Cette signature sera composée de
deux parties. La première partie de la signature est exprimée par :
a = gk mod n
La deuxième p
partie de la signature
g est obtenue en résolvant l’équation
q ci-
dessous avec l’algorithme d’Euclide étendu:
106
Exemple :
KAp = (3,
(3 22, 11) KApr = 8
2- signature de M=5
Chiffrement de déchiffrement
Un correspondant B envoie un message M à A, en utilisant la clé publique
de A :
KAp = ( yA, gA , nA). Le message chiffré sera composé de deux parties
comme suit :
C1 = gkBA mod nA
C2 = ykBA mod nA
M = C2 /CxA1 mod nA
En effet,
Conclusion
109
3081 8902 8181 00CF 8424 B08C CD71 9110 7E44 2B2E 8014 35F0 49CE
8C3E 8CA9 3516 5FC7 9EB8 B4D2 9A89 637C 20C4 DB30 97AF ECB3
37F2 A000 00E8 E350 BA90 2B20 EEE5 9D5B 4A87 E0D5 895A B6A4
05A6 B2C4 2715 555F 6699 0A68 95AD 3963 6071 4C00 8431 7693 7EC0
20F9 8C31 EC2A 8585 9054 3478 4DD1 366B 9024 67B1 E8C8 C812
6EE9 E35B 5D04 700D 7C28 2702 0301 0001
Solution adoptée :
111
1 Signature numérique :
1.
112
- Notion de fonction de hachage à sens unique (one way hach function)
C’est une fonction mathématique facile à calculer dans un sens (chiffrement
facile) et est extrêmement difficile à calculer dans le sens inverse
(déchiffrement difficile).
MÎ H(M)Î empreinte digitale
Propriété de H(M) :
113
Principe de fonctionnement :
Mi
M0
M1 H = fonction de H(Mi)
hachage à sens
…. unique
H(Mi-1)
MN-1
Pour le premier bloc M0, une constante sera utilisée comme valeur initiale,
pour le bloc M1, H(M0) représente une valeur d’initiation et ainsi de suite. A
la fin du hachage H (MN-1) représente l’empreinte digitale du message.
114
- M de taille quelconque Î H(M) de taille fixe (valeurs standards 128 ou 160
bits)
Particularité des fonctions de hachage :
• Algorithmes associés sont publiques
• Une fois M haché on ne peut plus restitué M (sens unique)
- Fonction de hachage
g à sens unique
q avec clé ((ou à brèche secrète))
115
S(M)=DKApr(H(M))
Remarque :
116
Vérification d’une signature numérique
H(M)=EKAp(S(M))=EKAp(DkApr(H(M))
117
Exemples d’utilisation
Signature en utilisant :
Un algorithme de hachage :
• MD4 : Message Digist version 4 (produit des empreintes de 128 bits)
•MD5 : Message Digist version 5 (produit des empreintes de 128 bits)
• SHA2 : Hach Algorithm version 2
• RIPEMD 160 : Ripe Message Digest
Et un algorithme asymétrique :
RSA
ELGAMAL
- ou l’utilisation du :
g
Standard de signature numérique
q ((DSS))
DSA Digital Signature
118
Description de l’algorithme de hachage MD5
Le complément
p de M représente
p un remplissage
p g q qui commence avec 1 seul
et d’autant de 0 que nécessite et ensuite la taille initiale de M est codée sur
64 bits et est placée à la fin du message.
- Découpage de M’ en blocs de 512 bits chacun
B0 B1 ….. Bm
Étape 2 : Initialisation
Ét I iti li ti pour le
l traitement
t it t de
d B0
On définit 4 variables (variables de chaînage) A,B,C,D de 32 bits initialisées
par :
A = 01 23 45 67
B = 89 AB CD EF
C = FE DC BA 98
D = 76 54 32 10
Ces 4 variables sont copies dans 4 autres variables :
AA = A, BB = B, CC = C, DD = D
120
Étape 3 : Calcul itérative des 4 rondes (4*16=64 itérations)
Dans chaque ronde , on calcul de nouvelles valeurs des variables AA, B
B, C
C, D
à partir des anciennes valeurs en utilisant dans chaque ronde une fonction
non linéaire (pour évoluer ces variables de manière non-linéaire, et
d'assurer
d assurer les propriétés de sens unique)
unique).
Ronde 1
F(X Y Z)=(X
F(X,Y,Z) (X AND Y) OR ( NOT(X) AND Z)
Ronde 2
G(X,Y,Z)=(X AND Z) OR (Y AND NOT(Z))
Ronde 3
H(X,Y,Z)=(X XOR Y XOR Z)
Ronde 4
( , , )
I(X,Y,Z)=Y XOR ((X XOR NOT(Z))
( ))
122
Ronde
R d 4
A = B + [(A + I(B,C,D) + M[j] + T[i])<<<S[i]]
B = C + [(B + I(C,D,A) + M[j] + T[i])<<<S[i]]
C = D + [(C + I(D
I(D,A,B)
A B) + M[j] + T[i])<<<S[i]]
D = A + [(D + I(A,B,C) + M[j] + T[i])<<<S[i]]
123
C
Concurrents
t dde MD5
Calculer :
R = (gk mod n) mod q 1ere partie de la signature
S = (K (H(M)+x*R)) mod q
-1 2eme partie de la signature
(R,S) représente la signature du message M, en utilisant la fonction de
hachage SHA1
SHA1.
Vérification de la signature
g
Un correspondant B reçoit l’empreinte Ha(M) et (Ra, Sa). Il utilisera la clé
publique de A pour calculer :
W = S-1A mod qA
U1 = (HA(M)*W mod qA
U2 = RA*W mod qA
V = ((gU1A*yU2A) mod nA ) mod qA
125
Exercice :
Discuter les cas suivants:
1. Deux certificats différents contiennent la même clé publique.
2 Deux
2. D certificats
tifi t diffé
différents
t ontt la
l même
ê signature.
i t
129