Cours Crypto

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

Université Cheikh Anta DIOP de Dakar

Faculté des Sciences et Techniques


(F. S. T.)
Département de Mathématiques et Informatique
(D. M. I.)
Laboratoire d'Algèbre de Cryptologie de Géométrie Algèbrique et Applications
(L. A. C. G. A. A.)

TITRE :

CRYPTOGRAPHIE

Demba SOW
Docteur en Mathématiques et Cryptologie
Enseignant chercheur au Département de Mathématiques/Informatique
Email : [email protected], [email protected]

Année universitaire 2022-2023

1
Table des matières

1 Notions de Cryptographie 4
1.1 Cryptographie moderne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Terminologie cryptographique . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Modélisation des systèmes de chirement . . . . . . . . . . . . . . . . . . . . 5
1.1.3 Systèmes de cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3.1 Cryptographie à clé secrète . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3.2 Cryptographie à clés publiques . . . . . . . . . . . . . . . . . . . . . 7
1.2 Services de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Schéma de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Besoins de sécurité lors d'une communication . . . . . . . . . . . . . . . . . . 9
1.2.3 Services de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Primitives de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Où applique t-on la cryptographie ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Notion de cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.1 Sécurité d'un chirement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.2 Taille des paramètres de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Cryptographie à clés secrètes 19


2.1 Chirement par blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Modes Opératoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.1 Modes opératoires : ECB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.2 Modes opératoires : CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Modes opératoires : CFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.4 Modes opératoires : compteur (CRT) . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Chirement par ux (par ot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Schémas symétriques : DES et AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.1 Data Encryption Standard (DES) . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.2 Advancing Encryption Standard (AES) . . . . . . . . . . . . . . . . . . . . . 25
2.5 Fonctions de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2
3 La cryptographie à clé publique 31
3.1 Concept des systèmes non symétriques . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Limites des systèmes asymétriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Schéma hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Signature numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5 Die-Hellman, RSA et ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.1 Protocole d'échange de clés Die-Hellman . . . . . . . . . . . . . . . . . . . . 37
3.5.2 Rivest Shamir Adleman (RSA) . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5.3 Le schéma d'El Gamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.6 Cryptanalyse de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6.1 Cryptanalyse de RSA connaissant φ(N ) . . . . . . . . . . . . . . . . . . . . . 42
3.6.2 Utilisation du même module et deux exposants diérents . . . . . . . . . . . . 42
3.6.3 Utilisation de modules diérents pour le même message . . . . . . . . . . . . 43
3.6.4 Cryptanalyse de RSA si |p − q| < cN 1/4 : Méthode de Fermat . . . . . . . . . 44

4 Public Key Infrastructure (PKI) 45


4.1 Dénition : Public Key Infrastructure (PKI) . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Rôle d'une infrastructure à clés publiques . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 Composants de l'infrastructure à clés publiques . . . . . . . . . . . . . . . . . . . . . 46
4.4 Les certicats numériques : Familles . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.5 Nature et composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6 Gestion des certicats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.7 Modes de création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.8 Scénario de n de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.9 Autorité de certication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.10 Utilisation dans le domaine des communications web . . . . . . . . . . . . . . . . . . 51
4.11 Fonctionnement interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.12 Exemples de PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5 Applications 54
5.1 Chirement/Signature : RSA et El Gamal sous Java/Maple . . . . . . . . . . . . . . 54
5.2 OpenSSL : Chirement/Signature, Certicats . . . . . . . . . . . . . . . . . . . . . . 54
5.3 GPG : Chirement et Signature de données . . . . . . . . . . . . . . . . . . . . . . . 54
5.4 GnuPG : Chirement/Signature des mails . . . . . . . . . . . . . . . . . . . . . . . . 55
5.5 KeyTools : Gestion des clés et certicats . . . . . . . . . . . . . . . . . . . . . . . . . 55

3
Chapitre 1

Notions de Cryptographie

Introduction
■ L'origine de la cryptographie remonte à 4000 avant J.C en Egypte pharaonique.
■ Jusqu'à une époque récente, la cryptographie était réservée aux domaines militaire et
diplomatique.
■ Par exemple, les spécialistes disent que, sans la cryptanalyse de la machine Enigma par
l'équipe de Alan Turing, les Alliers gagneraient dicilement la Deuxième Guerre Mon-
diale.
■ Initialement, la cryptographie s'occupait principalement des problèmes de condentialité
bien qu'il existait des techniques (protocoles) d'authentication entre autres.
■ Tous les algorithmes et protocoles inventés avant les années 70, ont été complè-
tement cassés.
■ On se refère à cette période en parlant de période de la cryptographie classique ou arti-
sanale (art des codes secrets) : 4000 ans avant J.C jusqu'en 1975/76.

1.1 Cryptographie moderne


■ Dans les années 70, considérées comme le début de l'époque moderne, la cryptographie,
devenue la science des codes secrets, s'est développée dans le monde civil surtout avec la
prolifération des systèmes de communication et de nouveaux services des années 1990/2000 :
Internet, Commerce électronique.
■ Cette nouvelle cryptographie est dite moderne parce que entre autres :
♦ toutes ses branches ont connues une modélisation mathématique plus cohérente ;
♦ elle a produit des outils (algorithmes, protocoles,...) qui restent encore robustes malgrés
le développement des techniques de cryptanalyse ;
♦ elle prend en charge presque totalement tous les besoins de sécurité dans un schéma de
communication ;

4
♦ son application dans le monde civil a permi le développement de nouveaux métiers ou ser-
commerce électronique, e-banking, consultation de données personelles
vices :
sur internet,...

1.1.1 Terminologie cryptographique

■ La cryptographie utilise des concepts issus de nombreux domaines (Informatique, Mathé-


matiques, Electronique).
■ Toutefois,les techniques évoluent et trouvent aujourd'hui régulièrement racine dans d'autres
branches (Biologie, Physique, etc.)
♦ Cryptologie : Il s'agit d'une science mathématique comportant deux branches : la crypto-
graphie et la cryptanalyse
♦ Cryptographie : c'est une discipline incluant les principes, les moyens et des méthodes de
transformation des données, dans le but :
 de masquer leur contenu (Condentialité),
 d'empêcher leur modication (Intégrité),
 ou leur utilisation illégale (Authentication et Non-Répudiation).
♦ Cryptanalyse : c'est l'étude des faiblesses des outils de sécurité (algorithmes) produits par
la cryptographie dans le but de les corriger ou nuire au système de communication .
♦ Chirement : Le chirement consiste à transformer une donnée (texte, message, ...) an de
la rendre incompréhensible par une personne autre que celui qui a créé le message et celui
qui en est le destinataire.
♦ Déchirement : C'est la fonction permettant de retrouver le texte clair à partir du texte
chiré.
♦ Texte chiré : Appelé également cryptogramme, le texte chiré est le résultat de l'appli-
cation d'un chirement à un texte clair.
♦ Clé : Il s'agit du paramètre impliqué et autorisant des opérations de chirement et/ou
déchirement.
▶ Dans le cas d'un algorithme symétrique, la clef est identique lors des deux opérations.

▶ Dans le cas d'algorithmes asymétriques, elle dière pour les deux opérations.

♦ Cryptosystème : Il est déni comme l'ensemble des clés possibles (espace de clés), des textes
clairs et chirés possibles associés à un algorithme donné.

1.1.2 Modélisation des systèmes de chirement


Un système de cryptographie est composé d'un quintuplet (P, C, Ck , Dk′ , K) où :

5
▶ P est un ensemble appelé espace des textes clairs

▶ C est un ensemble appelé espace des textes chirés

▶ K est un ensemble appelé espace des clés

▶ Ck : P → C est une fonction inversible à gauche appelée fonction de chirement et qui dépend
d'un parametre k appelé clé.

▶ Dk′ : C → P est la fonction inverse à gauche de Ck (i.e Dk′ ◦ Ck (m) = m, ∀m ∈ P ) et est


appelée fonction de déchirement (dépendant de la clé k′ ).
A partir de ce modèle on a deux cryptosystèmes.

1.1.3 Systèmes de cryptographie


Il existe deux systèmes de cryptographie : le système symétrique ou cryptographie à clés secrètes
et le système asymétriqu ou non-symétrique ou cryptographie à clés publiques.

1.1.3.1 Cryptographie à clé secrète


■ Concept :
▶ Les clés de chirement (KE ) et de déchirement (KD ) sont identiques : KE = KD = K .

▶ La clé doit rester secrète.

▶ Les algorithmes les plus répandus sont le DES, AES, 3DES, ...
▶ Au niveau de la génération des clés, elle est choisie aléatoirement dans l'espace des clés ;

▶ Ces algorithmes sont basés sur des opérations de transposition et de substitution des bits du
texte clair en fonction de la clé ;
▶ La taille des clés est souvent de l'ordre de 128 bits. Le DES en utilise 56, mais l'AES peut
aller jusque 256 ;
▶ L'avantage principal de ce mode de chirement est sa rapidité ;
■ Limites :
■ Le principal désavantage réside dans la distribution des clés :

♦ Pour une meilleure sécurité, on préfèrera l'échange manuel.

♦ Malheureusement, pour de grands systèmes, le nombre de clés peut devenir conséquent.

♦ C'est pourquoi on utilisera souvent des échanges sécurisés pour transmettre les clés.

♦ En eet, pour un système à N utilisateurs, il y aura N · (N − 1)/2 paires de clés.

■ Schéma du système symétrique

6
A B

K −→ canal sûr −→ K
↓ ↓
M −→ M' −→ non sûr −→ M' −→ M

1.1.3.2 Cryptographie à clés publiques

■ Concept :
▶ Une clé publique Kpub (pour chirer ou vérier une signature) ;

▶ Une clé privée Kpriv (pour déchirer ou signer) ;

▶ Propriété : La connaissance de Kpub ne permet pas de déduire Kpriv ;

▶ DKpriv (EKpub (M )) = M ;

▶ L'algorithme de cryptographie asymétrique le plus connu est le RSA ;


■ Principe :
▶ Le principe de ce genre d'algorithme est qu'il s'agit d'une fonction unidirectionnelle à trappe.

♦ Une telle fonction a la particularité d'être facile à calculer dans un sens, mais dicile voire
impossible dans le sens inverse.

♦ La seule manière de pouvoir réaliser le calcul inverse est de connaître une trappe. Une
trappe pourrait par exemple être une faille dans le générateur de clés.

♦ Cette faille peut être soit intentionnelle de la part du concepteur (dénition stricte d'une
trappe) ou accidentelle.
■ Problèmes mathématiques :
▶ Les algorithmes se basent sur des concepts mathématiques tels que

 l'exponentiation de grands nombres premiers (RSA) ;

 le problème des logarithmes discrets (ElGamal) ;

 le problème du sac à dos (Merkle-Hellman).

 le problème sur les réseaux arithmétiques (SVP, CVP, etc..) : CRYSTALS-Dilithium,


CRYSTALS-KYBER

▶ La taille des clés s'étend de 1024 bits à 4096 bits en standard.

7
▶ Dans le cas du RSA, une clé de 1024 bits n'est plus sûre, mais est toujours utilisable de
particulier à particulier.

▶ Au niveau des performances, le chirement par voie asymétrique est environ 1000 fois plus
lent que le chirement symétrique.
■ Fonctionnement :
▶ Cependant, à l'inverse du chirement symétrique où le nombre de clés est le problème majeur,
ici, seules n paires sont nécessaires.

▶ En eet, chaque utilisateur possède une paire (Kpub , Kpriv ) et tous les transferts de message
ont lieu avec ces clés.

▶ La distribution des clés est grandement facilitée car l'échange de clés secrètes n'est plus
nécessaire.

▶ Chaque utilisateur conserve sa clé secrète (privée) sans jamais la divulguer. Seule la clé
publique devra être distribuée.

■ Schéma du système asymétrique (non symétrique)

A B

B
Kpub B
Kpriv
↓ ↓
M → M' → canal non sûr → M' → M

1.2 Services de la cryptographie

1.2.1 Schéma de communication

⇒ Un schéma de communication (échange d'informations entre entités distantes) fait


internir :
▶ un expéditeur (personne, machine,...),
▶ un destinataire (personne, machine,...),
▶ un canal de transmission (ligne téléphonique, bre optique, systèmes de commu-
nication sans ls,...)
▶ et un message (information : texte, son, image, vidéo,...).

8
Perturbation

Expéditeur → Canal → Destinatire

Espionnage

1.2.2 Besoins de sécurité lors d'une communication


Quand deux interlocoteurs communiquent plusieurs besoins de sécurité se manifestent. Supposons
que Alice envoie un message à Bob.

▶ Peut-on assurer, même si le message envoyé par Alice est intercepté par un ennemi Charlie,
que sa signication reste cacher ?
Condentialité
▶ Si le message envoyé par Alice est modié en cours de la transmission, est-ce que Bob peut
le détecter ?
Intégrité
▶ Bob, peut-il être sûr d'avoir reçu un message provenant d'Alice ?
Authentication
▶ Alice, peut-elle nier avoir envoyé un message à Bob ?
Non répudiation

1.2.3 Services de sécurité

▶ Condentialité : Propriété qui assure que l'information n'est pas rendue disponible ou
révélée à des personnes, entités ou processus non autorisés.

▶ Intégrité : Propriété qui assure que des données n'ont pas été modiées ou détruites de
façon non autorisée lors de leur traitement, stockage et/ou transmission.

▶ Non répudiation / Signature : Fonction qui permet de garantir qu'aucun des partenaires
d'une transaction ne pourra nier d'y avoir participé.

▶ Authentication : Fonction permettant de prouver l'identité des partenaires (hommes,


machines, réseaux,...) d'une communication ou l'origine des données lors d'un échange ou la
validité d'un object cryptographique ( clé, carte à puce, certicat/signature,...).
■Remarques
▶ L'authentication n'est pas seulement pris en charge par des techniques de cryptographie
et il existe plusieurs variantes et niveaux d'authentications.

9
▶ Dans un schéma de communication, l'authentication est le service le plus usité et peut
être le plus fondamental.
▶ En général, plusieurs types d'authentications sont couplés pour une sécurité
avec plusieurs niveaux (barrières) : on l'appelle
l'authentication forte ou multifacteurs.
▶ Il y'a trois facteurs fondamentaux :
♦ Ce que l'on sait ( mot de passe, phrase secrète, ...)
♦ Ce que l'on a (clé, token usb, carte magnétique, carte à puce,...)
♦ Ce que l'on est (Biométrie : empreintes digitales, voix, scanner rétinien, ADN/Chromosomes,
...)

