Vous êtes sur la page 1sur 151

Cours sécurité IoT

Classe: LISI3

Par : Dr. Sonda BEN JDIDIA


Email : sonda.benjdidia@isimg.tn

Année Universitaire : 2021/2022


Chapitre II: Outils de cryptographie et
d’authentification

I. Généralités
II. Chiffrement symétrique
III. Chiffrement asymétrique
IV. Fonctions de hachage
V. Signature numérique

2
I. Généralités

Qu’est ce qu’une authentification?


• S'authentifier, c'est apporter la preuve de son identité. Mais sur
quels principes se base cette notion d'identification ?
• L'authentification intervient après une phase d'identification qui
consiste à établir l'identité annoncée par l'utilisateur. On parle
souvent de la phase d'identification – authentification ou I/A.

3
I. Généralités

Phases d’authentification :
• Identification : Identité numérique Personne

– Chaque personne ayant accès au système d’information


doit se voir attribuer un IDENTIFIANT UNIQUE
• L’authentification = Challenge

– L’authentification repose toujours sur un challenge lancé par le


système de destination à l’intention du client afin que celui‐ci
prouve son identité
Mot de passe, clef privée, empreinte digitale, …

• La réussite du challenge valide l’association client Identifiant

4
I. Généralités

Bases de l’authentification :

Il existe plusieurs moyens pour s’authentifier :


– Le secret (ex : mot de passe)

– L’objet (ex : jeton)

– Le caractère (ex : biométrie)

– Le savoir faire (ex : signature manuscrite)

La combinaison de plusieurs méthodes d’authentification permet de


mettre en place des solutions d’authentification forte.

5
I. Généralités

Mots de passe :

• Le mot de passe reste le mécanisme de déverrouillage le plus


répandu car il ne nécessite pas d'ajout de dispositif technique.

• Les risques principaux liés à l'utilisation du mot de passe sont sa


divulgation et sa faiblesse.
– il faut que son domaine d'utilisation soit le plus restreint
possible pour limiter le risque de divulgation.
– on peut associer à chaque usage un mot de passe différent.
– un bon mot de passe doit être construit de manière à ne
pas être trop sensible aux techniques de craquage connues.
– 1 heure pour craquer un mot de passe de 8 caractères
alphabétiques [A‐Z] Vs 1 mois pour craquer un mot de passe de 10
caractères alphabétiques ou un mot de passe de 8 caractères
alphanumériques [A‐Za‐z0‐9].

6
I. Généralités

Mots de passe :
• Il existe des moyens mnémotechniques pour fabriquer et retenir des
mots de passe forts.
– La méthode phonétique : utiliser les sons de chaque syllabe pour
fabriquer une phrase facile à retenir. Par exemple, la phrase « j'ai
acheté huit cd pour cent euros cet après‐midi » deviendra
ght8CD%E7am
– La méthode des premières lettres : Cette méthode consiste à
garder les premières lettres d'une phrase (citation, paroles de
chanson, ...) en veillant à ne pas utiliser que des minuscules. Par
exemple, la citation « un tiens vaut mieux que deux tu l'auras »
deviendra 1TvmQ2tl'@

7
I. Généralités
Problèmes liés aux mots de passe :
• L’utilisation de mots de passe nécessite leurs gestion (création,
Modification, Déblocage, Suppression )
– Problème : stockage, transfert sur le réseau, rejeu
(réutilisation frauduleuse), mémorisation difficile pour les
utilisateurs, gestion pour l’administrateur
• La plupart des systèmes sont configurés de manière à bloquer
temporairement le compte d'un utilisateur après un certain nombre de
tentati ves de connexion infructueuses.
– Un pirate peut difficilement s'infiltrer sur un système de cette façon.
– En contrepartie, un pirate peut se servir de ce mécanisme d'auto‐
défense pour bloquer l'ensemble des comptes utilisateurs afin de
provoquer un déni de service.
• La plupart des mots de passe des systèmes sont stockés de manière
chiffrée (cryptée) dans un fichier ou une base de données.
– Lorsqu'un pirate obtient un accès au système et obtient ce fichier, il lui
est possible de tenter de casser le mot de passe de l'utilisateur.

8
I. Généralités

Craquage du mot de passe :


• Craquage par force brute

– Il consiste à tester tous les mots de passe.

– Plus il existe de combinaisons possibles pour former un mot de passe, plus


le temps moyen nécessaire pour retrouver ce mot de passe sera long.
– Rajouter un caractère à un mot de passe alphanumérique double le temps
nécessaire pour le retrouver.
• Craquage par dictionnaire

– L'attaque par dictionnaire consiste à tester une série de mots issus d'un
dictionnaire. (dictionnaire des noms/marques, …)
• Craquage hybride combinant force brute et dictionnaire

• Attaque par rejeu : réutilisation du mot de passe.

9
I. Généralités

Moyens de craquages des mots de passe :


• Les moyens permettant au pirate d'obtenir les mots de passe des
utilisateurs :

–Les key loggers : Ce sont des logiciels qui sont installés sur le poste
de l'utilisateur, permettent d'enregistrer les frappes de claviers
saisies par l'utilisateur.

–L'ingénierie sociale: consiste à exploiter la naïveté des individus pour


obtenir des informations. Un pirate peut obtenir le mot de passe d'un
individu en se faisant passer par un administrateur du réseau ou bien
à l'inverse appeler l'équipe de support en demandant de réinitialiser
le mot de passe en prétextant un caractère d'urgence.

–L'espionnage: observation de l’utilisateur.

10
I. Généralités

Mot de passe unique :


• Concept de l’OTP (One Time Password) est que le mot de passe est
utilisable une seule fois :
– Protection contre l’oubli du mot de passe
– Protection contre le rejeu
– Non prédictible si l’algorithme est gardé secret

• L’OTP peut être basé sur l’utilisation des jetons/


authentifieurs/ Token

11
I. Généralités

Exemples d’OTP :
• La liste à biffer ou TAN (Transaction Authentification Number). Il
s'agit de rentrer un OTP provenant d'une liste de codes fournie
(banque).
• Matrix card authentication ou authentification à carte matricielle : Il
s'agit de rentrer un OTP provenant d'une carte matricielle fournie.
• Utilisation des SMS: l'utilisateur reçoit un OTP directement sur son
téléphone portable.

12
I. Généralités

Authentification par objet :


• Cartes d’identité (sans mot de passe)
– Code barre, Carte magnétique, puce, clé électronique
– Problèmes : Copie, vol, liaison lecteur Serveur, rejeu

• Cartes d’identité + mot de passe


– Authentification double facteur
– Problèmes :
• Liaison lecteur Serveur, rejeu
• En cas de copie ou de vol le pirate doit « simplement » résoudre
un problème de mot de passe

13
I. Généralités

L’authentification par caractère : la biométrie

La biométrie est la technologie qui mesure les caractéristiques


physiques d'un individu, que ce soit ses empreintes digitales, la forme
de son visage ou encore son ADN. Les attributs biométriques doivent
posséder les caractéristiques suivantes :
– L'unicité: chaque attribut biométrique doit varier énormément
d'une personne à l'autre au point que l'ensemble des variations
rend cet attribut unique.
– La robustesse: un attribut biométrique devrait être permanent tout
au long de la vie d'une personne.
– La quantifiabilité : cet attribut doit être mesurable et quantifiable.
– L'acceptabilité par la population (les empreintes digitales sont
souvent associées à la criminalité).
– L'universalité : quelle proportion de la population a cet attribut
(certaines personnes n'ont pas d'empreintes digitales).

14
I. Généralités

La biométrie :
Toutes caractéristiques humaines
– Reconnaissance Iris
– Empreintes digitales ou de la mains
– Reconnaissance des lèvres
– Cartographie des veines
– Reconnaissance de visages
– Reconnaissance d’oreille (et échos du conduit auditif)
– Spectre d’absorption de la peau
– Voie
– ADN
– Problèmes :
• Création des authentifiants
(fiabilité)
• Liaison lecteur Serveur, rejeu

15
I. Généralités

Authentification par savoir faire :

Il s’agit d’un reconnaissance de ce que l’utilisateur sait faire. Par


exemple authentification par signature ou par geste.

16
I. Généralités
Terminologie:

• Chiffrement : transformation à l'aide d'une clé de chiffrement


d'un message en clair en un message incompréhensible si on ne
dispose pas d'une clé de déchiffrement (en anglais encryption) ;
• Chiffre : anciennement code secret, par extension l'algorithme
utilisé pour le chiffrement ;
• Cryptogramme : message chiffré ;
• Décrypter : retrouver le message clair correspondant à un message
chiffré sans posséder la clé de déchiffrement (terme que ne
possèdent pas les anglophones, qui eux « cassent » des codes
secrets) ;
• 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 : science analysant les cryptogrammes en vue de
les décrypter ;
• Cryptologie : science regroupant la cryptographie et la
cryptanalyse.

