Beruflich Dokumente
Kultur Dokumente
Pr. A. Farchane
Faculté polydisciplinaire
-Beni Mellal-
Introduction
Canal non sécurisé
Alice Bob
OSCAR
– L’authentification
– L’intégrité
– La non répudiation
09:39 3
Les buts de la cryptographie
La confidentialité
– Il s’agit de garantir le secret de
l’information transmise ou archivée.
– Seuls les utilisateurs autorisés doivent y
avoir accès.
09:39 4
Les buts de la cryptographie
L’authentification:
– l’émetteur est sûr de l’identité du destinataire c’est à
dire que seul le destinataire pourra prendre
connaissance du message car il est le seul à disposer
de la clef de déchiffrement.
09:39 6
Les buts de la cryptographie
La non répudiation
– Impossibilité, pour une personne ou pour toute
autre entité engagée dans une communication par
voie informatique, de nier avoir reçu ou émis un
message.
09:39 8
Terminologie
• Chiffrer : l’action de rendre un message en clair M
(plaintext) en un message illisible C appelé
(ciphertext) cryptogramme ou message chiffré.
09:39 10
Terminologie
• Il existe 2 types de chiffrement:
– Le chiffrement symétrique (ou chiffrement à clé
privée) consiste à utiliser la même clé pour le
chiffrement et le déchiffrement.
09:39 11
Terminologie
– Le chiffrement asymétrique (ou chiffrement à clés
publiques) consiste à utiliser une clé publique
pour le chiffrement et une clé privée pour le
déchiffrement.
09:39 12
Cryptographie classique
Quelques cryptosystèmes classiques
• Chiffrement par substitution
– Substitution monoalphabétique
• Chiffre de César
• Chiffre affine
– Substitution polyalphabétique
• Chiffre de Vigenère
• Chiffre de Vernam
– Substitution polygrammes
• Chiffre de Playfair
• Chiffrement par transposition
– Transposition simple par colonnes
– Transposition complexe par colonnes
09:39 14
Chiffrement par substitution
Définition:
• Le chiffrement par substitution consiste à
remplacer dans un message une ou plusieurs
entités (généralement des lettres) par une ou
plusieurs autres entités.
09:39 16
Chiffrement par substitution
Chiffrement de César:
• Principe :
– Soit p (c, respec.) l’indice de la lettre du message en
clair(chiffré,respec.) et k le décalage (la clé: k=3):
09:39 17
Chiffrement par substitution
Chiffrement de César:
• Exemple :
– Chiffrez le message « bonjour tout le monde » en
utilisant le cryptosystème de César(k=3).
– ERQMR XUWRX WOHPR QGH
– Déchiffrez le message : «FKLII UHGHF HVDU »
– Chiffre de Cesar
– Décryptez le message chiffré suivant:
– c= HMNKK WJIJH JXFW
– CHIFFRE DE CESAR
– Donnez la clef de chiffrement
k=5
09:39 18
Chiffrement par substitution
Chiffrement de César:
• L’espace de clés est:|K|=26.
• Analyse fréquentielle:
Le principe de cette cryptanalyse consiste à deviner les
lettres d’un texte clair sur la base de leur fréquence
d’apparition
09:39 19
Chiffrement par substitution
Analyse fréquentielle:
• Fréquences d'apparition des lettres(français)
Analyse fréquentielle(di/tri-grammes):
09:39 21
Chiffrement par substitution
Le chiffrement affine:
• L'idée est d'utiliser comme fonction de chiffrement
une fonction affine du type y=(k1.x+k2) mod 26, où
k1 et k2 sont des constantes, et où x et y sont des
nombres correspondant aux lettres de l'alphabet
(A=0,B=1,…,Z=25).
– Déchiffrement :
k1-1 = 3-1 mod 26 = 9 car 3 * 9 mod 26 = 1
mi= f-1(ci) = 9 * (ci– 11) mod 26
09:39 24
Chiffrement par substitution
Cryptanalyse: chiffre affine
• message chiffré : HGAHY RAEFT GAGRH
DGAGM OEHIY RAAOT ZGAGJ GKFDG AZGSB
INNTG KGRHE NNIRG
• Sachant que le message a été chiffré par le
chiffre affine, trouvez le message en clair.
09:39 25
Chiffrement par substitution
Cryptanalyse: chiffre affine
• Solution:
– On remarque que G apparait 12 fois et A 8 fois.
09:39 26
Substitution par permutation
• P=C=Z26
• |K|=26!
• Soit п une permutation:
– Soit x c P, ek(x)=п(x)=y, dk(y)=п-1(y)=x
• Exemple:
09:39 28
Chiffrement par substitution
Exemple: Chiffrement de Vigenère
chiffrons le texte "CHIFFRE DE VIGENERE" avec
la clef "FPBM" (cette clef est éventuellement
répétée plusieurs fois pour être aussi longue
que le texte en clair).
clair c h i f f r e d e v i g e n e r e
clef f p b m f p b m f p b m f p b m f
décalage 5 15 1 12 5 15 1 12 5 15 1 12 5 15 1 12 5
chiffré h w j r k g f p j k j s j c f d j
09:39 29
Chiffrement par substitution
Carré de Vigenère
09:39 32
Chiffrement par substitution
Chiffrement de Vernam ( One-Time Pad)
• „Méthode du masque jetable, Il faut :
1. Choisir une clef aussi longue que le texte à
chiffrer,
2. Utiliser une clef formée d'une suite de caractères
aléatoires,
3. Protéger votre clef,
4. Ne jamais réutiliser une clef,
5. Écrire des textes clairs ne contenant que les
lettres (sans ponctuation et sans espaces).
09:39 33
Chiffrement par substitution
Difficultés du chiffrement de Vernam:
• Le problème de ce système est de communiquer
les clefs de chiffrement ou de trouver un
algorithme de génération de clef commun aux
deux partenaires :
1. La création de grandes quantités des clefs aléatoires :
n'importe quel système fortement utilisé pourrait
exiger des millions de caractères aléatoires de façon
régulière.
2. La distribution des clés : une clé de longueur égale
est nécessaire pour l’expéditeur et pour le récepteur.
Nécessite une bonne organisation.
09:39 34
Chiffrement par substitution
Chiffre polygrammique: Le chiffre Playfair:
• Le chiffre de Playfair utilise un tableau de 5×5 lettres,
contenant un mot clé.
• La mémorisation du mot clé et de 4 règles à suivre
suffisent pour utiliser ce chiffrement.
• Remplir le tableau avec les lettres du mot clé (en
ignorant les doublons), puis le compléter avec les
autres lettres de l'alphabet dans l'ordre.
• W exclu car inutile, on utilise V à la place
• La variante anglaise consiste à garder le W et à
fusionner I et J.
09:39 35
Chiffrement par substitution
• Pour chiffrer un message, il faut prendre les lettres 2
par 2 et appliquer les règles suivantes en fonction de la
position des lettres dans la table :
1. si les 2 lettres sont identiques (ou s'il n'en reste qu'une)
mettre un 'X' après la première lettre. Chiffrer la nouvelle
paire ainsi constituée et continuer avec la suivante.
2. si les lettres se trouvent sur la même ligne de la table, il
faut les remplacer par celles se trouvant immédiatement
à leur droite (en bouclant sur la gauche si le bord est
atteint),
3. si les lettres apparaissent sur la même colonne, les
remplacer par celles qui sont juste en dessous (en
bouclant par le haut si le bas de la table est atteint),
4. sinon, remplacer les lettres par celles se trouvant sur la
même ligne, mais dans le coin opposé du rectangle défini
par la paire originale.
09:39 36
Chiffrement par substitution
• Pour chiffrer le digramme 'OR' par exemple, trois
configurations peuvent se présenter dans le tableau :
09:39 37
Chiffrement par substitution
Pour déchiffrer:
• utiliser la méthode inverse en prenant les
lettres à gauche dans le cas d'une même ligne,
vers le haut dans le cas d'une même colonne,
et toujours les coins opposés dans le cas d'un
rectangle.
• Ignorer les 'X' qui n'ont pas leur place dans le
message final.
09:39 38
Chiffrement par substitution
• Exemple
• En supposant que la clé soit « exemple playfair »,
remplissez le tableau:
E X M P L
A Y F I R
B C D G H
J K N O Q
S T U V Z
• Chiffrez le message « Cache l'or dans la souche de
l'arbre » :
• soit
BY DB XE QI BF JU ER VJ TD BL BM ER AH AL
09:39 39
Chiffrement par substitution
• Ce chiffrement est significativement plus dur à
casser car les attaques par analyse fréquentielle
habituellement utilisées sur les chiffrements par
substitutions simples sont peu efficaces sur lui.
• L'analyse de fréquence des digrammes reste
toujours possible, mais appliquée à 252 = 625
digrammes possibles au lieu des 26 lettres de
l'alphabet, elle est considérablement plus difficile
et exige un texte chiffré beaucoup plus long pour
espérer être efficace.
09:39 40
Chiffrement par transposition
Définition:
• Les méthodes de chiffrement par transposition
consistent à réarranger les données à chiffrer de telle
façon à les rendre incompréhensibles. Il s'agit
généralement de réarranger géométriquement les
données pour les rendre visuellement inexploitables.
• Transposition simple par colonnes :
– On écrit le message horizontalement dans une matrice
prédéfinie, et on trouve le texte à chiffrer en lisant la grille
verticalement .
– Le destinataire légal pour déchiffrer le message réalise le
procédé inverse.
09:39 41
Chiffrement par transposition
Transposition simple par colonnes :
• Exemple:
– texte à chiffrer= «faculte polydisciplinaire de beni mellal»
en utilisant une matrice 6x6.
f a c u l t
e p o l y d
i s c i p l
i n a i r e
d e b e n i
m e l l a l
– Soit
Feiidm apsnee cocabl uliiel lyprna tdleil
09:39 42
Chiffrement par transposition
Transposition complexe par colonnes :
– Une clé secrète (avec uniquement des caractères ) est
utilisé pour dériver une séquence de chiffres
commençant à 1 et finissant au nombre de lettres de
la clé.
– OPT SRY VID EDE ATZ ERR NEB UOX NUS ZAE
09:39 44
Chiffrement par transposition
Transposition complexe par colonnes :
• Exemple:
– voici un message déjà chiffré, VTGURX SDEAEM
SCYRRS UCEOEE ZPAEYS par la clef DELIVRANCE.
– Déchiffrez le message ci-dessus.
09:39 45
Cryptanalyse
• Deux grands types d'attaques en cryptographie:
– Attaques passives
– Attaques actives
09:39 48
L'attaque à texte clair connu
• Le cryptanalyste a non seulement accès aux
textes chiffrés de plusieurs messages, mais
aussi aux textes clairs correspondants.
09:39 49
L'attaque à texte clair choisi
• Le cryptanalyste a non seulement accès aux
textes chiffrés et aux textes clairs
correspondants, mais de plus il peut choisir les
textes en clair.
• Cette attaque est plus efficace que l'attaque à
texte clair connu, car le cryptanalyste peut
choisir des textes en clair spécifiques qui
donneront plus d'informations sur la clef.
09:39 50
L'attaque à texte chiffré choisi
• Le cryptanalyste peut choisir différents textes
chiffrés à déchiffrer.
• Les textes déchiffrés lui sont alors fournis.
• Par exemple, le cryptanalyste a un dispositif
qui ne peut être désassemblé et qui fait du
déchiffrement automatique. Sa tâche est de
retrouver la clef.
09:39 51
Cryptanalyse des substitutions
polyalphabétique
Substitutions polyalphabétique
Principe:
• Dans un texte quelconque de n lettres, on compte le
nombre de répétition de chaque lettre :
– NA= nombre de A dans le texte
– NB = nombre de B dans le texte
– …….
– NZ = nombre de Z dans le texte
• On calcul l’Indice de coïncidence simplement par la formule:
N A ( N A 1) N B ( N B 1) ... N Z ( N Z 1)
IC =
09:39
IC N ( N 1) 53
Indice de coïncidence
Exemple:
• calculons l’indice de coïncidence du texte :
Un enfant n’a pas d’aversion pour la laideur de
sa mère
09:39 58
Indice de coïncidence
Intervalle Indice de coïncidence
1 0.04263
2 0.05983 0.03134
3 0.03922 0.03922 0.05229
4 0.07692 0.04396 0.05128 0.03846
5 0.00000 0.03636, 0.00000 0.03636, 0.02222
09:39 59
Types de cryptosystèmes
Cryptographie
Symétrique Asymétrique
09:39 61
Modélisation
• Cryptosystème:
– P et C les alphabets pour écrire les messages clairs et
les messages chiffrés respectivement.
– K l’ensemble des clés possibles.
– Pour tout k pub , k prv on peut définir deux
applications :
pour chiffrer : ek p u b : P
C
pour déchiffrer : d k p rv : C
P
telles que: dk prv
e
k pub
( x) x pour tout x P
• Dans le cas de cryptosystème symétrique, on a:
k pub k prv
09:39 62
Chiffrement à flot
Définition
• On désigne par chiffrement à flot, ou parfois chiffrement en
continu (stream-cipher), tout système de chiffrement dans
lequel chaque symbole du texte clair subit une transformation
variable dans le temps.
09:39 64
Chiffrement à flot
Générateur Pseudo-Aléatoire (GPA)
• Un générateur pseudo-aléatoire de symboles est
un automate à nombre d‘états qui à partir de la
donnée d'un nombre de symboles, que l'on
appelle graine ou germe (seed en anglais) produit
une suite potentiellement illimitée de symboles
qui a l'apparence d'une suite aléatoire.
09:39 66
Chiffrement à flot
Chiffrement asynchrone:
• Le chiffrement est dit asynchrone ou auto-
synchronisant si les symboles produits par le GPA
ne dépendent que de son état interne et d'un
nombre fixé t de symboles du message à chiffrer.
09:39 67
Chiffrement à flot
Exemple:
Les chiffrements par flot sont très utilisés pour
protéger les données multimédia:
RC4 (utilisé dans SSL et dans le WIFI 802.11)
09:39 68
Chiffrement à flot
GPACS
• Un GPA est cryptographiquement sûr (GPACS)
s'il passe le test du prochain bit.
09:39 70
Chiffrement à flot
Intérêt de BBS
1. BBS est un GPACS,
2. mais très coûteux (opérations complexes
pour produire un bit)
3. donc non utilisable en pratique pour le
chiffrement à flot.
09:39 71
Chiffrement à flot
LFSR:(Linear Feedback Shift Register)
• Un registre à décalage à rétroaction linéaire, désigné par
l'acronyme LFSR, est un dispositif qui produit une suite de bits.
09:39 72
Chiffrement à flot
LFSR:(Linear Feedback Shift Register)
• LFSR de longueur m : m bits si+m-1 ,…,si ; et d'une fonction de
rétroaction linéaire.
09:39 73
Chiffrement à flot
Exemple (LFSR):
• Soit le LFSR ci-dessous composé de trois registres FF0, FF1, FF2
et une fonction de rétroaction comme le montre le schema.
l’état initiale est (s2=1, s1=0 , s0=0 )
• A chaque top d'horloge, le bit de poids faible si constitue la
sortie du registre et les autres bits sont décalées vers la droite.
• Le nouveau bit si+m placé dans la cellule de poids fort du
registre est donné par une fonction linéaire des bits si,…, si+m-1
09:39 74
Chiffrement à flot
• On voit que après un certain cycle d’horloge
la séquence de sortie se répète .
• Ce LFSR à une période de longueur 7 et a
pour forme: 0010111 0010111 0010111.
• Calculons la sortie si
s3 ≡ s1 +s0 mod 2
s4 ≡ s2 +s1 mod 2
s5 ≡ s3 +s2 mod 2
…
• De façon général:
si+3 ≡ si+1 +si mod 2
09:39 75
Chiffrement à flot
Description mathématique:
• Dans le cas général, un LFSR est composé de m registres et une
fonction rétroactive décrite par les coefficients p0, p1,..., pm−1.
09:39 76
Chiffrement à flot
Description mathématique:
• La sortie suivante du LFSR peut être calculer par:
sm ≡ sm−1 pm−1 +···+s1 p1 +s0 p0 mod 2
sm+1 ≡ smpm−1 +···+s2 p1 +s1 p0 mod 2
…………….
• En général, la sortie de la séquence peut être
décrite par:
09:39 78
Chiffrement à flot
1) (p3 = 0, p2 = 0, p1 =1, p0 = 1); 2) (p3 =1, p2 =1, p1 =1, p0 =1)
t état sortie
0 1000 - t état sortie
1 0100 0
0 1000 -
2 0010 0
3 1001 0
1 1100 0
4 1100 1
5 0110 0 2 0110 0
6 1011 0
7 0101 1 3 0011 0
8 1010 1
9 1101 0 4 0001 1
10 1110 1
11 1111 0 5 1000 1
12 0111 1
13 0011 1 6 1100 0
14 0001 1
15 1000 1
09:39
16 0100 0 79
Chiffrement à flot
• Un LFSR est décrit par (pm−1 ,…,p1 ,p0) peut être représenté par
un polynôme P(x):
P(x)= xm + pm−1 xm−1 +...+ p1 x+ p0
• LFSR avec les coefficients (p3 = 0, p2 =0, p1 = 1, p0 = 1) peut
être représenté par le polynôme :
P(x)= x4 + x + 1.
• L’utilisation d’un seul LFSR génère une sortie prédictible.
09:39 81
Chiffrement à flot
• Trois méthodes peuvent être employées pour
contourner l'effet des propriétés de linéarité
des LFSRs:
– Associer une fonction non linéaire aux sorties de
plusieurs LFSRs ;
09:39 83
Chiffrement à flot
les polynômes associés à A5/1 sont:
• P1(X) = X19 + X18 + X17 + X14 + 1
• P2(X) = X22 + X21 + 1
• P3(X) = X23 + X22 + X21 + X8 + 1
09:39 89
Modes opératoires: ECB
Mode ECB( electronic code book)
• Le message, M, est découpé en blocs , (mi)i≥0, et
chaque bloc est chiffré séparément par
ci = Ek(mi)
• On transmet c0 c1 c2 . . . cn.
09:39 90
Modes opératoires: ECB
• Deux blocs identiques sont chiffrés de manière
identique;
• un attaquant malveillant peut permuter deux
blocs ou remplacer un bloc par un autre;
• Déchiffrement:
mi=Dk(ci)
c0 = Ek(m0 ⊕ IV)
c1 = Ek(m1 ⊕ c0)
.
.
ci = Ek(mi ⊕ ci−1)
09:39 92
Modes opératoires: CBC
Mode CBC (Cipher Bloc Chaining)
• On transmet le message IV c0 c1 . . . cn.
09:39 93
Modes opératoires: CBC
• Déchiffrement
m0 = IV⊕ Dk (c0)
mi = ci−1 ⊕ Dk (ci)
09:39 94
Modes opératoires: CFB
Le mode CFB (cipher FeedBack)
• Le mode CFB a été introduit pour ne pas avoir à
calculer la fonction inverse, Dk, de la fonction de
chiffrement Ek.
09:39 98
Modes opératoires: OFB
Déchiffrement:
• Ce mode est utilise par exemple pour les
chiffrages satellites et se déchiffre par:
z0 = Ek(IV);
zi = Ek(zi−1);
mi = ci ⊕ zi
09:39 100
Modes opératoires: CTR
• L’intérêt d’un tel mode est que les différents calculs de
chiffrement et déchiffrement sont indépendants;
mi = ci ⊕ Ek(T +1+ i)
09:39 101
Modes opératoires
Exercice
• Soit le message clair m = 1011000101001010.
On considère le chiffrement par blocs (de
longueur4) définit par la permutation.
π: b1b2b3b4 b2b3b4b1
1) Chiffrer m avec le mode ECB.
2) Chiffrer m avec le mode CBC (on prendra 1010
comme vecteur d'initialisation).
3) Chiffrer m avec le mode CFB (IV=1010).
4) Même question avec le mode OFB (IV=1010).
09:39 102
Modes opératoires
Solution:
1) Chiffrement de m avec le mode ECB: 0111001010000101.
2) Chiffrement de m avec le mode CBC (iv=1010):
M0+IV=1011+1010=0001 C0=Π(M0+IV)=0010,
m1+c0=0001+0010=0011 c1= Π(m1+c0)=0110
m2+c1=0100+0110=0010 c2= Π(m2+c1)=0100
m3+c2=1010+0100=1110 c3= Π(m3+c2)=1101
C=1010 0010 0110 0100 1101
3) Chiffrement de m avec le mode CFB (IV=1010).
Π(IV)=0101, c0= Π(IV)+m0=0101+1011=1110;
Π(c0)=1101, c1= Π(c0)+m1=1101+0001=1100;
Π(c1)=1001, c2= Π(c1)+m2=1001+0100=1101;
Π(c2)=1011, c3= Π(c2)+m3=1011+1010=0001.
C=1010 1110 1100 1101 0001
4) Chiffrement de m avec le mode OFB (IV=1010).
z0=Π(IV)=0101; z1=Π(z0)=1010, z2=Π(z1)=0101;
z3= Π(z2)=1010;
c0=m0+z0=0101+1011=1110; c1=z1+m1=1010+0001=1011;
c2=z2+m2=0101+0100=0001; c3=z3+m3=1010+1010=0000.
09:39 C=1010 1110 1011 0001 0000 103
Data Encryption Standard:
DES
09:39 105
Description de DES
• Approuvé en tant que standard de chiffrement
aux États-Unis en 1976, après deux appels à
candidature (en 1973 et 1974).
09:39 107
Description des réseaux de Feistel
• La taille de bloc doit être paire, on divise le bloc en
deux: m=(L0, R0).
• r tours.
• Chaque tour transforme (Li-1, Ri-1) en (Li, Ri) où:
Li=Ri-1
Ri=Li-1 ⊕ f(Ri-1,ki)
• La sortie est (Lr, Rr)
09:39 108
Description de DES:
schéma général
09:39 110
Description de DES: schéma général
09:39 111
Description de DES: permutation
• la transformation IP et la transformation inverse IP-1 sont
des permutations définies par les tableaux ci-dessous :
09:39 114
Description de DES: fonction f
• Cette fonction f fait intervenir:
– l'opération E qui transforme un bloc de 32 bits en
un bloc de 48 bits,
09:39 115
Description de DES: fonction f
• Le 1er bit de E(R) est le bit 32, le 2ème est le bit 1, etc.
09:39 117
Description de DES: S-Boxes
09:39 118
Description de DES: S-Boxes
09:39 119
DES: fonctionnement des S-Boxes
Exemple : Supposons que le texte à transformer soit
101100 à l'entrée de S1.
09:39 122
DES: procédé de diversification de clés
09:39 123
DES: procédé de diversification de clés
Numéro 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
de clé
Nombre de 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
décalages
09:39 124
DÉCHIFFREMENT (DES)
09:39 125
DES: génération des sous-clés
pour le déchiffrement
• Il faut noter que C0 =C16 et D0 = D16. Donc, k16
peut être obtenu après la permutation PC−1 de K.
k16 = PC−2(C16,D16)
= PC−2(C0,D0)
= PC−2(PC−1(k))
09:39 128
Déchiffrement :DES (1/2)
• La procédure de déchiffrement se fait tour par
tour:
– Le 1er tour de déchiffrement déchiffre le 16ème
tour de la procédure de chiffrement,
09:39 129
Déchiffrement :DES (1/2)
09:39 130
Déchiffrement :DES(2/2)
09:39 131
Déchiffrement :DES(2/2)
• Il faut noter que les deux parties du chiffré, L16 et
R16, dans le 16ème tour sont permutées.
• Selon le schéma de déchiffrement précédent on
a:
– (Ld0,Rd0)= IP(Y)= IP(IP−1(R16,L16))
– = (R16,L16)
D’où:
– Ld0 = R16
– Rd0 = L16 = R15
• Maintenant, on va exprimer la sortie (Ld1,Rd1) du
1er tour de déchiffrement en fonction de la
sortie, (L15,R15) , du dernier tours de chiffrement:
– Ld1 = Rd0 = L16 = R15
09:39 133
Déchiffrement :DES(2/2)
– Rd1 = Ld0 ⊕ f (Rd0,k16)= R16 ⊕ f (L16,k16)
– Rd1 =[L15 ⊕ f (R15,k16)]⊕ f (R15,k16)
– Rd1 = L15 ⊕[ f (R15,k16)⊕ f (R15,k16)] = L15
AES
09:39 136
AES
Successeur de DES.
• Approuvé comme standard de chiffrement en
2002 suite à un appel à candidature datant de
1997.
09:39 137
AES: Rappel sur des structures algébriques
Définition 1: Groupe
Un groupe, G, est un ensemble d’éléments avec une opération ᵒ qui
combine 2 éléments de G. un groupe a les propriétés suivantes:
1. L’opération du groupe ᵒ est «fermée», c.à.d pour tout a, b ∈ G, aᵒb=c
∈ G.
Exemple:
• l’ensemble des entiers Zm={0,1,...,m−1} et
l’opération d’addition modulo m forme un groupe
avec l’élément neutre 0. chaque élément a un
inverse −a tel que a+(−a)= 0 mod m.
Définition de Corps(field):
Un corps F est un ensemble avec les propriétés suivantes:
1. Tout les éléments de F forment un groupe aditif avec
l’opération du groupe “+” et l’élément neutre 0.
2. Tout les éléments de F sauf 0 forment un groupe
multiplicatif avec l’opération du groupe “*” et l’élément
neutre 1
3. Lorsque les opérations de deux groupes sont mixées , la
loi distribution est pour tout a,b,c ∈ F: a(b+c)=(ab)+(ac).
09:39 140
AES: Rappel sur des structures algébriques
Exemple:
• On considère le corps fini GF(5)= {0,1,2,3,4}. Les
tableaux suivants décrivent comment faire l’adition et le
multiplication de deux éléments, ainsi que l’opposé et
l’inverse de chaque élément.
09:39 141
AES: Rappel sur des structures algébriques
Corps étendu:
• Dans le corps étendu GF(2m), les éléments ne sont pas
représentés par des entiers, mais par des polynômes
avec des coefficients dans GF(2).
Exemple:
09:39 143
AES: Rappel sur des structures algébriques
Multiplication dans GF(2m):
• Deux éléments, représentés par leur polynômes,
d’un corps fini GF(2m) se multiplient en utilisant la
règle de multiplication standard:
où
09:39 144
AES: Rappel sur des structures algébriques
Exemple 1 (suite):
D’où C(x):
C(x) ≡ x5+x3+x2+x mod P(x)
C(x) ≡A(x) ·B(x) ≡ (x2+x)+(x3+x2+x)= x3
Exemple :
l’inverse de
x7+x6+x =(11000010)2 =(C2)hex
Est donné par
(2F)hex =(00101111)2 = x5+x3+x2+x+1.
Ceci peut être vérifié par:
(x7+x6+x) · (x5+x3+x2+x+1) ≡ 1mod P(x).
09:39 148
AES: Description
• On distingue entre trois variantes de AES selon la
longueur de la clé (128,198 ou 256 bits).
09:39 151
AES: schéma de chiffrement
09:39 152
AES: schéma de chiffrement
Chaque tour réalise le travail suivant:
09:39 153
AES: SubByte Layer
• S-Box remplace chaque octet Ai par un octet Bi,
S(Ai) = Bi selon le tableau suivant:
09:39 154
AES: SubByte Layer
• La transformation S-Box peut être vu comme transformation
mathématique à deux étapes:
09:39 155
AES: SubByte Layer
• L’inverse peut être calculé par le tableau suivant:
– L’élément 0 n’a pas d’inverse mais pour AES il est mapper à 00
09:39 156
AES: SubByte Layer
Exemple 1:
• Supposons que l’octet d’entrée de S-Box soit
Ai=(C2)hex, donc il est remplacé par S((C2)hex) = (25)hex.
• Au niveau bit on a S(11000010)=(00100101).
09:39 160
AES: MixColumn Sublayer
• La transformation MixColumn est une transformation
linéaire qui mixe chaque colonne de la matrice state.
• La transformation MixColumn est l’élément majeur de
la diffusion dans AES.
• Si l’entrée de MixColumn est le vecteur B et la sortie
le vecteur C, alors MixColumn(B)=C,
• Ou encore
Exemple:
Supposant que l’entrée du MixColumns soit
B(25,25,25,…,25).
Dans ce cas, seulement 2 multiplications sont
nécessaires.
02 · 25 et 03 · 25, qui peuvent être calculer en
utilisant la notation polynômial.
09:39 162
AES: MixColumn Sublayer
Exemple (suite):
09:39 167
AES: AddRoundKey Layer
09:39 168
AES: Addround Key Layer
• La fonction g() applique un décalage circulaire à
gauche sur les quatre octets d’entrée,
09:39 170
AES: Addround Key Layer
• Les coefficients varie d’un tour à un autre
selon la règle suivante:
– RC[1]= x0 =(00000001)2,
– RC[2]= x1 =(00000010)2,
– RC[3]= x2 =(00000100)2,
–…
– RC[10]= x9 =(00110110)2.
09:39 171
AES: AddRound Key Layer
Sélection de la clé de tour:
• La clé de l’ ième tour est le contenu de W entre
les positions W[Nb*i] et W[Nb*(i+1)], comme
illustré par la figure suivante:
W[0] W[1] W[2] W[3] W[4] W[5] W[6] W[7]
09:39 172
09:39 173
AES: déchiffrement
• Toutes les couches de l’algorithme AES doivent
être inversible:
– SubByte layer devient Inv SubByte layer ,
09:39 175
AES: déchiffrement
09:39 176
AES: déchiffrement
09:39 177
AES: Inv Mixcolumns SubLayer
• Pour inverser l’étape MixColumns, l’inverse de la
matrice de la transformation MixColumns doit être
utilisée.
09:39 178
AES: Inv Mixcolumns SubLayer
• La 2ème colonne de la sortie est calculée en
multipliant l’entrée suivante (c4, c5, c6, c7) par
la même matrice inverse, et ainsi de suite.
• Exemple:
Supposant que l’entrée du Inv MixColumns
soit C(25,25,25,…,25).
4 multiplications sont nécessaires. 0E · 25,
0B · 25, 0D.25 et 09.25 qui peuvent être
calculer en utilisant la notation polynômial.
09:39 179
AES: Inv Mixcolumns SubLayer
• Exemple(suite):
0E·25=(x3+x2+x).(x5+x+1)
0B·25 =(x3+x+1).(x5+x+1)
0D.25 =(x3+x2+1).(x5+x+1)
09.25 =(X 3+1).(x5+x+1)
--------------------------------
(x5+x+1)
• D’où 0E·25+ 0B·25+ 0D.25+ 09.25=25
09:39 181
AES: Inv SubBytes Layer
• Puisque S-Box est bijective, il est possible de construire
l’inverse de S-Box tel que: Ai=S-1(Bi)=S-1(S(Ai)),
• Où Ai et Bi sont des éléments de la matrice d’état.
• Les entrées et la sortie de Inv S-Box sont données par
le tableau suivant:
09:39 182
AES: Inv SubBytes Layer
• L’inversion de l’opération S-Box peut être réalisé
d’une autre façon:
– On inverse la transformation affine de chaque octet Bi
par:
09:39 184
Chiffrement symétrique : synthèse
Une unique clé secrète partagée entre les 2 parties
qui sert pour le chiffrement et le déchiffrement du
message
Avantage :
– Rapide
Inconvénients :
– Il faut autant de clefs que de couples de
correspondants
– La non-répudiation n'est pas assurée. Mon
correspondant possédant la même clé que moi, il peut
fabriquer un message en usurpant mon identité
09:39
– Transmission de clef ? 185
09:39 186
PGCD
• Définition :
Parmi l'ensemble des diviseurs communs à deux
entiers a et b, le PGCD, est le plus grand
commun diviseur.
Théorème :
soient a, b, c dans N et n dans Z
pgcd(ac, bc) = c.pgcd(a, b)
pgcd(a, b) = pgcd(a, b + na)
09:39 187
PGCD: algorithme d’Euclide
Propriété :
Si a > b alors on a a=b.q + r donc
– Les diviseurs communs à a et b sont les mêmes
que les diviseurs communs à b et r.
– Donc pgcd(a, b) = pgcd(b, r)
09:39 188
PGCD: Algorithme d’Euclide
• Exemple : pgcd(42, 30) = 6
42 = 1x30 + 12
(42, 30) = (30, 12)
30 = 2x12 + 6
(30, 12) = (12, 6)
12 = 2x6 + 0
(12, 6) = (6, 0)
09:39 189
Nombres premiers entre eux
• Définition :
lorsque pgcd(a, b) = 1, on dit que a et b sont
premiers entre eux.
• Remarques :
– cela signifie que leur seul diviseur commun est 1.
– un nombre premier est premier avec n'importe
quel autre nombre
09:39 190
Nombres premiers entre eux
• Théorème de Bezout
Deux entiers a et b sont premiers entre eux si et
seulement s’il existe deux entiers u et v tels que:
a.u + b.v =1
09:39 192
Algorithme d’Euclide étendu
• Calcul des coefficients de Bezout pour a=40 et b=3
E0: 1x40 + 0x3 = 40
E1: 0x50 + 1x3=3 ; q1=(40/3) =13; r1=40 mod 3=1
E2: E0 -13.E1 ; 1x40 -13x 3=1; q2=(3/1)=3 r2=3mod 1=0
Bilan: 1x40 -13x 3=1 3-1= -13 mod 40=27 mod 40
09:39 193
Théorèmes
Théorème :
• Si a = b mod n et u = v mod n alors
a + u = b + v mod n
et a.u = b.v mod n
Théorème :
• Un entier a est inversible dans Zn ssi a et n sont
premiers entre eux
Théorème :
• Si n est premier alors tout élément non nul de Zn est
inversible.
Théorème :
• un entier n est premier ssi Zn ne contient pas de diviseurs
de 0.
09:39 195
Fonction indicatrice d'Euler
Théorème d’Euler
Pour tout entier n et tout a de z*n (PGCD(n, a)=1)
, on a
aΦ(n) =1 mod n
09:39 197
élément générateur
Théorème :
• Soit p un nombre premier. Alors, le groupe multiplicatif Z*p
est cyclique. C'est-à-dire que ce groupe peut être engendré
par un élément générateur (dit aussi élément primitif) : il
existe un élément a tel que
Z*p= {1, a, a2,…,aP-2}
• Exemple : Z*7
30=1 mod 7
31= 3 mod 7
32= 2 mod 7
33= 6 mod 7
34= 4 mod 7
35= 5 mod 7
36 = 1mod 7
37= 3mod 7
09:39 198
Exponentiation modulaire
• Étant donnés a, x et M, calculer ax mod M
Règle N°1
Dans une exponentiation modulaire, les
exposants doivent être pris modulo Φ(M)
09:39 202
09:39 203
Cryptographie asymétrique
A
B
09:39 214
Protocole d‘échange de clés de DH
Exemple:
1. Alice et Bob choisissent un nombre premier p et
une base g, Dans notre exemple, p = 23 et g = 3
2. Alice choisit un nombre secret a = 6
3. Elle envoie à Bob la valeur ga mod p = 36 mod 23 =
16
4. Bob choisit à son tour un nombre secret b = 15
5. Bob envoie à Alice la valeur gb mod p =315 mod
23= 12
6. Alice peut maintenant calculer la clé secrète :
(gb mod p) a mod p = 126 mod 23 = 9
7. Bob fait de même et obtient la même clé qu'Alice :
(ga mod p) b mod p = 1615 mod 23 = 9
09:39 215
Protocole d‘échange de clés de DH
Exercice :
Supposons qu'Alice et Bob partagent p = 233 et
g = 45 :
si Alice choisit a = 11 et Bob b = 20, alors :
Quelle est leur clef secrète commune ?
Solution:
ga= 4511 mod 233 = 147, gb= 4520mod 233 = 195,
(gb)a mod p = 19511 mod 233 = 169 et
(ga)b mod p = 14720mod 233 = 169.
Alice et Bob disposent d'une clé privée
09:39 commune : k = 169. 216
09:39 217
Le cryptosystème de El Gamal
• Le cryptosystème El Gamal est basée sur la
fonction à sens unique logarithme discret. On
considère un groupe cyclique fini, G, de
cardinal n engendré par un générateur, g.
Donc G={ gi|0 ≤ i ≤ n-1 }
09:39 221
Le cryptosystème de El Gamal
Pour déchiffrer:
1. Bob calcule
mi ≡ y2((y1)αb )−1 mod p
Comme (y1)αb = (g)kaαb (mod p) on a:
y2((y1)αb )−1 mod p ≡ Bka. mi( gkaαb )−1 mod p
≡ (g)αbka mi(g)−αbka≡ mi mod p
et comme mi est inférieur p il n’y a pas
d’ambiguïté dans le déchiffrement.
• Pour une bonne sécurité, Alice doit changer
souvent ka.
09:39 222
Le cryptosystème de El Gamal
Exemple:
Prenons p = 11 et g = 2 qui est d'ordre maximal 10.
• Bob choisit a = 4:
– calcule ga= 24 mod 11 = 5 mod 11.
– La clé publique est p = 11, g = 2, ga= 5.
• Soit le message m = 3
• Alice choisit k = 6:
– calcule y1 =gk= 26 mod 11 = 9,
et Bk = 56 mod11 =5, puis y2 =mxBk = 3x5 mod 11 = 4.
– Alice envoie c =(9, 4).
• Bob calcule :
– y1-a = (94)-1 = 5-1 mod 11=9 mod 11,
09:39
– m=y2. y-a1 = 4x9= 3 mod 11. 223
09:39 225
Signature RSA(1/3)
Génération des paramètres : Identique à la génération
des clefs de RSA
• Alice choisit au hasard deux nombres premiers p et q.
– Alice calcule n = p.q
– Indicatrice d'Euler : Φ(n) =(p -1)(q-1)
• Alice choisit au hasard un entier e tel que
1 < e < Φ(n) et pgcd(e, Φ (n)) = 1
• Alice calcule alors l'entier d tel que e.d = 1 mod Φ(n).
– Clef publique : (n, e)
– Clef secrète : (n, d)
– On suppose disposer d'une fonction de hachage à sens
unique H connue publiquement.
09:39 226
Signature RSA(2/3)
Génération d'une signature RSA
09:39 227
Signature RSA(3/3)
Vérification d'une signature RSA
• Bob reçoit un document signé [M’ , s(M)] d'Alice.
Ce document est potentiellement altéré/illégitime
• Il récupère la clé publique d'Alice (n,e)
• Il calcule hM’ = H(M’)
• Il vérifie l'identité :
En effet : s(M)e= (hM)e.d mod n = hM mod n = hM
et si le document est authentique : hM = hM’ .
• La sécurité est donc celle du cryptosystème RSA.
• Présentation simpliste et en l‘état sujette à des
09:39 attaques 228
Signature RSA
Example :
Suppose Bob wants to send a signed message (x = 4) to
Alice. The first steps are exactly the same as it is done for
an RSA encryption: Bob computes his RSA parameters and
sends the public key to Alice. In contrast to the encryption
scheme, now the private key is used for signing while the
public key is needed to verify the signature.
Alice Bob
1. choose p = 3 and q = 11
2. n = p · q = 33
3. Φ(n)=(3−1)(11−1)= 20
4. choose e = 3
5. d ≡ e−1 ≡ 7 mod 20
(n,e)=(33,3)
09:39 ← −−−−−−−−−−− − 229
Signature RSA
Example (suite):
Alice Bob
compute signature for message
x = 4:
s = xd ≡ 47 ≡ 16 mod 33
(x,s)=(4,16)
← −−−−−−−−−−− −
verify:
x’= se ≡ 163 ≡ 4 mod 33
x’≡ x mod 33 =⇒valid signature
Alice can conclude from the valid signature that Bob generated
the message and that it was not altered in transit, i.e.,
message authentication and message integrity are given.
09:39 230
Signature El Gamal(1/3)
Key Generation for Elgamal Digital Signature
1. Choose a large prime p.
2. Choose a primitive element g of ZP∗.
3. Choose a random integer d ∈{2,3,..., p−2}.
4. Compute β = gd mod p .
09:39 231
Signature El Gamal(2/3)
Elgamal Signature Generation
Sigkpr (x, kE)=(r, s), where x is the message.
1. Choose a random ephemeral key
kE∈{1,2,..., p − 2} such that gcd(kE, p−1)= 1.
09:39 232
Signature El Gamal(3/3)
Elgamal Signature Verification
the signature is verified as verKpub(x, (r, s)) using
the public key, the signature and the message.
09:39 237
FONCTIONS DE HACHAGE
09:39 238
Fonctions de hachage
• Les procédures de signature précédentes ont un
coût prohibitif pour signer des longs messages
car la signature est aussi longue que le message.
On double donc la longueur du texte à chiffrer.
09:39 240
Fonctions de hachage
Principal input–output behavior of hash functions
09:39 241
Fonctions de hachage
• Une fonction de hachage transforme un message de
longueur arbitraire en une empreinte numérique de taille
fixée, 160 bits(256,384 ou512).
• Pour des raisons de sécurité on tend à augmenter la
taille de l’empreinte.
09:39 245
Fonctions de hachage
L’Algorithm SHA-1 : (Secure Hash Algorithm SHA-1)
09:39 246
Fonctions de hachage
• Prétraitement du message
• k ≡ 512−64−1−l = 448−(l+1) mod 512.
• Le message est divisé en blocs de 512-bits
x1,x2, ... ,xn. Chaque bloc est subdivisé en 16
mots de 32 bits chacun. Par exemple, le Ième
bloc xi est divisé en: xi =(xi(0) xi(1) ... xi(15))
• Où xi(k) sont des mots de taille de 32 bits.
09:39 247
Fonctions de hachage
• Valeur initial de H0:
A = H0(0) = 67452301
B = H0(1) = EFCDAB89
C = H0(2) = 98BADCFE
D = H0(3) = 10325476
E = H0(4) = C3D2E1F0.
09:39 249
Fonctions de hachage
• Le diversification de messages calcule 80 mots
de 32 bits : W0,W1, ...,W79 pour chacun des 80
tours,
• Le mot Wj est dérivé des 512 bits composant
un bloc comme sui:
Wj = xi( j) 0≤j≤15
Wj = (Wj−16⊕Wj−14⊕Wj−8⊕Wj−3)≪1 16≤j≤79,
09:39 252
Fonctions de hachage
Le jème tour de l’étage t de SHA-1
09:39 253
Fonctions de hachage
Quelques exemple de fonctions de hachage:
09:39 254