♦ Ce que l'on sait faire (calculer une opération, lire le contenu d'une image, ...)

1.3 Primitives de la cryptographie


■ Pour réaliser les fonctions et objectifs de sécurité , la cryptographie utilise plusieurs outils de
bases appelés primitives de cryptographie.
■ Mais aussi des compositions plus complexes parfois que sont les protocoles de cryptogra-
phie.
■ Parmi ces primitives ou algorithmes, on peut citer :

♦ Algorithmes (pour le chirement) :


▶ à clé secrète : DES, AES, RC4, etc.
▶ à clé publique : RSA, Mc-Eliece, El Gamal etc.
▶ PQC-Chirement (Réseaux Euclidiens) : CRYSTALS-KYBER
♦ Fonctions de hachage :(pour garantir l'intégrité par la création d'empreinte) MD5,
SHA-1, SHA-2, SHA-3 etc.
♦ Schémas de signatures numériques :(pour la non répudiation) : DSA, ECDSA, PSS-
RSA etc.
♦ PQC-Signature (Réseaux Euclidiens) : CRYSTALS-Dilithium, FALCON, SPHINCS+,
ect...

■ Parmi ces protocoles, on peut citer :

♦ Die-Hellman (pour l'échange de clés).

10
♦ Fiat-Shamir (pour l'identication).

♦ Needham-Schrôder (pour l'authentication mutuelle).

11
1.4 Où applique t-on la cryptographie ?
Internet : condentialité, anonymat, authentication.
S'agit-il bien de ma banque ?

Signature électronique : vériable, authentique, non-répudiation (je n'ai jamais signé ce texte
...)

12
Vote électronique : le résultat reète le vote, chaque vote est condentiel, on ne peut pas
connaître des résultats partiels, seuls les électeurs peuvent voter et une seule fois

Paiement par carte bancaire : est-ce qu'il s'agit d'une vraie carte ? Est-ce que le montant
débité sera égal au montant crédité ? Est-ce que le code secret est bien protégé ?

13
Décodeurs : vérication de l'abonné, impossibilité de retransmettre les données décodées à une
tierce personne, mise à jour de l'abonnement ...

Porte monnaie électronique : pas de création de fausse monnaie, pas de création de faux
porte-monnaie ...

14
Bases de données sécurisées : (ex : carte vitale, seules les personnes habilitées ont accès à
la vue partielle à laquelle elles ont droit, les données peuvent être échangées entre un médecin, un
laboratoire, un hôpital, mise à jour possible des données)

1.5 Notion de cryptanalyse


■ La cryptanalyse a pour principal objet, d'étudier les faiblesses des outils de sécurité produits
par la cryptographie dans le but de les corriger ou nuire au système de communication .

■ Attaquant : Entité [nommée Charlie] suceptible d'agir sur un schéma de communication


dans le but de nuire c'est à dire :

♦ de violer la condentialité des données,

♦ de détourner et de modier des données ou de récupérer des informations,

♦ d'usurper l'identitité de l'un des partenaires de la communication.


■ Types d'attaques
Il y'a deux classes d'attaques :
■ Attaques passives : l'attaquant écoute seulement. Donc, c'est une attaque qui cible la
condentialité.

■ Attaques actives : l'attaquant agit sur le système de commnucation pour :


♦ détourner et modier des données ou récupérer des informations,

♦ usurper l'identitité de l'un des partenaires de la communication.

=⇒ Donc les attaques actives ciblent toutes les fonctions de sécurité : condentialité, intégrité,
authentication-identication et non répudiation.

15
■ Pour celà, l'attaquant cherche généralement à mettre à défaut l'une des primitives de crypto-
graphie.

■ Par exemple :

♦ pour les algorithmes : récupérer les clés de chirement, déchirer les cryptogrammes ou
de casser complètement les algorithmes utilisés ;

♦ pour les protocoles : détourner l'objectif d'un protocole, compromettre le déroulement


d'un protocole ;

♦ pour le hachage : fabriquer de fausses empreintes,


♦ pour les signatures : falsier les signatures.
■ Ces attaques peuvent être dirigées :

♦ sur les modèles mathématiques utilisés pour fabriquer les primitives de cryptographie ;

♦ sur l'implémentation matérielle et/ou logicielle des pritmitives de cryptographie ;

♦ sur les entités propriétaires (légitimes) de données ou d'objets cryptographiques (secrets) ;

♦ sur les acteurs légitimes d'un scénarios de communication ;

♦ sur la gestion (fabrication, distribution, stockage, tests de validité,...) de données ou d'objets


cryptographiques ;

1.5.1 Sécurité d'un chirement


■ Un système de chirement est dit sûr si la probabilité d'obtenir une information
sur le texte clair ou la clé de déchirement à partir du chiré est presque nulle.

■ Celà veut dire que :

♦ toute information qu'on peut tirer du texte clair sera si faible qu'elle ne permettra pas de
violer sa condentialité partielle ou complète ;

♦ ou que toute information qu'on peut extraire de la clé sera si faible qu'elle ne permettra pas
de la reconstituée substantiellement.

1.5.2 Taille des paramètres de sécurité


■ Un PC à 1GHz = 109 Hz eectue 109 opérations élémentaires par seconde.

■ Opérations élémentaires : aectation, instructions de contrôle, calcul binaire,...

16
■ PUISSANCE DE CALCUL DES MACHINES
Temps Nbre operations / 1 PC Nbre operat / 1018 PC
1s 109 ...
1 an 3, 1.10 16 3, 1.1034
1000 ans 3, 1.1019 3, 1.1037
109 ans ... ...
15.10 ans
9 46, 5.10 25 46, 5.1043
■ La vitesse de la lumière est de 300000kms/s = 3 × 108 m/s donc elle traverse une pièce de 3
métres de largeur en un dix milliardième de seconde.

■ Pendant ce temps, un PC à 1GHz peut eectuer 10 opérations élémentaires !.

■ Un PC à 1GHz = 109 Hz eectue 109 opérations ou instructions élémentaires par seconde.

■ Combien de temps faut-il pour qu'il puisse casser une clé de taille m par force brute ?

■ Pour cela la machine doit tester toutes les 2m clés possibles ! On suppose que le PC peut
tester une clé par instruction c'est à dire 109 clés par seconde.

■ Comme 109 = 230 et 1an = 31536000s ∼


= 225 s, alors le PC peut tester 255 clés par an d'où
on a le tableau suivant :
■ SECURITE SUR LA TAILLE DES DONNEES "SECRETES"

taille m Temps pour 1 PC Temps pour 1018 = 260 PCs


56 226 s = 2ans 2−59 s=...
64 234 s = 29 ans = 512ans ... = 2−51 ans
128 298 s = 273 ans 213 ans = 8192ans
256 2226 = 2201 ans 2141 ans ≫ age Univers
1024 ... ...
2048 22018 = ... 21993 = ....

■ NIVEAU DE SECURITE
♦ La taille des clés, des données chirées et des valeurs aléatoires secrètes doivent au moins être
de taille 128
♦ S'il n'y a pas d'autres attaques à prendre en compte en dehors de l'attaque par force brute,
256
il n'y a pas de raison de choisir des des données sensibles de taille supérieur à
■ NB : Avec les ordinateurs quantiques, il faut doubler la taille de la clé.
■ SECURITE DES MOTS DE PASSE
■ Mots de passe de 8 caractères

Alphabet Alphabet et chire Alphanumerique


268 ∼ 238 368 ∼ 242 2568 ∼ 264

17
■ Mots de passe de 22 caractères
Alphabet Alphabet et chire Alphanumerique
2622 ∼ 2104 3622 ∼ 2118 25622 ∼ 2176

■ Ainsi :

♦ Un mot de passe qui protège des données pas trop précieuse doit au moins être de 8 caractères
alphanumériques.

♦ Un mot de passe qui joue le role d'une clé de chirement doit au moins etre de 22 caractères
alphanumériques.

18
Chapitre 2

Cryptographie à clés secrètes

■ Concept
▶ Les clés de chirement (KE ) et de déchirement (KD ) sont identiques : KE = KD = K .

▶ La clé doit rester secrète.

▶ Les algorithmes les plus répandus sont le DES, AES, 3DES, ...
▶ Au niveau de la génération des clés, elle est choisie aléatoirement dans l'espace des clés ;

▶ Ces algorithmes sont basés sur des opérations de transposition et de substitution des bits du
texte clair en fonction de la clé ;
▶ La taille des clés est souvent de l'ordre de 128 bits. Le DES en utilise 56, mais l'AES peut
aller jusque 256 ;
▶ L'avantage principal de ce mode de chirement est sa rapidité ;
■ Le principal désavantage réside dans la distribution des clés :

♦ Pour une meilleure sécurité, on préfèrera l'échange manuel.

♦ Malheureusement, pour de grands systèmes, le nombre de clés peut devenir conséquent.

♦ C'est pourquoi on utilisera souvent des échanges sécurisés pour transmettre les clés.

♦ En eet, pour un système à N utilisateurs, il y aura N · (N − 1)/2 paires de clés.

■ Schéma du système symétrique

A B

K −→ canal sûr −→ K
↓ ↓
M −→ M' −→ non sûr −→ M' −→ M

19
2.1 Chirement par blocs
 On divise le message en blocs de taille xe et on chire chacun séparément (mais pas
forcément indépendamment).
 Un chirement par blocs est une fonction

E : {0, 1}M × {0, 1}N −→ {0, 1}N

(K, x) 7−→ EK (x)

(K = la clé, x = le message ou clair, et EK (x) = chiré) telle que ∀ K la fonction x 7→ EK (x)


soit une permutation.
 Il existe donc une fonction de déchirement

E −1 : {0, 1}M × {0, 1}N −→ {0, 1}N

−1
(K, y) 7−→ EK (y)

avec EK−1
(EK (x)) = x.
 Ici, M = longueur de clé, et N = taille de bloc.
 Exemples typiques : AES a N = 128 et M ∈ {128; 192; 256}.
 EK (x) doit être facile/rapide à calculer si on connaît K (et x), et E .
 Surtout si on ne change pas K entre plusieurs valeurs de x.
 Exemple : ∼ 20 cycles par octet pour chirer du AES à clé xée sur un processeur Intel
moderne en mode 64-bits (soit ∼ 120M o/s sur un processeur à 2, 4GHz , à peu près la
vitesse d'un Ethernet gigabit).
 Si on ne connaît pas K , la fonction EK doit résister à diérentes sortes d'attaques.
 Idéalisation mathématique : E doit se comporter comme si chacune des permutations EK
avait été tirée au hasard une fois pour toutes, indépendamment les unes des autres, parmi
toutes les permutations possibles.
Conception des chirements par blocs
■ Concevoir un chirement qui soit rapide ou sûr est facile.
■ La diculté est d'en concevoir un qui soit rapide et sûr !

1. Combiner des opérations simples (XOR (⊕), addition modulo 2N (⊞), autres opérations
logiques, rotations de bits, permutations d'octets ou de mots, S-box = boîtes de substi-
tution) pour obtenir quelque chose de compliqué.
2. Appliquer plusieurs fois successivement la même fonction simple (fonction de
tour) en utilisant des sous-clés dérivées de la clé K . Chacune de ces applications s'appelle
un tour.

20
3. Rechercher les propriétés suivantes sur la fonction de tour (Shannon) :
 diusion = propagation rapide de l'information des bits du clair ou de la clé vers les bits
du chiré ;
 confusion = absence de relations simples entre les bits du clair ou de la clé et du chiré.

2.2 Modes Opératoires


2.2.1 Modes opératoires : ECB
 Problème : on veut chirer un message de longueur > N , arbitrairement grande.
 Idée la plus évidente : "electronic codebook mode" (ECB) : découper le message en
blocs de longueur N , chirer chacun indépendamment.

 Avantages : simple, parallélisable, possibilité d'accès aléatoire aux données déchirées, pas
de propagation des erreurs.
 Inconvénients : les motifs répétés du clair sont apparents ;
pas de garantie d'intégrité : un attaquant pourrait facilement modier l'ordre des blocs,
ou en répéter.

2.2.2 Modes opératoires : CBC


"Cipher block chaining mode" (CBC) : faire le XOR de chaque bloc de clair avec le bloc
chiré précédent : yi = EK (xi ⊕ yi−1 ).

IV (pour "initialization vector") est une valeur qui n'est pas secrète dont le rôle est d'éviter
que le chirement de deux clairs identiques soit identique.
 CBC est le mode le plus utilisé (mais de moins en moins).
 Propriétés : les motifs du clair n'apparaissent pas dans le chiré, une erreur de transmission
du chiré aecte deux blocs du message déchiré.

21
 Pas de garantie d'intégrité, mais un attaquant peut plus dicilement en tirer avantage.
 Le chirement ne peut se faire que séquentiellement, mais le déchirement peut se faire par
accès aléatoire.

2.2.3 Modes opératoires : CFB


"Cipher feedback mode" (CFB) : on fait un XOR de chaque bloc d'entrée avec le chiré de
la sortie précédente : yi = xi ⊕ EK (yi−1 )

Peu de diérence avec CBC si utilisé sur des blocs entiers.


Remarque : Le déchirement se fait simplement avec la fonction EK .

2.2.4 Modes opératoires : compteur (CRT)


"Counter mode" (CTR) : on fait un XOR de chaque bloc d'entrée avec une valeur qui est le
chiré d'un simple compteur : yi = xi ⊕ zi où zi = EK (i).

Autrement dit, les EK (i) sont utilisés comme un masque jetable (one-time pad).
Le déchirement se fait avec la fonction EK .

1. Avantages : simple, parallélisable, possibilité d'accès aléatoire aux données déchirées, pas
de propagation des erreurs.

22
2. Inconvénients : il faut prendre garde à ne pas réutiliser la clé : chaque message doit être chif-
fré avec une clé diérente, ou bien (plus courant) les bits supérieurs du compteur doivent être
initialisés avec un numéro unique (=nonce) pour chaque message, dont le rôle est semblable
au vecteur d'initialisation.

2.3 Chirement par ux (par ot)


 On cherche normalement à aller très vite !
 Typiquement : génération d'un ot de bits ("keystream") à partir de la clé (+ un éventuel
nonce), qui est ensuite utilisé comme masque à usage unique (i.e., XOR avec le clair).
 Le mode compteur des chirements par blocs peut donc être considéré comme un chirement
par ot.
 Possible problème de désynchronisation entre source et destination.
 Il existe des mécanismes d'auto-synchronisation permettant d'éviter ce problème. Se confe-
rer le mode CFB des chirements par blocs.
 Élément fréquent de conception : les LFSR (Linear Feedback Shift Register) = le de
bits de longueur xée, dont on extrait les bits à un bout en complétant à l'autre bout par le
XOR entre des bits à emplacements xes dans la le.
Conception des chirements par blocs (suite)

Chirement souvent en deux étapes

1. cadencement de clé (= "key schedule") : générer les sous-clés (ou clés de tour) K1 , · · ·, Kr
à partir de la clé K ;
2. chirement proprement dit, en r étapes (r = nombre de tours), typiquement, x0 = x et
xi+1 = F (Ki+1 ; xi ), donnant la sortie y = xr après r étapes, où F est la fonction de tour
(doit être inversible).

▶ Le cadencement de clé est parfois très long (exemple : Blowsh).


▶ Cela peut être un avantage.
▶ Nombre de tours très variable selon le chirement et la complexité de F .
Réseaux de Feistel
Méthode simple pour éviter d'avoir à concevoir une fonction de tour automatiquement inversible.
 Diviser le bloc xi de taille N en deux blocs de taille 2,
N
i , et appliquer
soit xi = xLi ∥xR

xL R
i+1 = xi

xR L R
i+1 = xi ⊕ f (Ki+1 , xi )

23
 Après la dernière étape, par convention, on refait l'échange des deux parties :

y L = xR L R
r = xr−1 ⊕ f (Kr , xr−1 )

y R = xL R
r = xr−1

Avec cette convention, le chirement s'inverse en inversant simplement l'ordre des


sous-clés K1 , · · ·, Kr .

2.4 Schémas symétriques : DES et AES


2.4.1 Data Encryption Standard (DES)
Le chirement DES : Data Encryption Standard
Standard NIST/FIPS publié en 1977, résultat d'un travail par IBM, avec des conseils de la
NSA (agence des services secrets américains).
 Réseau de Feistel : prévu pour une implémentation en matériel ;
 Taille de clé = 56 bits (" +8 bits de parité ", ce qui ne veut rien dire) ;
 Sous-clés de 48 bits (cadencement trivial : ce sont des sous-ensembles des 56 bits de la clé) ;
 Taille de bloc = 64 bits (= deux demi-blocs de 32 bits) ;
 Utilise 8 "boites S " ("S − boxes") 6 → 4 xées une fois pour toutes, c'est-à-dire 8 fonctions
prenant 6 bits en entrée (64 valeurs d'entrée possible) et renvoyant un nombre de 4 bits (16
valeurs de sortie possible). Données par un tableau 8 × 64. La conception de ces boîtes S
n'était pas expliquée à l'époque ;

24
 Intérêt historique + valeur de référence. A ne pas utiliser actuellement !
Le chirement DES : fonction de Feistel

exp = expansion (duplique certains bits)


8 × S = les 8 boîtes S (apportent la confusion)
P = permutation des bits (assure la diusion)
Le chirement DES : sécurité
 Cassé par force brute en 1998 (machine dédiée à l'énumération exhaustive des 256 clés
possibles) ;
 Résistant à la cryptanalyse diérentielle, (Biham et Shamir, 1990) : connue en fait
d'IBM et de la NSA, mais gardée secrète ;
 Non résistant à la cryptanalyse linéaire, (Matsui, 1993) : attaque légèrement plus
ecace qu'une attaque par force brute, mais réalisée seulement plus tard ;
 De nos jours, DES ne peut plus du tout être considéré comme sûr.
 On peut le rendre sûr en utilisant triple-DES (3DES) avec deux clés de 56 bits : y =
EK1 (EK−1
2
(EK1 (x))) où EK désigne DES.
 Ceci fournit 112 bits de clé (K1 ∥K2 ), mais très lent !

2.4.2 Advancing Encryption Standard (AES)


Le remplaçant de DES : AES
 Concours pour remplacer DES comme standard, lancé en 1997. Processus de sélection
très ouvert. Cinq nalistes (Rijndael, Serpent, Twosh, RC6 et MARS).
 En 2000, Rijndael est choisi pour devenir AES. Standard publié en 2001 ;
 Taille de clé = 128, 192 ou 256 bits (des variantes sous le nom de Rijndael autorisent 160
ou 224 bits de clé) ;
 Taille de bloc = 128 bits (des variantes sous le nom de Rijndael autorisent 160, 192, 224 ou 256
bits) ;

25
 Nombre de tour = 10 à 14, selon la taille de clé (et la taille de bloc) ;
 Travaille sur des octets (pas de permutation de bits) ;
 Unique boîte S , dont la conception est justiée ;
 Plus rapide que DES ;
 Pas d'attaque connue plus rapide que par force brute, jusqu'à 2011 : gain d'un facteur
∼ 4.
Le corps d'AES
AES utilise deux opérations sur les octets : ⊕ est le ou exclusif (bit-à-bit), et ⊛ dénie comme
suit :

Dénition mathématique

Si
A = a7 · 27 + · · · + a1 · 2 + a0

et
B = b7 · 27 + · · · + b1 · 2 + b0

sont deux octets, alors :

A ⊛ B = c7 · 27 + · · · + c1 · 2 + c0

où le polynôme c7 X 7 + · · · + c1 X + c0 est le reste de la division euclidienne du polynôme (a7 X 7 +


· · · + a0 ) × (b7 X 7 + · · · + b0 ) par le polynôme X 8 + X 4 + X 3 + X + 1, sur le corps à deux éléments
F2 = {0, 1} (où l'addition est modulo 2).
En plus condensé : F256 = F2 [X] = (X8 + X4 + X3 + X + 1).
Le nombre 0x1b est 24 + 23 + 2 + 1.
Muni de ces deux opérations de "ou exclusif " (⊕) et "multiplication de polynômes
modulo X 8 + X 4 + X 3 + X + 1" (⊛) :
 L'ensemble F256 des octets est un corps à 256 éléments de caractéristique 2, c'est-à-dire que :
⊕ est associative et commutative, x ⊕ 0 = x, x ⊕ x = 0, ⊛ est distributive sur ⊕ et est
associative et commutative, x ⊛ 1 = x, et pour tout x ̸= 0 il existe x′ tel que x ⊛ x′ = 1 ;
 2 ⊛ x vaut soit 2x (si x < 128) soit 2x ⊕ 0x1b (x ≥ 128) ;
 3 ⊛ x = (2 ⊛ x) ⊕ x (par distributivité) ;
 2i ⊛ x = 2 ⊛ (2 ⊛ (· · ·(2 ⊛ x) · ··)) ;
 2 ⊛ 0x8d = 1 (i.e., 0x8d = 141 est l'inverse de 2).
Il existait d'autres choix possibles de polynômes à la place de X 8 + X 4 + X 3 + X + 1 (précisément
30 choix possibles).
Tous auraient donné un objet F256 abstraitement identique ("isomorphe"), mais codé diérem-
ment sur les octets.
"États" d'AES

26
Un bloc AES est vu comme un tableau de 4 (lignes) ×4 (colonnes) d'octets, soit 16 octets =
128 bits, appelé état :

On dénit 4 opérations sur cet "état" :

1. AddRoundKey (ajout d'une sous-clé par ⊕) ;


2. SubBytes (application boîte S ) ;
3. ShiftRows (décalage des lignes) ;
4. MixColumns (transformation linéaire des colonnes).

Schéma général d'AES

La diusion dans AES


 ShiftRows : applique un déclage cyclique des lignes de l'état de 0, 1, 2 et 3 cases vers la
gauche : xi,j ← xi,(j+i) %4 ;

27
 MixColumns : applique une transformation linéaire sur F256 de chaque colonne séparément :
 xi,0 ← 2 ⊛ xi,0 ⊕ 3 ⊛ xi,1 ⊕ xi,2 ⊕ xi,3 , ;



 x ←x ⊕2⊛x ⊕3⊛x ⊕x , ;

i,1 i,0 i,1 i,2 i,3

 xi,1 ← xi,0 ⊕ xi,1 ⊕ 2 ⊛ xi,2 ⊕ 3 ⊛ xi,3 , ;




 xi,3 ← 3 ⊛ xi,0 ⊕ xi,1 ⊕ xi,2 ⊕ 2 ⊛ xi,3 , .

Ensemble, ces deux opérations apportent la diusion.


La boîte S de AES
Chaque octet de l'état indépendamment : xi,j ← S[xi,j ]. Cette boîte S est indépendante aussi
bien des clés que des entrées, et toujours la même.
La boîte S est dénie comme la composée de deux fonctions sur les octets :
 La fonction "inverse" x 7→ x−1 , 0 7→ 0 dans F256 (il se trouve que c'est aussi x 7→ x254 ).
Son rôle est de maximiser la confusion ;
 Une fonction ane sur l'octet vu comme (F2 )8 (chaque bit est remplacé par le ou exclusif
de cinq autres bits et d'un bit constant). Le rôle de cette fonction ane est de "casser"
la structure trop algébrique de F256 tout en préservant les propriétés de confusion de
la boîte S .

2.5 Fonctions de hachage


■ Une fonction de hachage est une fonction publique H : {0, 1}∗ → {0, 1}n telle que :

♦ H transforme un message (binaire) de longueur quelconque en un message de longueur


xe ; (Fonction de Compression)
♦ pour tout x, H(x) est facile à calculer ; (Facilement calculable)
■ Les images H(x) sont appelées hache ou empreinte .

■ Pour résumer on retiendra que :

♦ Une fonction de hachage en cryptographie est une fonction publique à sens


unique sans trappe (donc facile à calculer et dicile à inverser pour tout le monde)
h : P → H, qui transforme un message de longueur quelconque en un message
de longueur xe.
♦ De plus la probabilité, pour qu'il y ait une collusion doit être faible [ c'est-à-dire
il doit être dicle de trouver x ̸= x′ tels que h(x) = h(x′ )] ;

28
▶ On les utilise en cryptographie pour :

♦ fournir un condensé de taille xe ;

♦ représenter précisément les données : la détection des changements dans le message est
simpliée.

▶ L'intérêt est que cela permet l'usage de la cryptographie asymétrique sans engendrer trop de
ralentissement, mais également d'assurer la provenance d'un chier ainsi que son intégrité.

▶ Dans la majorité des cas, elles seront utilisées pour créer une signature numérique.

▶ Enn, la qualité principale de ces fonctions est que les algorithmes sont publics.

▶ On parle de "haché", de "résumé", ou de "condensé" pour nommer la caractéristique d'un


texte ou de données uniques.

▶ La probabilité d'avoir deux messages avec le même haché doit être extrêmement faible.

▶ Le haché ne contient pas assez d'informations en lui-même pour permettre la reconstitution


du texte original.

▶ L'objectif est d'être représentatif d'une donnée particulière et bien dénie (en l'occurrence le
message).
■ Propriétés
■ Les fonctions de hachage possèdent de nombreuses propriétés :
▶ Elles peuvent s'appliquer à n'importe quelle longueur de message M .

▶ Elles produisent un résultat de longueur constante.


▶ Il doit être facile de calculer h = H(M ) pour n'importe quel message M .

▶ Résistance à la pré-image : Pour un h donné, il est impossible de trouver x tel que


H(x) = h. On parle de propriété à sens unique.

▶ Résistance à la seconde pré-image : Pour un x donné, il est impossible de trouver y tel


que H(y) = H(x) =⇒ résistance faible de collision.

▶ Résistance aux collisions : Il est impossible de trouver x, y tels que H(y) = H(x) =⇒
résistance forte de collision.
■ Fonctions de hachage : Intégrité

▶ Si M est un message alors pour garantir l'intégrité de M , on envoie ou stocke le couple


(M, H(M )) où H(M ) est l'empreinte de M via une fonction de hachage H .

29
▶ Le message est considéré intègre s'il est bien accompagné par son empreinte qu'on ne peut
falsier.

▶ Les fonctions de hachage sont utilisées pour :

♦ l'intégrité

♦ construire des générateurs aléatoires cryptographiquement sûrs ;

♦ pour la modélisation théorique des fonctions à sens unique tel que le modèle de l'oracle
aléatoire.
■ Fonction de hachage : Algorithmes
■ Les fonctions de hachages comptent deux familles

♦ celles utilisant des clés :


▶▶ MAC (Message Authencation Code)
♦ celles n'utilisant pas de clés

 MD (Message Digest) : Elle comprend le MD2, MD4, MD5 et MD6 ; la taille des hachés
est 128 bits. Cependant des collisions ont été trouvées contre le MD5 en 2002 ce qui fait
qu'il n'est plus recommandé.
▶▶ MD4, Rivest, 1990 ;

▶▶ MD5, Rivest, 1992, empreinte sur 128 bits, RFC 1321

▶▶ MD6 faisait partie des fonctions de hachage candidates pour le concours SHA-3,
destiné à trouver une remplaçante à SHA-2, de plus en plus fragile.
 SHA (Secure Hash Algorithm) : Cette famille parrainée par le NIST(National Institute
of Standards and Technology), comprend :
▶▶ SHA-1 : publiée en 1995, taille des hachés : 160 bits, elle est aujourd'hui considérée
non sûre contre les recherches de collisions.
▶▶ SHA-2 : publiée en 2002, inspirée de SHA-1, elle a quatre variantes : SHA-224, SHA-
256, SHA-384 et SHA-512. A ce jour aucune attaque réussie contre SHA-2 n'est connue
même si le fait qu'il soit inspiré du SHA-1 soit un facteur de risque.
▶▶ SHA-3 : publiée en août 2015, elle s'appelle originellement Keccak et repose sur
un principe complètement diérent des fonctions précédentes MD5,SHA-1 et SHA-2. Elle
possède des variantes produisant des hachés de tailles de 224, 256, 384 et 512 bits. Ses
atouts sont une bonne ecacité et une bonne résistance.
 RIPEMD, 160

30
Chapitre 3

La cryptographie à clé publique

3.1 Concept des systèmes non symétriques


▶ Dans le cas des systèmes symétriques, on utilise une même clé pour le chirement et le
déchirement.

▶ Le problème repose dans la transmission de la clé : il faut une clé par destinataire.

▶ Dans le cas des systèmes asymétriques, chaque personne possède 2 clés distinctes (une privée,
une publique) avec impossibilité de déduire la clé privée à partir de la clé publique.

▶ De ce fait, il est possible de distribuer librement cette dernière.

■ On peut classer l'utilisation des algorithmes à clé publique en 3 catégories :

▶ Chirement/déchirement : cela fournit le secret.


▶ Signatures numériques : cela fournit l'authentication.
▶ Échange de clés (ou des clefs de session).
■ Quelques algorithmes conviennent pour tous les usages, d'autres sont spéciques à un d'eux.

■ La sécurité de tels systèmes repose sur des problèmes calculatoires :

▶ RSA : factorisation de grands entiers.


▶ ElGamal : logarithme discret.
▶ Merkle-Hellman : problème du sac à dos (knapsacks).
▶ CRYSTALS-KYBER, CRYSTALS-Dilithium, NTRU : problème sur les réseaux arith-
métiques (SVP, CVP).

■ La recherche des clés par force brute est toujours théoriquement possible mais les clefs utilisées
sont trop grandes (> 1024 bits).

31
■ La sécurité se fonde sur une assez grande diérence en termes de diculté entre les problèmes
faciles (déchirement) et diciles (décryptement) :

▶ généralement le problème dicile est connu, mais il est trop complexe à résoudre en pratique.

▶ La génération des clés exige l'utilisation de très grands nombres.

■ En conséquence, ce type de chirement est lent si on le compare aux chirements symétriques.

3.2 Limites des systèmes asymétriques


▶ Pour les systèmes à clé publique, le problème du canal sûr de communication ne se pose pas,
mais néanmoins deux autres problèmes sont soulevés.
♦ Condentialité de la clé privée (gardée sur un ordinateur ou une clé USB appelée
Token) ;
♦ Intégrité de la clé publique (publiée dans ce qu'on appel un annuaire) ;
▶ Pour garantir l'intégrité de la clé publique de Bob, les diérentes parties en communi-
cation conviennent de s'en référer à un Tiers de Conance appelé Autorité de Conance
(AC) qui, si elle est sollicitée peut garantir si une clé donnée appartient bien à Bob et si elle
n'est pas compromise.
▶ L'utilisation des systèmes à clé publique :

♦ à grande échelle, nécessite des systèmes complexes appelés PKI (Public Key Infrastruc-
ture).
♦ à petite échelle, nécessite une chaine de conance à défaut d'un PKI : c'est le cas de
l'Utilisation de Gnu-PG (voir TP) pour le chirement des mails sur internet

▶ Les algorithmes à clé publique utilisent des fonctions à sens unique dont la sécurité repose
sur l'existence de problèmes diciles comme la factorisation.

▶ Tous les algorithmes qui résolvent ces problèmes diciles sont au moins sous-exponentiels
et on montre que les puissances de calculs actuels et les attaques connues imposent de choi-
sir des tailles de clés de plus de 1000 bits (Par exemple le module RSA est à 2048 bits
actuellement).

▶ L'utilisation de nombres très grands par les algorithmes à clés publiques ainsi que d'opérations
couteuses comme l'exponentiation font ques ces derniers ne sont pas adaptés au chirement
de données de grande taille.

▶ Ainsi les algorithmes à clé publique sont essentiellement utilisés :

32
♦ pour chirer des clés symétriques qui à leur tour seront utilisées pour chirer les
données pour la condentialité (système hybride : voir point suivant) ;

♦ pour signer des messages pour garantir la non répudiation ;

♦ pour construire des protocoles (authentication, identication, partage de se-


crets,...) ;

3.3 Schéma hybride


▶ Si Alice veut envoyer un message chiré à Bob, elle génère une clé secrète Ksec et l'utilise
pour chirer le message clair M en M ′ puis chire la clé Ksec en Ksec′ en utilisant la clé
publique de Bob KP ub . Enn elle envoie le couple (M , Ksec ) à Bob à travers un canal non
B ′ ′

nécessairement sûr.

▶ A l'arrivée, Bob déchire Ksec


′ en Ksec en utilisant sa clé privée KPBr , puis déchire M ′ en M
en utilisant Ksec

■ Schéma d'un système hybride


A B

KPBub KPBr
↓ ↓
7→ ′
Ksec 7→ ′
Ksec 7→
Ksec Ksec
↓ ↓
M → M' → non sûr → M' → M

3.4 Signature numérique


▶ Nous avons jusqu'ici regardé l'authentication de messages.

▶ Mais nous n'avons pas abordé les questions de manque de conance.

▶ En eet, l'authentication des messages protège les deux entités communicantes d'un intrus.

▶ Cependant, cela ne les protège en rien l'un de l'autre.

▶ En cas de conit, rien n'empêche la répudiation du ou des messages.


▶ Deux exemples illustrent ce principe :

♦ L'entité A pourrait forger un message donné et dire qu'il vient de B . Il lui sut pour cela
de créer un message et lui appliquer un MAC en utilisant la clé qu'ils ont en commun.

33
♦ Le cas inverse peut également exister. B peut nier le fait d'avoir envoyé un message, pour
la simple raison que la construction expliquée au point précédent est possible.

♦ Il est donc impossible de prouver qu'un tel message a été ou non envoyé par B plutôt que
par A.

▶ C'est ici qu'interviennent les signatures numériques.


▶ Elles permettent notamment :

♦ de vérier l'auteur ;

♦ la date et l'heure de la signature ;

♦ d'authentier le contenu d'un message ;

♦ et peuvent être vériées par des tiers pour résoudre des conits.
■ Signature numérique : Dénition et Propriétés
▶ Une signature (digitale-manuelle ou numérique-cryptographique) est un procédé, qui, appli-
qué à un message, garantit la non répudiation par le signataire et donc réalise les deux
objectifs suivants :

1. identication unique du signataire,

2. et preuve d'accord sur le contenu du document.

▶ Elle doit posséder les propriétés suivantes :

1. unique : dépendre du message signé ( employer une information unique propre à l'expé-
diteur pour empêcher la contrefaçon et le démenti ).

2. impossible à usurper : c'est à dire être mathématiquement infaisable à forger (par construc-
tion de nouveaux messages pour une signature numérique existante, ou par construction
d'une signature numérique frauduleuse pour un message donné).

3. impossible à répudier par son auteur.

4. facile à vérier (reconnaitre) par un tiers.

5. être relativement facile à générer (produire) et à stocker. .

■ Signature numérique : Schéma

34
■ Signature numérique et Signature manuelle
■ On a vu les 5 points communs entre les signatires manuelle et numérique dans la première
dénition. Ici on regarde les diérences.
■ Signature manuelle
1. Associé physiquement au document signé ;
2. Identique pour tous les documents venant d'un même signataire ;
3. Habituellement à la dernière page.

■ Signature numérique
1. Peut être stockée et envoyée indépendamment du document signé ;
2. Fonction du document même si le signataire signe avec la même clé privée
3. Couvre l'entièreté du document (dépend de tout le message)

■ Signature numérique : Modélisation (première version)


Un système de signature est composé d'un quintuplet (P, S, Sk′ , Vk , K) où :

1. P est un ensemble appelé espace des textes clairs ;

2. S est un ensemble appelé espace des signatures ;

3. Sk′ : P → S est une fonction injective dite fonction de signature (non nécessairement bijec-
tive) qui dépend d'un paramètre k′ appelé clé privée.

35
4. Vk : PxS → {vrai, f aux} est la fonction de vérication de signature binaire telle que
Vk (m, s) = vrai si et seulement si Sk′ (m) = s (dépendant de la clé publique k ) .

5. K l'ensemble des paramètres utilisés est l'espace des clés.

■ Signature numérique : Problème d'intégrité


■ La signature, telle que présentée jusqu'à présent, ne garantit pas l'intégrité (qu'elle
soit manuelle ou numérique).

▶ Dans le cas manuelle c'est l'observation et l'analyse du document qui permet de croire ou de
s'assurer que le texte n'a pas été modié.

▶ Dans le cas numérique ; Pour résoudre ce problème :


♦ Le massagge esthaché avant d'être signé pour garantir l'intégrité.

♦ La fonction de hachage ne doit pas être homomorphique.


■ Signature numérique : Dénition
■ Données ajoutées à une unité de données ou transformation cryptographie d'une unité de
données, permettant à un destinataire devérier la source et l'intégrité de l'unité de
données, garantissant la non répudiation et protégeant contre la contrefaçon.

■ Une signature numérique doit fournir les services :


▶ d'authentication (de l'origine des données) ;

▶ de leur intégrité ;

▶ et de non répudiation (pour le signataire).


■ Signature numérique : Modélisation (deuxième version)
Un système de signature avec appendice est composé d'un 6-tuplet (P, H, S, Sk′ , Vk , K) où :

1. P est un ensemble appelé espace des textes clairs ;

2. S est un ensemble appelé espace des signatures ;

3. h : P → H une fonction de hachage ;

4. Sk′ : H → S est une fonction injective dite fonction de signature (non nécessairement bijec-
tive) qui dépend d'un paramètre k′ appelé clé privée ;

5. Vk : PxS → {vrai, f aux} est la fonction de vérication de signature binaire telle que
Vk (m, s) = vrai si et seulement si Sk′ h(m) = s (dépendant de la clé publique k ) ;


6. K l'ensemble des paramétres utilisés est l'espace des clés.

36
3.5 Die-Hellman, RSA et ElGamal
3.5.1 Protocole d'échange de clés Die-Hellman

▶ L'inconvénient majeur des systèmes à clés publiques est qu'ils sont beaucoup plus lents que
les systèmes à clé secrète.
▶ Par exemple, RSA utilisé avec un nombre premier de 512 bits (on dit RSA-512) chire 600 Ko
par seconde, c'est 1500 fois plus lent que l'implémentation la plus rapide de DES qui permet
de chirer 1 Go par seconde.
▶ Donc en pratique on utilise souvent les systèmes à clé publique pour se transmettre une clé
secrète qu'on utilise ensuite pour chirer les messages.
▶ Historiquement, la naissance de la cryptologie à clé publique remonte à l'invention d'une
méthode permettant à deux personnes distantes de se mettre d'accord sur un nombre (appelé
à devenir une clé secrète) sans que quiconque écoutant l'intégralité de la discussion ne puisse
calculer ce nombre.
▶ Die et Hellmann ont proposé une méthode pour y parvenir, et ceci en 1976.
▶ Problème : Alice et Bob veulent générer un secret commun (aléatoire ).
▶ Ils disposent d'un canal de communication sur lequel Eve peut écouter mais ne peut rien
altérer.

1. Alice et Bob xent publiquement un n premier et un entier g primitif modulo n (i.e., g


engendre (Z/nZ)× ).

2. Alice choisit a aléatoire entre 0 et n − 2, le garde secret, et calcule


A = g a ( mod n), qu'elle envoie à Bob.

3. Bob choisit b aléatoire entre 0 et n − 2, le garde secret, et calcule


B = g b ( mod n), qu'il envoie à Alice.

4. Alice calcule B a = g ab . Bob calcule Ab = g ab . Ce nombre commun (modulo n) est leur


secret commun.

37
5. Eve connaît A = ga et B = g b en écoutant la communication et g qui est public, mais ne
parvient pas à calculer a, b ou bien g ab .

3.5.2 Rivest Shamir Adleman (RSA)

■ RSA : Présentation
▶ Du nom de ses inventeurs (Rivest, Shamir et Adleman), RSA est le premier algorithme à clé
publique inventé en 1978.

▶ Le système RSA repose sur la diculté de factoriser de grands nombres premiers.

▶ Pour assurer la sécurité les nombres premiers choisis doivent être susamment grands.
■ RSA : Génération des clés

▶ Choisir deux entiers premiers p et q assez grands ;

▶ Calculer le modulo n = pq .

▶ Calculer l'indicateur d'Euler φ(n) = (p − 1)(q − 1). φ(n) est le nombre d'éléments inversibles
du groupe ( nZ
Z ∗
) ;

▶ Choisir un entier e tel qu'il soit plus petit que φ(n) et pgcd(e, φ(n)) = 1 ;

▶ Calculer l'entier d tel que ed = 1 mod φ(n) (avec l'algorithme étendu d'Euclide).

▶ Clé publique (e, n) : (généralement e = 216 + 1 est xe) ;

▶ Clé privée (d, n).

■ p, q et φ(n) doivent rester secret.


■ RSA : Chirement
▶ Soit M ∈ Z
nZ le message à chierer ;

▶ Prendre la clé publique (e, n) ;

▶ Calculer le chiré C = M e mod n

38
■ RSA : Déchirement

▶ Soit le chiré C ∈ Z
nZ reçu ;

▶ Prendre la clé publique d ;

▶ Calculer le déchiré M ′ = C d mod n


■ RSA : Signature

▶ Soit M ∈ Z
nZ le message à signer ;

▶ Prendre la clé privée d ;

▶ Calculer la signature S = M d mod n


■ RSA : Vérication

▶ Soit S ∈ Z
nZ la signature du message M reçue ;

▶ Prendre la clé publique (e, n) ;

▶ Calculer M ′ = S e mod n puis comparer M ′ et M .

▶ La signature est valide s'il y a égalité.


■ RSA : Forces
On peut citer entre autres
▶ Chirement et signature en même temps ;

▶ Simplicité et ecience ;

▶ Capacité d'adaptation : toutes les attaques connues jusqu'ici ont pu être contournées :

♦ soit en utilisant OAEP pour le chirement et PSS pour la signature pour les rendre
probabilistes ;

♦ soit en modiant la taille des paramètres : n, p, q , e et d ;


Récemment il a été prouvé qu'un nouveau algorithme Post-Quantum RSA peut résister à
l'ordinateur quantique.
■ RSA : Faiblesses
On peut citer entre autres
▶ Son déterminisme (cause de beaucoup de vulnérabilités) ;

▶ Son algorithme de génération de clés :ed = 1 mod φ(n) ;

▶ Ressemblance des fonctions de déchirement et signature ;

39
▶ La lenteur des opérations de déchirement et de signature ;

▶ La diculté qu'on a à traiter RSA sur diérents groupes nis ;

▶ Sa propriété d'homomorphie ;

3.5.3 Le schéma d'El Gamal

■ ELGAMAL : Présentation
▶ Le chirement d'El Gamal est un système de cryptage à clé publique inventé en 1984 par
l'égyptien Taher ElGamal et utilisé pour chirer mais aussi pour signer des messages.

▶ Ce système est assez peu utilisé en tant qu'algorithme de chirement pur, mais plutôt dans
les systèmes de signatures ;

▶ Il est d'ailleurs à l'origine du DSS (Digital Signature Standard), devenu une norme fédérale
en 1994.

▶ Ce chirement tire son nom, comme RSA, du nom de son créateur.


■ ELGAMAL : Génération des clés
▶ Choisir un nombre premier très grand p ;

▶ Choisir g un générateur de ( pZ ) d'ordre n = p − 1 ;


Z ∗

▶ Choisir un entier aléatoire a dans [2, n] ;

▶ Calculer h = g a mod p ;

▶ La clé publique est (g, h, p) ;

▶ La clé privée est a.


■ ELGAMAL : Chirement
▶ Soit m le message clair ;

40
▶ Choisir un nombre aléatoire k assez grand ;

▶ Prendre la clé publique est (g, h, p) ;

▶ Pour chirer le message, calculer :

♦ m1 = g k mod p ;

♦ m2 = m.hk mod p.

▶ Le chiré est c = (m1 , m2 ).


■ ELGAMAL : Déchirement
▶ Soit le chiré c = (m1 , m2 ) ;

▶ Prendre la clé privée a ;

▶ Calculer m′ = mp−1−a
1 · m2 = g −ka · g ka · m = m.
■ ELGAMAL : Signature
Pour signer un message
▶ Alice souhaite signer un document M ;

▶ Elle choisit au hasard un entier k ∈ [1, p − 2] ; tel que pgcd(k, p − 1) = 1 ⇐⇒ k −1 ∈ ZP −1


existe ;

▶ Signature de M : s(M ) = (r, s) avec

♦ r = g k mod p ;

♦ s = k −1 (M − a.r) mod (p − 1) ;

▶ Le document signé est alors [M, s(M )].


■ ELGAMAL : Vérication
La signature est dite valide si
▶ 0 < r < p;

▶ hr rs ≡ g M ( mod p)
■ ELGAMAL : Forces
▶ La force du chirement d'El Gamal est son usage d'un problème mathématique connu comme
dicile à résoudre, celui du logarithme discret.

▶ En eet, le calcul d'un logarithme modulo n est possible mais plus n est grand et plus le
calcul sera long, pouvant atteindre plusieurs milliers d'années.

▶ On dénit le chirement dans le corps ni Zp , avec p un nombre premier.

41
▶ Le groupe Z∗p est cyclique et on appelle ses générateurs racines primitives modulo p.
■ ELGAMAL : Faiblesses
▶ Du nom de son créateur, c'est un autre algorithme basé sur le protocole Die Helmann qu'on
retrouve notamment dans les dernières versions de PGP ;

▶ Algorithme qui n'est pas sous brevet.

▶ A noter que le message chiré est deux fois plus long que le message d'origine : ce qui peut
engendrer quelques complications en terme de stockage ou de communication.

▶ Certaines implémentations d'ElGamal génèrent parfois des risques quant à l'exposition pos-
sible de la clé privée.

▶ Le problème du logarithme discret (DLP) est cassé par les ordinateurs quantiques.

3.6 Cryptanalyse de RSA


3.6.1 Cryptanalyse de RSA connaissant φ(N )
■ Proposition
RSA. Si on connait φ(N ), alors on peut factoriser N .
Soit N un module
■ Démonstration
Supposons que φ(N ) est connu. Ainsi, on dispose d'un système de deux équations en p et q :
(
pp = N
p + q = N + 1 − φ(N ),

qui donnent l'équation en p : p2 − (N + 1 − φ(N ))p + N = 0

On obtient ainsi
p
N + 1 − φ(N ) + (N + 1 − φ(N ))2 − 4N
p=
2

p
N + 1 − φ(N ) − (N + 1 − φ(N ))2 − 4N
q=
2

3.6.2 Utilisation du même module et deux exposants diérents


■ Proposition
Soit N un module RSA. Soient e1 et e2 deux exposants premiers entre eux. Si un message clair
M est chiré avec e1 et e2 , alors on peut calculer M .

42
■ Démonstration
Soient C1 et C2 deux messages chirés par

C1 ≡ M e1 mod N,
C2 = M e2 mod N,

et supposons que C1 et C2 sont rendus publiques.


1
Si pgcd(e1 , e2 ) = 1, alors il existe deux entiers x1 et x2 tels que xi < ei et vériant e1 x1 −e2 x2 =
2
±1.

Ces deux entiers peuvent être déterminer par l'algorithme d'Euclide.


D'autre part, ils vérient

e1 x2 |e1 x1 − e2 x2 | 1 1
− = = < 2
e2 x1 x1 e 2 x1 e 2 2x1

Ainsi x1 et x2 peuvent être déterminés comme dénominateur et numérateur de l'une des conver-
e
gentes de 1 . Si e1 x1 − e2 x2 = 1, on obtient alors
e2

C1x1 C2−x2 = M e1 x1 M −e2 x2 = M e1 x1 −e2 x2 = M mod N ,

ce qui donne le message M . Si e1 x1 − e2 x2 = −1, on calcule C1−x1 C2x2 et on obtient le même


résultat.

3.6.3 Utilisation de modules diérents pour le même message


■ Proposition
Soit k = 2 un nombre entier. On considère k modules RSA Ni avec 1 ≤ i ≤ k. Soient Ci , 1≤
k
i ≤ k , des messages chirés du même message clair M à l'aide du même exposant e. Si M e <
X
Ni
i=1
alors on peut déterminer le message clair M sans factoriser les modules.
■ Démonstration
Supposons que le même message clair M est chiré k fois par Ci = M e mod Ni , pour i =
k
1, · · · , k . Soit N = Ni .
X

i=1
On peut appliquer le Théorème des restes chinois pour résoudre le système formé des k
équations x = Ci mod Ni , avec x < N .
Si on suppose que M e < N , alors x = M e en tant que nombres entiers.
1
Ainsi M = x e , ce qui donne le message clair M .

43
3.6.4 Cryptanalyse de RSA si |p − q| < cN 1/4 : Méthode de Fermat
■ Dans cette partie, on suppose que les nombres premiers p et q qui forment le module RSA
N = pq sont très proches, plus précisément |p − q| < cN 1/4 où c est une constante xe, assez petite.
■ Proposition
Soit N = pq un module RSA où les nombres premiers p et q vérient |p − q| < cN 1/4 où c est
une constante assez petite. Alors on peut factoriser N en temps polynômial dépendant de c.
■ Démonstration
La méthode de Fermat consiste en la recherche de deux nombres entiers x et y tels que

4N = x2 − y 2 = (x + y)(x − y).

Si en plus x − y ̸= 2, alors on obtient la factorisation de N en posant


x+y x−y
p= , q= .
2 2

√ √
Pour déterminer x et y , on prend pour x les valeurs x0 = ⌊2 N ⌋, x1 = ⌊2 N ⌋ + 1, x2 =

⌊2 N ⌋ + 2, · · · et on teste si 4N − x2 est un carré parfait.

On désigne alors par k le nombre entier pour lequel xk = ⌊2 N ⌋ + k donne la factorisation de
N.
Alors xk = p + q et on a, en supposant que |p − q| < cN 1/4 :
√ √
k = xk − ⌊2 N ⌋ = p + q − ⌊2 N ⌋

<p+q−2 N +1
(p + q)2 − 4N (p − q)2
= √ +1= √ +1
p+q+2 N √ p+q+2 N
c2 N
< √ +1
2 N
c2
< +1
2

Il en résulte que le nombre de tests est assez petits si c est une constante qui ne dépend pas de
N.

44
Chapitre 4

Public Key Infrastructure (PKI)

4.1 Dénition : Public Key Infrastructure (PKI)


■ Une infrastructure à clés publiques (ICP) ou infrastructure de gestion de clés (IGC) ou encore
Public Key Infrastructure (PKI), est un ensemble :
 de composants physiques (des ordinateurs, des équipements cryptographiques logiciels
ou matériel type HSM (Hardware Security Module)(Module Matériel de Sécurité) ou
encore des cartes à puces) ;
 de procédures humaines (vérications, validation) ;
 de logiciels (système et application) ;
en vue de gérer le cycle de vie des certicats numériques ou certicats électroniques.
■ Une infrastructure à clés publiques fournit des garanties permettant de faire a priori conance
à un certicat signé par une autorité de certication grâce à un ensemble de services.
NB : Un Hardware Security Module HSM (Module Matériel de Sécurité) est un appareil considéré
comme inviolable orant des fonctions cryptographiques. Il s'agit d'un matériel électronique orant
un service de sécurité qui consiste à générer, stocker et protéger des clefs cryptographiques.
■ Ces services sont les suivants :

♦ enregistrement des utilisateurs (ou équipement informatique) ;

♦ génération de certicats ;

♦ renouvellement de certicats ;

♦ révocation de certicats ;

♦ publication de certicats ;

♦ publication des listes de révocation (comprenant la liste des certicats révoqués) ;

45
♦ identication et authentication des utilisateurs (administrateurs ou utilisateurs qui ac-
cèdent à l'ICP) ;

♦ archivage, séquestre et recouvrement des certicats (option).

4.2 Rôle d'une infrastructure à clés publiques


■ Une infrastructure à clés publiques (ICP) délivre des certicats numériques.

■ Ces certicats permettent d'eectuer des opérations cryptographiques, comme le chirement


et la signature numérique qui orent les garanties suivantes lors des transactions électro-
niques :

♦ condentialité : elle garantit que seul le destinataire (ou le possesseur) légitime d'un
bloc de données ou d'un message peut en avoir une vision intelligible ;

♦ authentication : elle garantit à tout destinataire d'un bloc de données ou d'un message
ou à tout système auquel tente de se connecter un utilisateur l'identité de l'expéditeur ou
de l'utilisateur en question ;

♦ intégrité : elle garantit qu'un bloc de données ou qu'un message n'a pas été altéré,
accidentellement ou intentionnellement ;

♦ non-répudiation : elle garantit à quiconque que l'auteur d'un bloc de données ou d'un
message ne peut renier son oeuvre, c'est-à-dire prétendre ne pas en être l'auteur.
■ Les ICP permettent l'obtention de ces garanties :

♦ par l'application de processus de vérication d'identité rigoureux ;

♦ et par la mise en oeuvre de solutions cryptographiques ables (éventuellement


évaluées).

■ Conditions indispensables à la production et à la gestion des certicats électroniques.

4.3 Composants de l'infrastructure à clés publiques


■ L'IETF distingue 4 catégories d'ICP :

♦ l'autorité de certication (AC ou CA) qui signe les demandes de certicat (CSR :
Certicate Signing Request) et les listes de révocation (CRL : Certicate Revocation List).
Cette autorité est la plus critique ;

♦ l'autorité d'enregistrement (AE ou RA) qui eectue les vérications d'usage sur

46
l'identité de l'utilisateur nal (les certicats numériques sont nominatifs et uniques pour
l'ensemble de l'ICP) ;

♦ l'autorité de dépôt (Repository) qui stocke les certicats numériques ainsi que les
listes de révocation (CRL) ;

♦ l'entité nale (EE : End Entity) qui utilise le certicat (en général, le terme  entité
d'extrémité  (EE) est préféré au terme "sujet" an d'éviter la confusion avec le champ
Subject).
■ En complément, on pourra ajouter une cinquième catégorie, non dénie par l'IETF :

♦ l'l'autorité de séquestre (Key Escrow) qui stocke de façon sécurisée les clés de chire-
ment créées par les autorités d'enregistrement, pour pouvoir, le cas échéant, les restaurer.

■ Les raisons à cela en sont multiples :

♦ La perte de la clef privée par son détenteur ne doit pas être dénitive.

♦ Toute organisation doit être en mesure de déchirer les documents de travail d'un de ses
membres si, par exemple, celui-ci n'en fait plus partie.

♦ Enn, dans certains pays, en France en particulier, la loi exige que les données chirées
puissent être déchirées à la demande des autorités nationales.

♦ La mise en oeuvre d'un séquestre répond à cette exigence.

4.4 Les certicats numériques : Familles


■ Usuellement, on distingue deux familles de certicats numériques :

♦ les certicats de signature, utilisés pour signer des documents ou s'authentier sur un site
web, et

♦ les certicats de chirement (les gens qui vous envoient des courriels utilisent la partie
publique de votre certicat pour chirer le contenu que vous serez seul à pouvoir déchirer)

■ Mais cette typologie n'est pas exhaustive ; un découpage plus orienté applicatif pourrait être
envisagé.

■ L'intérêt de la séparation des usages découle notamment des problématiques de séquestre de


clés et de recouvrement.

■ En eet, lorsqu'il y a chirement, il peut y avoir nécessité de recouvrer les informations


chirées.

47
■ Alors que lorsqu'il y a signature, il est indispensable de s'assurer que la clé privée n'est
possédée que par une seule partie.

4.5 Nature et composition


■ Un certicat électronique est une donnée publique. Suivant la technique des clés asymétriques,
à chaque certicat électronique correspond une clé privée, qui doit être soigneusement proté-
gée.

■ Un certicat numérique porte les caractéristiques de son titulaire :

♦ si le porteur est un être humain, cela peut être son nom et son prénom, le nom de
sa structure (par exemple, son entreprise ou son... État !) et de son entité d'apparte-
nance.
♦ si c'est un équipement informatique (comme une passerelle d'accès ou un serveur
d'application sécurisé), le nom est remplacé par l'URI du service.

■ À ces informations d'identication s'ajoute la partie publique du bi-clé.


■ L'ensemble de ces informations (comprenant la clé publique) est signé par l'autorité de cer-
tication de l'organisation émettrice. Cette autorité a la charge de :

♦ s'assurer que les informations portées par le certicat numérique sont correctes ;

♦ s'assurer qu'il n'existe, pour une personne et pour une même fonction, qu'un et un seul
certicat valide à un moment donné.

■ Le certicat numérique est donc, à l'échelle d'une organisation, un outil pour témoigner, de
façon électroniquement sûre, d'une identité.

■ L'usage conjoint des clés cryptographiques publiques (contenue dans le certicat) et privée
(protégée par l'utilisateur, par exemple au sein d'une carte à puce), permet de disposer de
fonctions de sécurité importante.

4.6 Gestion des certicats


■ Un certicat numérique naît après qu'une demande de certicat a abouti.

■ Une demande de certicat est un chier numérique (appelé soit par son format, PKCS#10,
soit par son équivalent fonctionnel, CSR pour Certicate Signing Request) qui est soumis
à une autorité d'enregistrement par un utilisateur nal ou par un administrateur pour le
compte d'un utilisateur nal.

48
■ Cette demande de certicat est examinée par un Opérateur d'Autorité d'Enregistrement.

■ Cette position est une responsabilité clé : c'est lui qui doit juger de la légitimité de la demande
de l'utilisateur et accorder, ou non, la conance de l'organisation.
■ Pour se forger une opinion, l'Opérateur doit suivre une série de procédures, plus ou moins
complètes, consignées dans deux documents de référence qui vont de pair avec la création
d'une ICP qui sont la Politique de Certication (PC) et la Déclaration des Pratiques de
Certication (DPC).
■ Ces documents peuvent exiger, en fonction des enjeux de la certication, des vérications
plus ou moins poussées : rencontre en face-à-face, validation hiérarchique, etc.
■ L'objectif de l'Opérateur d'AE est d'assurer que les informations fournies par l'utilisateur
sont exactes et que ce dernier est bien autorisé à solliciter la création d'un certicat.
■ Une fois son opinion formée, l'Opérateur de l'AE valide la demande ou la rejette.

■ S'il la valide, la demande de certicat est alors adressée à l'Autorité de Certication (AC).

■ L'AC vérie que la demande a bien été validée par un Opérateur d'AE digne de conance et,
si c'est le cas, signe la CSR. Une fois signée, une CSR devient... un certicat.
■ Le certicat, qui ne contient aucune information condentielle, peut par exemple être publié
dans un annuaire d'entreprise : c'est la tâche du Module de Publication, souvent proche de
l'AC.

4.7 Modes de création


■ Il existe deux façons distinctes de créer des certicats électroniques : le mode centralisé et le
mode décentralisé.
♦ le mode décentralisé est le mode le plus courant :
▶ Il consiste à faire créer, par l'utilisateur (ou, plus exactement par son logiciel ou carte
à puce) le biclé cryptographique et de joindre la partie publique de la clef dans la CSR.
▶ L'Infrastructure n'a donc jamais connaissance de la clé privée de l'utilisateur, qui reste
connée sur son poste de travail ou dans sa carte à puce.
♦ le mode centralisé :
▶ Il consiste en la création du biclé par l'AC : au début du cycle de la demande, la CSR
ne contient pas la clé publique, c'est l'AC qui la produit.
▶ Elle peut ainsi avoir de bonnes garanties sur la qualité de la clé (aléa) et peut... en
détenir une copie protégée.
▶ En revanche, il faut transmettre à l'utilisateur certes son certicat (qui ne contient
que des données publiques) mais aussi sa clé privée !

49
▶ L'ensemble de ces deux données est un chier créé sous le format PKCS#12.
▶ Son acheminement vers l'utilisateur doit être entrepris avec beaucoup de précaution et
de sécurité, car toute personne mettant la main sur un chier PKCS#12 peut détenir
la clé de l'utilisateur.
■ Le mode décentralisé est préconisé :
♦ pour les certicats d'authentication (pour des questions de coût, parce qu'il est plus
simple de refaire un certicat en décentralisé qu'à recouvrer une clé)
♦ et de signature (parce que les conditions d'exercice d'une signature juridiquement valide
prévoit que le signataire doit être le seul possesseur de la clé : en mode décentralisé, l'ICP
n'a jamais accès à la clé privée).

■ Le mode centralisé est préconisé :


♦ pour les certicats de chirement, car, lorsqu'un utilisateur a perdu sa clé (par exemple,
sa carte est perdue ou dysfonctionne), un opérateur peut, au terme d'une procédure de
recouvrement, récupérer la clé de chirement et la lui remettre.
♦ Chose qui est impossible à faire avec des clés qui n'ont pas été séquestrées.

4.8 Scénario de n de vie


■ Il existe deux scénarios possibles de n de vie d'un certicat numérique :

♦ le certicat numérique expire (chaque certicat numérique contient une date de  naissance
 et une date de  péremption ).
♦ le certicat est révoqué, pour quelque raison que ce soit :

▶ perte de la clé privée associée, etc.

▶ et dans ce cas, l'identiant du certicat numérique est ajouté à une liste de certicats
révoqués (CRL pour Certicate Revocation List) pour informer les applications qu'elles
ne doivent plus faire conance à ce certicat.
▶ Il est aussi possible que les applications s'informent en quasi temps réel de l'état du
certicat avec le protocole OCSP (Online Certicate Status Protocol) : Protocole de
Vérication de Certicat en Line.

4.9 Autorité de certication


■ En cryptographie, une Autorité de Certication (AC ou CA pour Certicate Authority en
anglais) est un tiers de conance permettant d'authentier l'identité des correspondants.

50
■ Une autorité de certication délivre des certicats décrivant des identités numériques et met
à disposition les moyens de vérier la validité des certicats qu'elle a fourni.

■ Les services des autorités de certication sont principalement utilisés dans le cadre de la
sécurisation des communications numériques via protocole Transport Layer Security (TLS)
utilisé par exemple pour sécuriser :

♦ les communications web (HTTPS) ou email (SMTP, POP3, IMAP... sur TLS) ;

♦ ainsi que pour la sécurisation des documents numériques (par exemple au moyen de si-
gnatures électroniques avancées telles que PAdES pour des documents PDF ;

♦ ou via le protocole S/MIME pour les emails).

4.10 Utilisation dans le domaine des communications web


■ Les navigateurs web modernes intègrent nativement une liste de certicats provenant de dié-
rentes Autorités de Certication choisies selon des règles internes dénies par les développeurs
du navigateur.

■ Lorsqu'une personne physique ou morale souhaite mettre en place un serveur web utilisant
une communication HTTPS sécurisée par TLS, elle génère une clé publique, une clé privée
puis envoie à l'une de ces Autorité de Certication une demande de signature de certi-
cat (en anglais CSR : Certicate Signing Request) contenant sa clé publique ainsi que des
informations sur son identité (coordonnées postales, téléphoniques, email...).

■ Après vérication de l'identité du demandeur du certicat par une autorité d'enregistrement


(RA), l'Autorité de Certication signe le CSR grâce à sa propre clé privée (et non pas avec
la clé privée de la personne donc) qui devient alors un certicat puis le transmet en retour à