17
I. Généralités

Classification :

Cryptologie

cryptographie cryptanalyse

À clé À clé
Protocoles
symétrique publique

Chiffrement Chiffrement
par bloc par flux

18
I. Généralités

A quoi sert la cryptographie ?


• la confidentialité : garantie que seules les personnes
autorisées ont accès aux éléments considérés ;
• l’authentification : possibilité de vérifier l'identité d'une
Intégrité
entité (personne, ordinateur...), afin d'autoriser l'accès Authentification

de cette entité à des ressources (systèmes, réseaux,


Non
applications...). Répudiation

• l’intégrité : garantie que les éléments considérés sont Confidentialité

exacts et complets.;
• la non répudiation, la possibilité de vérifier que
l’expéditeur et le destinataire sont bien les parties qui
disent avoir respectivement envoyé ou reçu le message..

19
I. Généralités

On recherche plusieurs critères :


• La disponibilité : garantie que ces éléments considérés sont
accessibles au moment voulu par les personnes autorisées.
• Anonymat : garantie que l’identité et/ou la localisation de l’entité
reste(nt) confidentielle(s).

 Un outil fondamental pour assurer la sécurité est la Cryptographie

• La cryptographie et la cryptanalyse sont des outils importants pour


assurer la confidentialité d'une information (stockée ou transitée),
son intégrité (toute modification est détectable), et l'identification de
son origine (l'émetteur peut être identifié).

20
I. Généralités

Définition d’un système cryptographique :


Un système cryptographique est décrit par cinq uplets (P,C,K,E,D) :
– «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); c’est un


ensemble fini de clés possibles.

– Pour chaque k ∈ K, il existe une fonction chiffrement ek ∈ E, et

une fonction de déchiffrement correspondante dk ∈ D

– Les fonctions ek : P  C et dk : C  P doivent


satisfaire : dk(ek(x))=x pour chaque x ∈ P

21
I. Généralités

Types d’attaques

Passive
Ecoute
Alice Bob

Eve

Bob Modification
Alice

Trudy
Active

Bob Fabrication
Alice

Trudy

Bob Re-jeux
Alice

Trudy

22
I. Généralités

Primitives Cryptographiques
Fonctions de hachage
Primitives
Permutations
sans clés
Suites aléatoires

Fonctions de hachage
Par bloc
Chiffrement
Primitives Primitives à
Par flux
de sécurité clé symétrique Signatures

Suites pseudo-aléatoires

Chiffrement à clé publique


Primitives à
clé publique Signatures

Authentification

23
I. Généralités

Chiffrement

• Le nœud S envoie le message m au nœud R via un canal


non sécurisé.
• S chiffre m en utilisant un algorithme de chiffrement E et une
clé de chiffrement K.
– EK(m) est le texte chiffré (cipher text)
– m est le texte en clair (plain text)
• R décrypte le texte chiffré avec un algorithme de déchiffrement
D et d'une clé de déchiffrement K’

24
I. Généralités

Primitives Cryptographiques
Fonctions de hachage
Primitives
Permutations
sans clés
Suites aléatoires

Fonctions de hachage
Par bloc
Chiffrement
Primitives Primitives à
Par flux
de sécurité clé symétrique Signatures
K = K’
Suites pseudo-aléatoires

Chiffrement à clé publique


Primitives à
clé publique Signatures

K ≠ K’ Authentification

25
II. Chiffrement symétrique :

Principe du chiffrement symétrique


• Aussi nommé chiffrement à clé secrète, le chiffrement symétrique
utilise la même clé, tenue secrète, pour le chiffrement et le
déchiffrement.
– Le chiffrement s’effectue en additionnant (fonction XOR) la clé
au message coupé en blocs et en effectuant plusieurs
permutations, ceci fait plusieurs fois.
• Le chiffrement symétrique utilise des canaux sécurisés pour
échanger la clé secrète (IPSec) (par exemple : un algorithme de
chiffrement à clé publique comme RSA)
• Algorithmes
– DES (Data Encryption Standard), Tripe‐DES, AES (Advanced
Encryption Standard),
– IDEA (Internationale Data Encryption Algorithm), Blowfish
 Simples à mettre en œuvre, l’exécution peut être très rapide

26
II. Chiffrement symétrique :

Principe du chiffrement symétrique

Clé Transmission par canal sécurisé Clé


01010000111 01010000111

Cryptanalyse

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

Emetteur Récepteur

27
II. Chiffrement symétrique :

Deux catégories de chiffrement symétrique


1. Chiffrement par flux : (stream cipher) :
– Principe: Traite les éléments d’entrée de façon continue,
produisant à la fois un élément de sortie (crypté).
– La clé est aussi longue que le flux de données.

– Mode adapté pour la communication en temps réel: Pas besoin


d’attendre l’arrivé du block entier
– Implémenté en général sur des supports hardware

28
II. Chiffrement symétrique :

• Le texte en clair est combiné avec un keystream (un flot de clés de


chiffrement pseudo‐aléatoire), généralement en utilisant l’opération
exclusive‐or (xor).
• One-time pad:

29
II. Chiffrement symétrique :

• Un synchronous stream cipher est un schéma de chiffrement dans


lequel le keystream est généré indépendament du text en clair
(plaintext) et du texte chiffré (ciphertext).
– σ0 : : état initial (initial state)
– f : Next‐state function
– g: The function which produces the keystream zi
– h : Output function.

30
II. Chiffrement symétrique :

• La plupart des schémas de chiffrement à flux proposés dans la


littérature sont additifs
• Definition: Un binary additive stream cipher est un synchronous
stream cipher dans lequel le keystream, le texte en clair et le texte
chiffré sont des données binaires, et le résultat de la fonction h est
une fonction XOR.

31
II. Chiffrement symétrique :

2. Chiffrement par bloc


– Principe: Le texte est divisé en différents blocks de taille fixe. Un
block est traité à la fois, produisant un block de données cryptées.
– le block doit être entièrement disponible avant le traitement

– La même fonction et la même clé sont utilisées pour crypter les


blocks successifs.
– Implémentation d’une manière logicielle en générale.

32
II. Chiffrement symétrique :

• Le chiffrement par bloc (en anglais block cipher) est une méthode de
chiffrements symétrique qui découpe le texte à chiffrer en blocs de taille
généralement fixe.
• La taille de bloc est comprise entre 32 et 512 bits
– Dans le milieu des années 1990 le standard était de 64 bits

– Depuis 2000 le standard est de 128 bits


• Les blocs sont ensuite chiffrés les uns après les autres.
• Il est possible de transformer un chiffrement de bloc en un chiffrement par flux en
utilisant un mode d'opération
– ECB (chaque bloc chiffré indépendamment des autres)
– CFB (on chaîne le chiffrement en effectuant un XOR entre les résultats
successifs).
33
II. Chiffrement symétrique :
Electronic Code Book mode (ECB): Chaque bloc de 64 bits de texte en
clair est codé indépendamment en utilisant la même clé.
+ : implementation simple
- : un attaquant peut aisément remplacer un bloc

34
II. Chiffrement symétrique :
Cipher Block Chaining mode (CBC) :
o L'entrée de l'algorithme de chiffrement est le XOR du texte en
clair 64 bits suivant et du texte chiffré 64 bits précédent.
o Le vecteur d'initialisation (IV) doit être connu de
l'expéditeur/du destinataire, mais secret de l'attaquant.

35
II. Chiffrement symétrique :
Cipher FeedBack mode (CFB):
o convertit le chiffrement par bloc en chiffrement par flux
o Fonctionne en temps réel : chaque caractère crypté et transmis
immédiatement
o Le texte chiffré précédent est utilisé comme entrée de chiffrement
pour produire une sortie pseudo-aléatoire
o En effectuant XOR entre la sortie et le texte en clair, on obtient le
texte chiffré.

36
II. Chiffrement symétrique :
Output FeedBack mode (OFB):
o Convertit le chiffrement par bloc en chiffrement par flux
o Similaire à CFB, sauf que l'entrée de l'algorithme de chiffrement
précède la sortie de chiffrement
o Inconvénient : plus vulnérable aux attaques de modification de
flux de messages

37
II. Chiffrement symétrique :

Problème de distribution de la clé


• Pour N utilisateurs, il faut N ( N -1)
clés. Soit alors
2

Utilisateurs Clés
100 5000
1000 500000

38
II. Chiffrement symétrique :

Echange de clés Diffie‐Hellman:


En cryptographie, l'échange de clés Diffie-Hellman, du nom de ses
auteurs Whitfield Diffie et Martin Hellman, est une méthode, publiée
en 1976, par laquelle deux agents, nommés par convention
Alice et Bob, peuvent se mettre d'accord sur un nombre (qu'ils peuvent
utiliser comme clé pour chiffrer la conversation suivante) sans qu'un
troisième agent appelé Ève puisse découvrir le nombre, même en
ayant écouté tous leurs échanges.

39
II. Chiffrement symétrique :

Principe d’un échange de clés Diffie‐Hellman:


1. Alice et Bob ont choisi un nombre premier p et un nombre g
strictement plus petit que p ;
2. Alice choisit un nombre a au hasard, et envoie à Bob le nombre
A=gª[p] (« g puissance a modulo p ») ;
3. De même, Bob choisit un nombre b au hasard, et transmet le
nombre B=gᵇ[p] ;
4. Alice, avec le nombre B reçu de Bob, calcule Bª[p]. Elle obtient
donc le nombre gᵇª[p] ;
5. Bob fait le calcul analogue avec le nombre A reçu d'Alice : Aᵇ[p]. Il
obtient gᵇª[p], ce qui est le même nombre que celui obtenu par
Alice.

40
II. Chiffrement symétrique :

Diffie‐Hellman: Exemple

• Alice et Bob choisissent un nombre premier p=23 et une base g=3


• Alice choisit un nombre secret a=6
• Elle envoie à Bob la valeur ga [mod p] = 36 [23] = 16
• Bob choisit à son tour un nombre secret b=15
• Bob envoie à Alice la valeur gb [mod p] = 315 [23] = 12
• Alice calcule la clé secrète : (gb [mod p])a [mod p] = 126 [23] = 9
• Bob obtient la même clé qu'Alice : (ga [mod p])b [mod p] = 1615 [23] = 9

41
II. Chiffrement symétrique :

Histoire du DES (Data Encryption Standard) :


• Jusqu‘au les années 1970, seuls les militaires possédaient des
algorithmes à clé secrète fiables.
• Devant l'émergence de besoins civils, le NBS (National Bureau of
Standards) lança le 15 mai 1973 un appel d'offres dans le Federal
Register (l'équivalent du Journal Officiel américain) pour la création d'un
système cryptographique dont :
– l'algorithme repose sur une clé relativement petite, qui sert à la fois
au chiffrement et au déchiffrement ;
– l'algorithme doit être facile à implémenter, en logiciel et en matériel,
et doit être très rapide ;
– le chiffrement doit avoir un haut niveau de sûreté, uniquement lié à
la clé, et non à la confidentialité de l'algorithme .
 Les efforts conjoints d'IBM, qui propose Lucifer fin 1974, et de la NSA
(National Security Agency) conduisent à l'élaboration du DES (Data
Encryption Standard) en 1975, l'algorithme de chiffrement le plus utilisé
au monde durant le dernier quart du XXième siècle.

42
II. Chiffrement symétrique :

Data Encryption Standard (DES)


• C’est le schéma de chiffrement symétrique par bloc
• Developpé dans les années 70 par IBM, standard ANSI en 1981 (ANSI
X3.92)
• Largement utilisé dans les transactions bancaires
• N’est plus considéré comme suffisament robuste
• Principe:

Plaintext: 64 bits

Key: 56 bits DES

Ciphertext: 64 bits

43
II. Chiffrement symétrique :

Data Encryption Standard (DES)


Les grandes lignes de l'algorithme sont les suivantes :
 Fractionnement du texte en blocs de 64 bits (8 octets) ;
 Permutation initiale des blocs ;
 Découpage des blocs en deux parties: gauche et droite,
nommées L et R ;
 Etapes de permutation et de substitution répétées 16 fois
(appelées rondes) ;
 Recollement des parties gauche et droite puis permutation initiale
inverse.

44
II. Chiffrement symétrique :