51
la personne qui en a fait la demande.

■ Le certicat ainsi retourné sous forme de chier informatique est intégré dans le serveur web
du demandeur. Lorsqu'un utilisateur se connecte à ce serveur web, celui-ci lui transmet à son
tour le certicat fourni précédemment par l'Autorité de Certication.
■ Le navigateur web du client authentie le certicat du serveur grâce au certicat de l'Autorité
de Certication (intégré nativement dans le navigateur, cf. ci-dessus) qui l'a signé précédem-
ment.
■ L'identité du serveur est ainsi conrmée à l'utilisateur par l'Autorité de Certication.

■ Le navigateur web contacte ensuite l'Autorité de Certication concernée pour savoir si le


certicat du serveur n'a pas été révoqué (= invalidé) depuis qu'il a été émis par l'Autorité de
Certication via une demande OCSP.

■ Auparavant, les navigateurs téléchargeaient régulièrement des listes de révocation (CRL :


Certicate Revocation List) de la part des Autorités de Certication au lieu de contacter
directement celles-ci par des demandes OCSP.
■ Ce processus a été abandonné depuis car utilisant inutilement beaucoup de bande passante.

■ Sur le plan technique, cette infrastructure de gestion des clés permet ainsi d'assurer que :

♦ les données transmises entre le serveur web et le client n'ont pas été modiées durant le
transfert : intégrité par hachage des données.
♦ les données proviennent bien du serveur web connu et qu'il ne s'agit pas d'un serveur web
tiers tentant d'usurper l'identité de celui-ci.
♦ les données ne peuvent pas être interceptées par un tiers car elles sont chirées.

4.11 Fonctionnement interne


■ L'autorité de certication (AC) opère elle-même ou peut déléguer l'hébergement de la clé
privée du certicat à un opérateur de certication (OC) ou autorité de dépôt.

■ L'AC contrôle et audite l'opérateur de certication sur la base des procédures établies dans
la Déclaration des Pratiques de Certication.

■ L'AC est accréditée par une autorité de gestion de la politique qui lui permet d'utiliser un
certicat renforcé utilisé par l'OC pour signer la clé publique selon le principe de la signature
numérique.

52
4.12 Exemples de PKI
■ EASY CA : easyCA permet de gérer très rapidement et sans oriture une PKI de petite
taille ( moins d'une cinquantaine de certicats).

■ OPENCA : OpenCA PKI est aujourd'hui la composante d'un vaste projet communautaire,
visant à dénir les standards de développement d'un logiciel de PKI. OpenCA PKI en est la
partie dédiée à la gestion des certicats.

■ XCA : XCA est l'application graphique que je préfère pour gérer mes PKI. Il permet de créer
les clés, les certicats et les demandes de signatures très intuitivement. Et à la n, d'exporter
le tout facilement.

■ OpenTrust PKI :La solution OpenTrust PKI est utilisée par un grand nombre d'organi-
sations qui comptent parmi les plus inuentes au monde pour créer, distribuer et gérer les
identités numériques de tous leurs utilisateurs et terminaux. Il permet de créer les clés, les
certicats et les demandes de signatures très intuitivement. Et à la n, d'exporter le tout
facilement.

■ EJBCA : EJBCA est une solution open source de gestion d'une PKI (infrastructure de clés
publiques), parmi les plus complètes qui soient. Elle est actuellement portée et maintenue
activement par la société suédoise Primekey.