Clé du DES
• La clé du DES est une chaîne de 64 bits (succession de 0 et de 1),
dont seuls 56 bits servent réellement à définir la clé.
– Les bits 8,16,24,32,40,48,56,64 sont des bits de parité (=bits de
détection d'erreur)
– Le 8ème bit est fait en sorte que sur les 8 premiers bits, il y ait un
nombre impair de 1. Par exemple, si les 7 premiers bits sont
1010001, le 8ème bit est 0. Ceci permet d'éviter les erreurs de
transmission
• Il y a donc pour le DES 256 clés possibles, soit environ ... 72 millions
de milliards de possibilités

45
II. Chiffrement symétrique :

DES Algorithm
64 bits
Plaintext
IP
32 bits 32 bits

L0 R0
f K1
48 bits

L1=R0 R1  L0  f ( R 0 , K1 )
K2
f
48 bits
K
L2 =R1 R 2  L1  f ( R 1 , K 2 ) Key
scheduler 56 bits

L15=R14 R 15  L14  f ( R 14 , K 15 )
f K16
48 bits
L16=R15
R16  L15  f (R15 , K16 )

IP-1

Ciphertext
64 bits

46
II. Chiffrement symétrique :

Permutation initiale (IP)


•Premièrement, chaque bit d'un bloc est soumis à une permutation initiale qui
peut être représentée par la table de permutation initiale (IP) ci-dessous :
•Ce tableau de permutation, lu de gauche à droite, puis de haut en bas,
montre que le 58ème bit du bloc de 64 bits est en première position, le 50ème en
deuxième position, et ainsi de suite.

47
II. Chiffrement symétrique :

Division en blocs de 32 bits


•Une fois la permutation initiale terminée, le bloc
de 64 bits est divisé en deux blocs de 32 bits,
notés respectivement L et R (pour gauche et
droite). L'état initial de ces deux blocs est noté L0

et R0 :

•Il est à noter que L0 contient tous les bits ayant


une position paire dans le message initial, alors
que R0 contient des bits ayant une position
impaire.

48
II. Chiffrement symétrique :

Round
Les blocs Ln et Rn sont soumis à un ensemble de transformations
répétées appelées round, représentées sur ce schéma, et dont les
détails sont donnés ci-dessous :

Ln Kn+1 Rn
(32 bits) (48 bits) (32 bits)

+ S + E
(32 bits) (48 bits) (48 bits)

Rn+1
(32 bits)

49
II. Chiffrement symétrique :

One Round of DES


32 bits 32 bits 56 bits
Key
Li-1 Ri-1

32 bits Shift Shift

Expansion permutation

48 bits Compr. permutation

48 bits

S-Box Substitution

32 bits

P-Box Permutation
32 bits

Li Ri Key

50
II. Chiffrement symétrique :

Fonction d'expansion (Expansion Permutation)


•Les 32 bits du bloc R0 sont étendus à 48 bits, grâce à une
table appelée table d'expansion (notée E), dans laquelle les
48 bits sont mélangés et 16 d'entre eux sont dupliqués.
•Ainsi, le dernier bit de R0 (c'est-à-dire le 7ème bit du bloc
d'origine) devient le premier, le premier devient le second,
et ainsi de suite. De plus, les bits 1, 4, 5, 8, 9, 12, 13, 16, 17,
20, 21, 24, 25, 28 et 29 de R0 (respectivement 57, 33, 25, l,
59, 35, 27, 3, 6l, 37, 29, 5, 63, 39, 31 et 7 du bloc original)
sont dupliqués et dispersés dans le tableau.

51
II. Chiffrement symétrique :

One Round of DES


32 bits 32 bits 56 bits
Key
Li-1 Ri-1

32 bits Shift Shift

Expansion permutation

48 bits Compr. permutation

48 bits

S-Box Substitution

32 bits

P-Box Permutation
32 bits

Li Ri Key

52
II. Chiffrement symétrique :

OU exclusif avec la clé

La table de 48 bits résultante est appelée R0 ou E [R0]. L'algorithme DES

effectue alors un OU exclusif sur la première clé K1 avec E[R0]. Le


résultat de ce OU exclusif est une table de 48 bits que nous appellerons
R0 par commodité (ce n'est pas le R0 de départ !).

53
II. Chiffrement symétrique :

Fonction de substitution (S‐Box Substitution)


•R0 est alors divisé en 8 blocs de 6 bits, notés R0i. Chacun de ces blocs
est traité par des fonctions de sélection (parfois appelées boîtes de
substitution ou fonctions de compression), généralement notées Si.

•Les premier et dernier bits de chaque R0i déterminent (en valeur


binaire) la ligne de la fonction de sélection ; les autres bits
(respectivement 2, 3, 4 et 5) déterminent la colonne. Comme la
sélection de la ligne est basée sur deux bits, il y a 4 possibilités (0, 1, 2,
3). Comme la sélection de la colonne est basée sur 4 bits, il y a 16
possibilités (0 à 15). Grâce à cette information, la fonction de sélection
"sélectionne" une valeur chiffrée de 4 bits.

54
II. Chiffrement symétrique :

Fonction de substitution (S‐Box Substitution)


Chaque bloc de 6 bits est donc remplacé par un bloc de 4 bits. Ces bits
sont par la suite combinés pour former un bloc de 32 bits.
Les fonctions de substitution sont représentées par les tableaux
suivants :

55
II. Chiffrement symétrique :

Fonction de substitution (S‐Box Substitution)

56
II. Chiffrement symétrique :

Fonction de substitution (S‐Box Substitution)


Exemple :
Soit R01 égal à 101110. Les premier et dernier bits donnent 10 qui est 2 en
valeur binaire. Les bits 2, 3, 4 et 5 donnent 0111 qui est 7 en valeur binaire.
Le résultat de la fonction de sélection est donc la valeur située sur la ligne
numéro 2, dans la colonne numéro 7. C'est la valeur 11, ou 0111 en binaire.
Chacun des 8 blocs de 6 bits passe par la fonction de sélection
correspondante, qui donne une sortie de 8 valeurs de 4 bits chacune.

57
II. Chiffrement symétrique :

One Round of DES


32 bits 32 bits 56 bits
Key
Li-1 Ri-1

32 bits Shift Shift

Expansion permutation

48 bits Compr. permutation

48 bits

S-Box Substitution

32 bits

P-Box Permutation
32 bits

Li Ri Key

58
II. Chiffrement symétrique :

Permutation (P‐Box Permutation)


Le bloc de 32 bits obtenu est alors soumis à une fonction de
permutation P.

OU exclusif
Tous ces résultats issus de P sont soumis à un OU Exclusif, avec le L0 de

départ (comme indiqué sur le premier diagramme) pour donner R1,

tandis que le R0 initial donne L1.

Itération
Toutes les étapes précédentes (round) sont répétées 16 fois.

59
II. Chiffrement symétrique :

Permutation initiale inverse


A la fin des itérations, les deux blocs L16 et R16 sont réunis, puis soumis à
la permutation initiale inverse :

Le résultat de sortie est un texte chiffré de 64 bits.

60
II. Chiffrement symétrique :

DES Algorithm
64 bits
Plaintext
IP
32 bits 32 bits

L0 R0
K1
f
48 bits

L1=R0 R 1  L 0  f (R 0 , K1 )
K2
f
48 bits
K
L2 =R1 R 2  L1  f (R 1 , K 2 ) Key
scheduler 56 bits

L15=R14 R 15  L14  f (R 14 , K15 )


f K16
48 bits
L16=R15
R16  L15  f (R15,K16 )

IP-1

Ciphertext 64 bits

61
II. Chiffrement symétrique :

One Round of DES


32 bits 32 bits 56 bits
Key
Li-1 Ri-1

32 bits Shift Shift

Expansion permutation

48 bits Compr. permutation

48 bits

S-Box Substitution

32 bits

P-Box Permutation
32 bits

Li Ri Key

62
II. Chiffrement symétrique :

Génération des clés


Les sous‐clés (Subkeys) sont générées à partir de la
clé principale de 64 bits utilisant le schéma ci-contre :
– Permutation notée PC-1 de la clé sur 64 bits pour
obtenir une clé sur 56 bits.
– Division de la clé de 56 bits en deux segments chacun
sur 28 bits.
– Rotation de chaque segment par un ou deux bits à gauche
(selon le nombre de l’itération).
– Regroupement des deux blocs de 28 bits en un seul
bloc de 56 bits.
– Permutation notée PC-2, donnant en sortie un bloc
de 48 bits, représentant la clé Ki.

63
II. Chiffrement symétrique :

Génération des clés


•La 1ère étape est une permutation notée PC-1 dont le tableau est
présenté ci-dessous :

•Cette table peut être écrite sous la forme de deux tables Li et Ri


composées chacune de 28 bits :

64
II. Chiffrement symétrique :

Génération des clés


Itération Nombre de
décalage à gauche
•Rotation de la clé : à chaque itération, chaque
1 1
sous-clé de 28 bits subit une rotation d’1 ou 2 bits 2 1
3 2
vers la gauche selon la table suivante: 4 2
5 2
6 2
7 2
8 2
Exemple :1 Left Shift (LS) 9 1
1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 10 2
11 2
12 2
1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 13 2
14 2
15 2
16 1

65
II. Chiffrement symétrique :

Génération des clés


Les deux blocs de 28 bits sont alors regroupés en un seul bloc de 56
bits. Celui-ci passe par une permutation, notée PC-2, donnant en sortie
un bloc de 48 bits, représentant la clé Ki.

La répétition de l'algorithme permet de donner les 16 clés K1 à K16


utilisées dans l'algorithme DES.

66
II. Chiffrement symétrique :

Exemple : Algorithme de chiffrement DES :


Key: K = 133457799BBCDFF116

Cleartext: M = 0123456789ABCDEF16
1ère étape : Génération des clés :
Clé sur 64 bits en héxadécimal: K = 133457799BBCDFF1 16
Clé sur 64 bits en binaire :
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
1. Permutation PC1 :
Permutation utilisant le tableau PC1 :

K = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111

67
II. Chiffrement symétrique :

2. Division de la clé de 56 bits en deux segments chacun sur 28 bits :


K = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
L0 = 1111000 0110011 0010101 0101111

R0 = 0101010 1011001 1001111 0001111

3. Rotation de chaque segment par un ou deux bits à gauche (selon le


nombre de l’itération) :

Itération 1  1 décalage à gauche L1 = 1110000110011001010101011111


R1 = 1010101011001100111100011110

Itération 2  1 décalage à gauche L2 = 1100001100110010101010111111


R2 = 0101010110011001111000111101

68
II. Chiffrement symétrique :
4. Regroupement des deux blocs de 28 bits en un seul bloc de 56 bits :

L1R1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 001111

5. Permutation PC-2, donnant en sortie un bloc de 48 bits, représentant


la clé K1 :

K1 = 000110 110000 001011 101111 111111 000111 000001 110010

69
II. Chiffrement symétrique :

2ème étape : Algorithme DES :


Cleartext en héxadécimal: M = 0123456789ABCDEF16
Cleartext en binaire :
M = 00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111
1. Permutation initiale
Permutation utilisant le tableau IP:

IP = 11001100 00000000 11001100 11111111 11110000 10101010 11110000 10101010

70
II. Chiffrement symétrique :

2. Division en 2 blocs de 32 bits


Une fois la permutation initiale terminée, le bloc de 64 bits est divisé en deux blocs de
32 bits, notés respectivement L et R (pour gauche et droite). L'état initial de ces deux
blocs est noté L0 et R0 :
IP = 11001100 00000000 11001100 11111111 11110000 10101010 11110000 10101010
L0 = 11001100 00000000 11001100 11111111

R0 = 11110000 10101010 11110000 10101010


3. 16 round 1≤ n ≤16 ; Round 1 :
Ln = Rn-1
+
Rn = Ln-1 f(Rn-1, Kn)

K1 = 000110 110000 001011 101111 111111 000111 000001 110010

L1 = R0 =+1111 0000 1010 1010 1111 0000 1010 1010

R1 = L 0 f (R0, K1)

71
II. Chiffrement symétrique :

4. Fonction d’expansion appliquée pour la partie droite R 0

Etendre la taille de R0 de 32 bits à 48 bits en se basant sur la table (E):

R0 = 1111 0000 1010 1010 1111 0000 1010 1010

E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101

5. XOR E(R0) avec K1

K1 = 000110 110000 001011 101111 111111 000111 000001 110010

E(R+
0) = 011110 100001 010101 010101 011110 100001 010101 010101

K1 E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111


72
II. Chiffrement symétrique :

6. Fonction de substitution
Regrouper les données sur 48 bits en 8 blocs de 6 bits chacun
Kn + E(Rn-1) =B1B2B3B4B5B6B7B8

Chaque bloc de 6 bits est un index dans une S-box


Le premier et le dernier bits forment une adresse de ligne
Les 4 bits du milieu forment une adresse de colonne
Chaque entrée S-box donne un résultat de 4 bits
Il y a 8 S-box
Forme S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)
+
K1 E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111
L'adresse de ligne est 00
L'adresse de la colonne est 1100
S1(B1) = 5 = 0101

S(B) = 0101 1100 1000 0010 1011 0101 1001 0111 73


II. Chiffrement symétrique :

7. Permutation P-Box
Le bloc de 32 bits obtenu est alors soumis à une fonction de permutation P.
S(B) = 0101 1100 1000 0010 1011 0101 1001 0111
f (R0, K1) = 0010 0011 0100 1010 1010 1001 1011 1011

8. Calcul de R
Rn = Ln-1 + f(Rn-1, Kn)

L0: 1100 1100 0000 0000 1100 1100 1111 1111

f (R0, K1) : ? 0010 0011 0100 1010 1010 1001 1011 1011

 R1: 1110 1111 0100 1010 0110 0101 0100 0100

74
II. Chiffrement symétrique :

9. Encore 15 round
K2 = 011110 011010 111011 011001 110110 111100 100111 100101

L2 = R1 = 1110 1111 0100 1010 0110 0101 0100 0100


+
R2 = L 1 f (R1, K2) ..............
10. Permutation finale
R16L16 = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100
Ciphertext:
C = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101
= 85E813540F0AB40516

75
II. Chiffrement symétrique :
Remarque : Texte  ASCII  Hex  Binaire

76
II. Chiffrement symétrique :

Passage vers le Triple‐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 clé est retrouvée en
quelques heures à 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, en attendant la migration vers AES.

77
II. Chiffrement symétrique :

Passage vers le Triple‐DES


•On distingue habituellement plusieurs types de chiffrement triple DES :
– DES‐EEE3 : Utilise trois clés différentes pour le cryptage, et les données
sont cryptées, cryptées, cryptées : E( K1, E( K2, E( K3, P)))
– DES‐EDE3 : Utilise trois clés différentes pour le cryptage et les données
sont cryptées, décryptées et cryptées : E( K1, D( K2, E( K3, P)))
– DES‐EEE2 : Identique à DES-EEE3 mais n'utilise que deux clés, et les
premier et troisième processus de cryptage utilisent la même clé :
E( K1, E( K2, E( K1, P)))
– DES‐EDE2 : Identique à DES-EDE3 mais n'utilise que deux clés, et les
premier et troisième processus de chiffrement utilisent la même clé :
E( K1, D( K2, E( K1, P)))

78
II. Chiffrement symétrique :

AES : historique d’une compétition


•En 1997 le NIST (National Institute of Standards and Technology) lança
un nouvel appel à projet pour élaborer l'AES (Advanced Encryption
Standard), un algorithme de chiffrement destiné à remplacer le DES.
•Le système de chiffrement DES fût réactualisé tous les 5 ans. En 2000
lors de la dernière révision, après un processus d'évaluation qui a duré 3
années, l’algorithme conçu conjointement par deux candidats belges,
Messieurs Vincent Rijmen et Joan Daemen fût choisi comme nouveau
standard par le NIST. Ce nouvel algorithme baptisé RIJNDAEL par ses
inventeurs, remplacera dorénavant le DES.

79
II. Chiffrement symétrique :

AES (Advanced Encryption Standard)


•Les données sont codés en 128 bits. Elles sont stockées dans
un « carré » de 4 x 4 = 16 cases. Chaque case contient 1 octet
(8 x 16 = 128 bits d’état interne)
•La clé est codée en 128, 192 ou 256 bits
•Il s’agit d’une succession de fonctions à appliquer en 10, 12
Clé Nombre
ou 14 itérations. d’itérations
128 bits 10
•Chaque bloc est exprimé en byte (octet). Chaque byte
192 bits 12
représente un polynôme dans le corps galois GF(2 ) (Galois
8
256 bits 14
Field).
•Ce corps admet un polynôme irréductible. Le polynôme
irréductible pour l’AES est : g(x)=x8+x4+x3+x+1

80
II. Chiffrement symétrique :

AES (Advanced Encryption Standard)


Rappel mathématiques :
Une brève introduction aux Galois Fields pour l'AES

•Un corps fini (Finite Field), parfois aussi appelé corps de Galois (Galois
Field), est un ensemble avec un nombre fini d'éléments. En gros, un
corps de Galois est un ensemble fini d'éléments dans lequel on peut
additionner, soustraire, multiplier et inverser.
•En cryptographie, on s'intéresse presque toujours aux corps à nombre
fini d'éléments, que l'on appelle corps finis ou corps de Galois. Le
nombre d'éléments dans le corps est appelé ordre ou cardinalité du
champ.

81
II. Chiffrement symétrique :

•Théorème : Un corps d'ordre m n'existe que si m est une puissance


première, c'est-à-dire m = pn, pour un entier positif n et un entier
premier p.
p est appelé la caractéristique du corps fini.
•Ce théorème implique qu'il existe, par exemple, des corps finis à 11
éléments, ou à 81 éléments (puisque 81 = 34) ou à 256 éléments
(puisque 256 = 28, et 2 est un nombre premier). Cependant, il n'y a pas
de corps fini à 12 éléments puisque 12 = 22 · 3, et 12 n'est donc pas une
puissance première.
•GF(256) = GF(28) s’appelle corps de l’AES.

82
II. Chiffrement symétrique :

GF(pm)
m=1 m>1

GF(p) GF(p m)
Prime Fields Extension Fields
Les exemples les plus intuitifs de corps finis Dans AES, le corps fini contient 256
sont les corps d'ordre premier, c'est-à-dire éléments et est noté GF(28). Pour les
les corps avec n=1. Les éléments du corps transformations S-Box et MixColumn, AES
GF(p) peuvent être représentés par des traite chaque octet du chemin de données
entiers 0,1, . . . , p−1. Les deux opérations interne comme un élément du champ
du corps sont l'addition d'entiers GF(28) et manipule les données en
modulaires et la multiplication d'entiers effectuant des opérations arithmétiques
modulo p. dans ce corps fini.

83
II. Chiffrement symétrique :

•Dans les « extension fields », les éléments GF(2m) ne sont pas


représentés comme des entiers mais comme des polynômes avec des
coefficients dans GF(2). Les polynômes ont un degré maximum de m-1,
de sorte qu'il y a m coefficients au total pour chaque élément.
•Les éléments de GF(2m) sont des polynômes :
A(x) = am-1xm-1+· · ·+a1x+a0, ai ∈ GF(2) = {0,1}
• Dans le champ GF(28), qui est utilisé en AES, chaque élément A ∈
GF(28) est donc représenté par :
A(x) = a7x7+· · ·+a1x+a0, ai ∈ GF(2) = {0,1}

84
II. Chiffrement symétrique :

Addition et soustraction dans GF(2m) :


Soit A(x),B(x) ∈ GF(2m). La somme des deux éléments est alors calculée
selon :
m-1
C(x) = A(x)+B(x) = ∑ cixi, ci ≡ ai+bi mod 2
i=0
et la différence est calculée selon :
m-1
C(x) = A(x)-B(x) = ∑ cixi, ci ≡ ai - bi mod 2 ≡ ai+bi mod 2
i=0
L'addition et la soustraction modulo 2 sont la même opération. De plus,
l'addition modulo 2 est égale à XOR bit à bit. Regardons un exemple
dans le champ GF(28) qui est utilisé dans AES :

85
II. Chiffrement symétrique :

Voici la somme C(x)=A(x)+B(x) de deux éléments de GF(28) :


A(x) = x7+ x6+ x4+ 1
B(x) = x4+ x2+ 1

C(x) = x7+ x6+ x2


Notez que si nous calculions la différence des deux polynômes A(x)
−B(x) à partir de l'exemple ci-dessus, nous obtiendrions le même
résultat que pour la somme.
Multiplication dans GF(2m) :
m
Soit A(x),B(x) ∈ GF(2m) et soit g(x) = ∑ gixi, gi ∈ GF(2) un polynôme
i=0
irréductible. La multiplication des deux éléments A(x),B(x) est effectuée
comme : C(x) ≡ A(x) ·B(x) mod g(x).
Pour AES, le polynôme irréductible g(x)=x8+x4+x3+x+1 est utilisé.

86
II. Chiffrement symétrique :

Étapes de l’AES 128

87
II. Chiffrement symétrique :

AddRoundKey
•Il s’agit d’une addition binaire des bytes de la donnée avec des bytes de
la clé (soit alors par l’application de l’XOR)

88
II. Chiffrement symétrique :

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

89
II. Chiffrement symétrique :

SubBytes
•Par exemple si s11={53}, il sera substitué par la case dans la ligne 5 et
colonne 3, donc par {ed}.

S-Box

90
II. Chiffrement symétrique :

ShiftRows
•Décalage circulaire des lignes li de la donnée par i‐1 bytes

91
II. Chiffrement symétrique :

MixColumns
•Chaque byte représente un polynôme. On applique à ces polynômes
des multiplications par 03 (P(x)=x+1) , 02 (P(x)=x) ou 01 (P(x)=1) aux
colonnes.

92
II. Chiffrement symétrique :

Génération de la clé
•Les quatre vecteurs composant la matrice Key sont appelés Words, ce sont des
mots de 32 bits.
•Nous allons commencer tout d’abord par calculer le cinquième vecteur (W i).

Puis, nous allons prendre le vecteur Wi‐1 et nous lui appliquons une opération
appelée RotWord qui consiste en un simple décalage des quatre octets du
vecteur vers le haut. Au résultat, nous appliquons l’opération SubBytes que nous
avons déjà définie.

93
II. Chiffrement symétrique :

Exemple

State Cipher Key

94
II. Chiffrement symétrique :
A. AddRoundKey

⊕ =

B. Encryption round

95
II. Chiffrement symétrique :

S-Box

96
II. Chiffrement symétrique :

Aucune rotation

Rotation d’un octet

Rotation de deux octets

Rotation de trois octets

97
II. Chiffrement symétrique :

. =

. = ?

98
II. Chiffrement symétrique :

 {02.d4} + {03.bf} + {01.5d} + {01.30}


• {02.d4} :
02 = 0000 0010  x
d4 = 1101 0100  x7+x6+x4+x2
{02.d4} = x.(x7+x6+x4+x2)
= x8+x7+x5+x3 ∉ GF(28)
= x7+x5+x4+x+1 mod g(x)

x8+x7+x5+x3 x8+x4+x3+x+1
x8+x4+x3+x+1 1
x7+x5+x4+x+1

99
II. Chiffrement symétrique :

• {03.bf} :
03 = 0000 0011  x+1
bf = 1011 1111  x7+x5+x4+x3+x2+x+1
{03.bf} = (x+1).(x7+x5+x4+x3+x2+x+1)
= (x8+x6+x5+x4+x3+x2+x)+(x7+x5+x4+x3+x2+x+1)
= x8+x7+x6+1 ∉ GF(28)
= x7+x6+x4+x3+x mod g(x)

x8+x7+x6+1 x8+x4+x3+x+1
x8+x4+x3+x+1 1
x7+x6+x4+x3+x

100
II. Chiffrement symétrique :

• {01.5d} :
01 = 0000 0001  1
5d = 0101 1101  x6+x4+x3+x2+1
{01.5d} = 1.(x6+x4+x3+x2+1)
= x6+x4+x3+x2+1 ∈ GF(28)
• {01.30} :
01 = 0000 0001  1
30 = 0011 0000  x5+x4
{01.30} = 1.(x5+x4)
= x5+x4 ∈ GF(28)
{02.d4} + {03.bf} + {01.5d} + {01.30}
= (x7+x5+x4+x+1) + (x7+x6+x4+x3+x) + (x6+x4+x3+x2+1) + (x5+x4)
= x2
 0000 0100
= (04)16

101
II. Chiffrement symétrique :
 {01.d4} + {02.bf} + {03.5d} + {01.30}
• {01.d4} :
01 = 0000 0001  1
d4 = 1101 0100  x7+x6+x4+x2
{01.d4} = 1.(x7+x6+x4+x2)
= x7+x6+x4+x2 ∈ GF(28)
• {02.bf} :
02 = 0000 0010  x
bf = 1011 1111  x7+x5+x4+x3+x2+x+1
{02.bf} = x.(x7+x5+x4+x3+x2+x+1)
= x8+x6+x5+x4+x3+x2+x ∉ GF(28)
= x6+x5+x2+1 mod g(x)
x8+x6+x5+x4+x3+x2+x x8+x4+x3+x+1
x8+x4+x3+x+1 1
x6+x5+x2+1

102
II. Chiffrement symétrique :
• {03.5d} :
03 = 0000 0011  x+1
5d = 0101 1101  x6+x4+x3+x2+1
{03.5d} = (x+1).(x6+x4+x3+x2+1)
= (x7+x5+x4+x3+x)+(x6+x4+x3+x2+1)
= x7+x6+x5+x2+x+1 ∈ GF(28)
• {01.30} :
01 = 0000 0001  1
30 = 0011 0000  x5+x4
{01.30} = 1.(x5+x4)
= x5+x4 ∈ GF(28)
 {01.d4} + {02.bf} + {03.5d} + {01.30}
= (x7+x6+x4+x2) + (x6+x5+x2+1) + (x7+x6+x5+x2+x+1) + (x5+x4)
= x6+x5+x2+x
 0110 0110
= (66)16

103
II. Chiffrement symétrique :

⊕ =

RoundKey

104
II. Chiffrement symétrique :

105
II. Chiffrement symétrique :

106
II. Chiffrement symétrique :

Génération des clés


•La clé étendue peut être vue comme un tableau de « word » de 32-bits
(colonnes) numérotées de 0 à 43.
•Les 4 premières colonnes sont remplies avec la clé de chiffrement (cipher key)
donnée.
•Les colonnes dans les positions qui sont multiples de 4 (w 4, w8,…, w40) sont
calculées par:
1/ Application de opérations Rotword (Décalage des 4 octets du vecteur vers le
haut) et Subbytes au « word » précédent wi-1

2/ Addition (XOR) du résultat avec le « word » wi-4 et avec une constante Rcon
donnée.
•Pour les « word » restants wi , ils sont calculés en additionnant (XOR) le « word »

précédent wi-1 avec le « word » wi-4.

107
II. Chiffrement symétrique :

w0 w1 w2 w3

w0 w1 w2 w3 w4

Rotword Subbytes

108
II. Chiffrement symétrique :

Rcon

w0 w1 w2 w3 w4

109
II. Chiffrement symétrique :
w0 w1 w2 w3 w4 w5

w0 w1 w2 w3 w4 w5

110
II. Chiffrement symétrique :

111
III. Chiffrement asymétrique :

Primitives Cryptographiques
Fonctions de hachage
Primitives
Permutations
sans clés
Suites aléatoires

Fonctions de hachage
Par bloc
Chiffrement
Primitives Primitives à
Par flux
de sécurité clé symétrique Signatures
K = K’
Suites pseudo-aléatoires

Chiffrement à clé publique


Primitives à
clé publique Signatures

K ≠ K’ Authentification

112
III. Chiffrement asymétrique :

•Confidentialité: Alice utilise la clé publique de Bob pour coder un


message que seul Bob (en possession de la clé privée) peut le décoder
•Authentification: Bob utilise sa propre clé privée pour coder un
message que Alice peut le décoder avec la clé publique
•Algorithmes de génération de paires de clés
•Algorithme de chiffrement
•Algorithme de déchiffrement
•Exemples:
– RSA
– ElGamal
– ECC

113
III. Chiffrement asymétrique :

•Certains algorithmes de chiffrement/déchiffrement (exemple: RSA) reposent sur un


couple {clé privée sk, clé publique pk}.
– La clé de chiffrement pk est publique

– La clé de déchiffrement sk est privée


•Un chiffrement à clé publique se compose de trois algorithmes

– Algorithme de génération de clé : KG(l)={pk,sk} à partir d’un paramètre de


sécurité; il produit un couple (clé publique, clé privée)
– Algorithme de chiffrement : E(m,pk)=c utilise la clé publique pour chiffrer m

– Algorithme de déchiffrement : D(c,sk)=m utilise la clé privée pour remonter à m

114
III. Chiffrement asymétrique :

Scénario d’utilisation : confidentialité


Scénario: confidentialité : seul le propriétaire de la clé privée pourra lire le
message chiffré avec la clé publique correspondante.

Clé publique Clé privée


du récepteur du récepteur

Texte Texte
chiffrement Internet Déchiffrement
clair
clair Voici le
Voici le
numé ro numé ro
de ma de ma
carte de carte de
cré dit : ☺☼♀☻ cré dit :
111111 ♠♣▼╫◊ 111111

♫◙◘€£
¥₪Ω‫٭‬

Emetteur Texte Récepteu


crypté r

115
III. Chiffrement asymétrique :

Scénario d’utilisation : non répudiation


Scénario: authenticité de l’émetteur et non répudiation d’envoi : seul le
propriétaire de la clé privée peut signer un message (avec la clé privée). Une
signature déchiffrée avec la clé publique prouvera donc l'authenticité du
message.

Clé privée Clé publique


de l’émetteur de l’émetteur

Texte clair Texte clair


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

Emetteur Récepteur
Texte crypté

116
III. Chiffrement asymétrique :

RSA : Introduction
•RSA: Rivest, Shamir et Adleman du MIT en 1977
•Système le plus connu et le plus largement répandu
•100 à 1000 fois plus lent que DES
•basé sur l'élévation à une puissance dans un champ fini sur des nombres
entiers modulo un nombre premier
•Le nombre d’exponentiation prend environ O((log n)3) opérations → facile
•emploie de grands nombres entiers (par exemple 1024 bits)
•sécurité due à la factorisation de grands nombres
•Le nombre de factorisation prend environ O(e log n log log n) opérations →
difficile
•Usage : confidentialité, authentification

117
III. Chiffrement asymétrique :

RSA : Principe
•Choisir p et q, deux nombres premiers distincts et de taille à peu près égales
•Noter le « module de chiffrement » n=pq: La longueur de n devrait être entre
1024 et 2048 bits
•Calculer l'indicatrice d'Euler (Ordre du groupe multiplicatif) : (n)=(p‐1)(q‐1)
•Choisir e, un entier premier avec (n), appelé « exposant de chiffrement »
(pgcd(e, (n))=1).
•Comme e est premier avec (n), il est, d'après le théorème de Bachet‐
Bézout, inversible mod (n), c'est‐à ‐dire qu'il existe un entier d tel que
ed1 mod (n). d est l'exposant de déchiffrement.
•Le couple (e,n) est appelé clé publique
•Le couple (d,n) est appelé clé privée.

118
III. Chiffrement asymétrique :

Chiffrement / Déchiffrement RSA


•Chiffrement :
– Avant d'être chiffré, le message original doit être décomposé en une série
d'entiers M de valeurs comprises entre 0 et n-1.
– Pour chaque entier M il faut calculer C ≡ (Me) mod n

– Le message chiffré est constitué de la succession des entiers C.

•Déchiffrement :
– Conformément à la manière dont il a été chiffré, le message reçu doit être
composé d'une succession d'entiers C de valeurs comprises entre 0 et n-1.
– Pour chaque entier C il faut calculer M≡ (Cd) mod n.

– Le message original peut alors être reconstitué à partir de la série


d'entiers M.

119
III. Chiffrement asymétrique :

RSA – Exemple 1
• Bob choisi p=61 et q=53
– n = pq = 3233
– (n) = 60 x 52 = 3120

• Bob choisi e tel que pgcd((n),e)=1. On suppose que e=17


• d=e‐1 mod (n) = 2753 mod 3120 (clé privée) (On utilise
l’algorithme d'Euclide étendu)

• Bob publie n et e (clé publique)

• Chiffrement : enc(X) = (X^e) mod n = (X^17) mod 3233


• Déchiffrement : dec(X) = (X^d) mod n = (X^2753) mod 3233

• enc(123) = (123^17) mod 3233


= 855 (On utilise la méthode « modulo exponentiation »)
• dec(855)=(855^2753)mod 3233 = 123 (On utilise la méthode « modulo
exponentiation »)

120
III. Chiffrement asymétrique :

RSA – Exemple 1
d=e‐1 mod (n) = 2753 mod 3120 ?
e.d  1 mod (n)  17.d  1 mod 3120
Algorithme d'Euclide étendu :
pgcd((n),e)=1.
pgcd(3120,17)=1  Bezout: il existe u et v tel que 3120 u + 17 v =1
3120 = 183 * 17 + 9 9 = 3120 * 1 – 17 * 183

17 =1*9 +8 8 = 17 * 1 – 9 * 1
= 17 * 1 – (3120 * 1 – 17 * 183 )
= 17 * 184 – 3120 * 1

9 =1*8 +1 1=9*1–8*1
= (3120 * 1 – 17 * 183 )- (17 * 184 – 3120 * 1)
= 3120 * 2 – 17 * 367
d = -367 + 3120 = 2753

121
III. Chiffrement asymétrique :

RSA – Exemple 1
enc(123) = (123^17) mod 3233
= 855 ?
Méthode « modulo exponentiation » :
17(10) = 10001(2)

1 0 0 0 1
123 2197 3173 367 855

1232 mod 3233 = 2197


21972 mod 3233 = 3173
31732 mod 3233 = 367
3672 mod 3233 = 2136
(2136*123) mod 3233 = 262728 mod 3233 = 855

122
III. Chiffrement asymétrique :

RSA– Exemple 2
Saddam souhaiterait envoyer le message suivant à George : « Kisses
from Iraq ». Malheureusement, Vladimir les espionne, et pourrait
intercepter ce message. Nos deux compères vont donc chiffrer leurs
échanges avec la méthode RSA.
•Étape 1 :
– George a choisi p = 37 et q = 43. Il en déduit n = 37 × 43 =
1591, et (n) = 36 × 42 = 1512.
– Il choisit ensuite e = 19, qui est premier avec 1512. L’inverse de
19 modulo 1512 est d=955.
– George peut donc maintenant publier sa clé publique, par
exemple sur son site internet : e = 19 et n = 1591

123
III. Chiffrement asymétrique :

RSA– Exemple 2
•Étape 2

– Saddam va utiliser la clé pour chiffrer son message. Comme

Saddam veut envoyer le message sous forme d’un fichier


informatique, le mieux est d’utiliser le code ASCII.

Ensuite, il faut découper le message m en blocs qui comportent moins


de chiffres que n . n comporte 4 chiffres, on va donc découper notre
message m en blocs de 3 chiffres : 751 051 151 151 011 153 210 211
411 110 932 431 149 711 300 (on complète avec des zéros) par suite
on encrypte chacun de ces blocs.

124
III. Chiffrement asymétrique :

RSA– Exemple 2
•Étape 3

– Il suffit à Saddam de coder chaque nombre comme expliqué.


– On utilise la méthode « modulo exponentiation »
•Étape 4

– Saddam envoie cette suite de nombres à George, qui va la


déchiffrer avec sa clé d. Il va pouvoir retrouver le message
original.

125
III. Chiffrement asymétrique :

RSA– Exemples
Exemple 1:

On souhaite générer une paire de clé RSA à partir de n=1073 et (n)=1008.

1) Calculer les paramètres p et q.

2) Calculer la clé privée d correspondante à e=17.

3) Chiffrer le message M=976, ensuite déchiffrer le résultat.

126
III. Chiffrement asymétrique :

RSA– Exemples
Exemple 2 :

• Prenons deux nombres premiers aléatoirement : p = 29 , q = 37.

On calcule n = pq = 29 * 37 = 1073 .

(n)=( p -1)(q -1) = (29 -1)(37 -1) = 1008

• On doit choisir e au hasard tel que e et (n) soient premiers entre eux. On prend
e = 71.

• On choisit d tel que 71*d mod 1008 = 1. On trouve d = 1079 .

 Voici alors les deux clés privée et publique :

La clé publique est (e,n) = (71,1073)

La clé privée est (d,n) = ( 1079,1073)

127
III. Chiffrement asymétrique :

RSA– Exemples
On va encrypter le message 'HELLO'. On va prendre d’abord le code ASCII de chaque
caractère et on les met bout à bout : m = 72(H) 69(E) 76(L)76(L) 79(O) . Ensuite, il
faut découper le message m en blocs qui comportent moins de chiffres que n . n
comporte 4 chiffres, on va donc découper notre message m en blocs de 3 chiffres :
726 976 767 900 (on complète avec des zéros) par suite on encrypte 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 encrypté est 436 822 825 552.

128
III. Chiffrement asymétrique :