■ OPENSSL : OpenSSL est la librairie open source, quasiment élevée au rang de standard
sous UNIX, pour ce qui concerne les fonctions cryptographiques et les fonctions de hachage.
En particulier, elle implémente quasi-complètement le standard des PKI, i.e la norme X509.

53
Chapitre 5

Applications

5.1 Chirement/Signature : RSA et El Gamal sous Java/Maple


■ Chirement/Signature : RSA sous Java/Maple

■ Chirement/Signature : El Gamal sous Java/Maple

5.2 OpenSSL : Chirement/Signature, Certicats


■ Chirement Symétrique

■ Chirement Symétrique

■ Signature Numérique

■ Certicat Numérique

5.3 GPG : Chirement et Signature de données


■ PGP, GnuPG : Présentation

■ Chirement Symétrique

■ Chirement Symétrique

■ Signature Numérique

54
5.4 GnuPG : Chirement/Signature des mails
■ GnuPG : logiciel de chirement des mails

■ Thunderbird : client de messagerie

■ Enigmail : pluging liant GnuPG et Thunderbird

5.5 KeyTools : Gestion des clés et certicats


■ Création d'un KeyStore de type JKS ou JCEKS

■ Génération des clés et certicats

■ Exportation/Importation de clés et certicats

■ Chirement / Signature de chiers

55

Vous aimerez peut-être aussi