RSA– Exemples
On peut reconstituer le message chiffré avec d :

436^1079 mod 1073 = 726

822^1079 mod 1073 = 976

825^1079 mod 1073 = 767

552^1079 mod 1073 = 900

 C'est à dire la suite de chiffre 726 976 767 900.On retrouve notre message en
clair 72 69 76 76 79 c’est à dire 'HELLO'.

129
III. Chiffrement asymétrique :

RSA– Exemples
Exemple 3 :

On donne la clé publique (e=7, n=5141).

On suppose que le message « ILFAITBEAU » va être chiffré par la méthode


RSA en utilisant le code ASCII puis on découpe son message chiffré en blocs
de même longueur (En complétant par 0 à droite si nécessaire) :

1. Quel sera la taille de chaque bloc et pourquoi ?

2. Coder le message donné.

130
III. Chiffrement asymétrique :

RSA– Exemples
Exemple 3 : Réponse :
1. La taille de chaque bloc est égale à 3. Elle doit être plus petit que la longueur
de n qui est égale à 4.

2. 73(I)76(L)70(F)65(A)73(I)84(T)66(B)69(E)65(A)85(U)
737 670 657 384 666 965 850
737 ^7 mod 5141
670 ^7 mod 5141
657 ^7 mod 5141
384 ^7 mod 5141
666 ^7 mod 5141
965 ^7 mod 5141
850 ^7 mod 5141

131
III. Chiffrement asymétrique :

Limites de l’algorithme RSA


•Pour casser complètement le système, il faut retrouver l’exposant d ou p et q :
factorisation.
•Pour déchiffrer un message, il faut retrouver m à partir de m e : extraction de
racine e‐ièmes
•p et q doivent être très grands. On estime qu’il faut moins d’une seconde pour
casser un code à base de nombre de 32 bits.
•Il faut utiliser des clés à 128 bits minimum
•Il faut chiffrer le message par bloc de plusieurs caractère pour éviter de
déchiffrer le message par analyse fréquentielle : déchiffrer un message en se
basant sur la fréquence d’apparition des lettres dans une langue. Par exemple le
« e » en français est très souvent utilisé.
•Cas d’un modulo commun

132
III. Chiffrement asymétrique :

Cas du modulo commun


• Supposons qu’Alice et Bob utilisent le même modulo. Si un même
message a été chiffré à l’intention d’Alice et Bob, il devient possible à
tout le monde de le déchiffrer.

– Message m chiffré avec les exposants eA et eB supposés

premiers entre eux : u eA +v eB =1 (Bezout)

– Soient cA =meA et cB =meB les messages chiffrés

– N’importe qui peut calculer cAu . cBv = mu eA+v eB =m

133
III. Chiffrement asymétrique :

Attaques du RSA
Il existe trois approches pour attaquer le RSA :
• Recherche par force brute de la clé (impossible étant donné la taille
des données),
• Attaques mathématiques (basées sur la difficulté de calculer (n), la
factorisation du module n) (Méthode Fermat, Méthode Euler,
Méthode Pollard’s Rho) :
– factoriser n=p*q et par conséquent trouver (n) et puis d,
– déterminer (n) directement et trouver d,
– trouver d directement.
• Attaques de synchronisation (Timing attack).

134
III. Chiffrement asymétrique :

Attaques mathématiques
• Durée des attaques en s

Dell Inspiron D6000 processor 1.6 Ghz chips Intel Pentium M

135
III. Chiffrement asymétrique :

Avantages et inconvénients
• Avantages :
– Pas besoin d’établir un canal sûr pour la transmission de la clé.

– Plusieurs fonctions de sécurité: confidentialité, authentification, et


non‐répudiation
• Inconvénients :
– Généralement dix fois plus lent que le chiffrement symétrique.

– Problème d’implémentation sur les équipements disposants de


faible puissance de calcul (ex: cartes bancaire, stations mobiles, etc.)
• Clés longues
• Complexité algorithmique de la méthode (ex: réalisation des
opérations modulo n)

136
IV. Fonctions de hachage :
• Une fonction de hachage est une fonction qui, à partir d'une donnée
fournie en entrée, calcule une empreinte servant à identifier
rapidement la donnée initiale.

• Cette empreinte peut être aussi appelée selon le contexte somme de


contrôle, hash, résumé de message, condensé, condensat ou encore
empreinte cryptographique.

137
IV. Fonctions de hachage:
• Propriétés à respecter pour une fonction de hachage cryptographique :

– Preimage resistance (one-way) : Pour n'importe quelle valeur hash y, il est très difficile de
trouver une valeur x telle que h(x) = y.
– 2nd-preimage resistance (weak collision resistance) : Etant donné une valeur x, il est très
difficile de trouver une valeur x' ≠ x qui vérifie h(x’) = h(x).
– Collision resistance (strong collision resistance) : Il est très difficile de trouver deux valeurs
x et x’ telles que h(x) = h(x’).
• Différentes fonctions de hachage :

– MD5 (Message Digest 5) : crée une empreinte sur 128 bits à partir de blocs de 512 bits

– SHA1 (Secure Hash Algorithm 1) : crée une empreinte sur 160 bits à partir de blocs de 512
bits
– SHA2 ( Secure Hash Algorithm 2) : crée une empreinte sur 256, 384 ou 512 bits

138
IV. Fonctions de hachage:

Principe du hachage
Texte clair Texte clair

Internet
Hachage =? Hachage

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

139
IV. Fonctions de hachage:

Principe du hachage
Principe du Hachage : Vérification de la validité et de l’intégrité des
messages reçus

140
IV. Fonctions de hachage:

Exemple de fonctionnement

L’empreinte du message du message reçu est différente de celle du


message initial
•Quelqu’un a modifié le message
•Il y a une erreur de communication

141
IV. Fonctions de hachage:

Exemple: MD5
• MD5: Message Digest 5, est une fonction de hachage cryptographique qui permet
d'obtenir l'empreinte numérique d'un fichier / message
• Inventé par Ronald Rivest (le R de RSA)
• En 1996, une faille qualifiée de grave (possibilité de créer des collisions à la demande) est
découverte et indique que MD5 devrait être mis de côté au profit de fonctions plus
robustes comme SHA‐1.
• MD5 est encore largement utilisé comme outil de vérification lors des téléchargements
pour valider l'intégrité de la version téléchargée grâce à l'empreinte.
• MD5 peut aussi être utilisé pour calculer l'empreinte d'un mot de passe ; c'est le
système employé dans GNU/Linux : plutôt que de stocker les mots de passe
dans un fichier, ce sont leurs empreintes MD5 qui sont enregistrées; quelqu'un qui
lirait ce fichier ne pourra pas découvrir les mots de passe.

142
IV. Fonctions de hachage:

MD5: Principe
• Etape 1 : Complétion

– Le message est constitué de b bits m1...mb

– On complète le message par un 1, et


suffisamment de 0 pour que le message
étendu ait une longueur congruente à 448,
modulo 512
– Ajout à ce message la valeur de b, codée en
binaire sur 64 bits
– On obtient donc un message dont la
longueur totale est un multiple de 512 bits.
– On va travailler itérativement sur chacun des
blocs de 512 bits

143
IV. Fonctions de hachage:

MD5: Principe
• Etape 2 : Initialisation

– On définit 4 buffers de 32 bits A,B,C et D,


initialisés : A=01234567 ; B=89abcdef ;
C=fedcba98 ; D=76543210
– On définit aussi 4 fonctions F,G,H et I, qui
prennent des arguments codés sur 32 bits, et
renvoie une valeur sur 32 bits, les opérations
se faisant bit à bit :
 F(X,Y,Z) = (X AND Y) OR (not(X) AND Z)
 G(X,Y,Z) = (X AND Z) OR (Y AND not(Z))
 H(X,Y,Z) = X XOR Y XOR Z
 I(X,Y,Z) = Y XOR (X OR not(Z))

144
IV. Fonctions de hachage:

MD5: Principe
• Etape 3 : Calcul itératif :

Pour chaque bloc de 512 bits du texte, on fait les


opérations suivantes :
– on sauvegarde les valeurs des registres
dans A,B,C,D
– on calcule de nouvelles valeurs pour
A,B,C,D à partir de leurs anciennes
valeurs, à partir des bits du bloc qu'on
étudie, et à partir des 4 fonctions F,G,H,I
– Au final on fait A=A+A, B=B+B, C=C+C,
D=D+D.

145
IV. Fonctions de hachage:

MD5: Principe
• Étape 4 : Écriture du résumé

– Le résumé sur 128 bits est obtenu en


mettant bout à bout les 4 buffers A, B,
C, D de 32 bits

146
IV. Fonctions de hachage:

MD5: Principe

MD5 comprend 64 blocs de ce type, groupés


en quatre tours de 16 opérations.
•F est une fonction non linéaire, qui varie
selon le tour.
•Mi symbolise un bloc de 32 bits provenant
du message à hacher.
•Ki est une constante de 32 bits, différentes
pour chaque opération.
• [<<<]s est une rotation de s bits vers la
gauche, s varie pour chaque opération.
• [+] symbolise l'addition modulo 232.

147
V. Signature numérique :

Dans de nombreuses communications:


• Il est nécessaire de s'assurer de la provenance des données et de leur
intégrité,
• Vérifier qu'elles n'ont pas été modifiées lors de la transmission.

 Solution: La signature numérique : Elle consiste à générer un


condensé à partir d’un message et le chiffrer en utilisant la clé privée de
l’émetteur.
• L’émetteur envoie le message en clair avec la signature.
• Pour vérifier la validité de cette signature, le récepteur recalcule le
condensé à partir du message en clair et déchiffre la signature.
• Ensuite, il vérifie l’égalité des deux résultats.

148
V. Signature numérique :

Propriétés de signature :
• Impossible de contrefaire une signature : seul le détenteur de la clef
secrète peut signer en son nom.
• La signature ne doit plus être valide si le message clair à été modifier.
• Impossible de réutiliser une signature.
• Le signataire ne doit pas pouvoir nier avoir signé un message.
Un schéma de signature garantit :
• L'identité de la personne émettant le message,
• L'intégrité des données reçues, c'est-à-dire l'assurance que le message
n'a pas été modifier lors de sa transmission,
• La non-répudiation du message, ce qui signifie que l’émetteur du
message ne pourra pas nier en être l'auteur.

149
V. Signature numérique :

Principaux schémas de signature


Signature RSA
• Un utilisateur signe un message m en lui appliquant la fonction de
déchiffrement avec sa clé secrète d.
• Pour vérifier la signature, il suffit de lui appliquer la fonction de
chiffrement RSA paramétrée par la clef publique (e, n) associée, et de
vérifier que le résultat de ce calcul correspond bien au message clair
envoyé.
• Les conditions imposées sur la taille des entiers p et q sont les mêmes
dans le contexte de la signature que dans celui du chiffrement.

150
V. Signature numérique :

Signature RSA

151

Vous aimerez peut-être aussi