Cours Crypto
Cours Crypto
Cours Crypto
TITRE :
CRYPTOGRAPHIE
Demba SOW
Docteur en Mathématiques et Cryptologie
Enseignant chercheur au Département de Mathématiques/Informatique
Email : [email protected], [email protected]
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
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
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.
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,...
▶ 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é.
5
▶ P est un ensemble appelé espace des textes clairs
▶ Ck : P → C est une fonction inversible à gauche appelée fonction de chirement et qui dépend
d'un parametre k appelé clé.
▶ 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 :
♦ C'est pourquoi on utilisera souvent des échanges sécurisés pour transmettre les clés.
6
A B
K −→ canal sûr −→ K
↓ ↓
M −→ M' −→ non sûr −→ M' −→ M
■ Concept :
▶ Une clé publique Kpub (pour chirer ou vérier une signature) ;
▶ DKpriv (EKpub (M )) = M ;
♦ 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
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.
A B
B
Kpub B
Kpriv
↓ ↓
M → M' → canal non sûr → M' → M
8
Perturbation
⇓
Expéditeur → Canal → Destinatire
⇑
Espionnage
▶ 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
▶ 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é.
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, ...)
10
♦ Fiat-Shamir (pour l'identication).
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)
=⇒ 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 ;
♦ sur les modèles mathématiques utilisés pour fabriquer les primitives de cryptographie ;
♦ 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.
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.
■ 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.
■ 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
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
■ Concept
▶ Les clés de chirement (KE ) et de déchirement (KD ) sont identiques : KE = KD = K .
▶ 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 :
♦ C'est pourquoi on utilisera souvent des échanges sécurisés pour transmettre les clés.
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
−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é.
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.
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.
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.
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).
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
24
Intérêt historique + valeur de référence. A ne pas utiliser actuellement !
Le chirement DES : fonction de Feistel
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
A ⊛ B = c7 · 27 + · · · + c1 · 2 + c0
26
Un bloc AES est vu comme un tableau de 4 (lignes) ×4 (colonnes) d'octets, soit 16 octets =
128 bits, appelé état :
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
28
▶ On les utilise en cryptographie pour :
♦ 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.
▶ La probabilité d'avoir deux messages avec le même haché doit être extrêmement faible.
▶ 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 .
▶ 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é
29
▶ Le message est considéré intègre s'il est bien accompagné par son empreinte qu'on ne peut
falsier.
♦ l'intégrité
♦ 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
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 ;
▶▶ 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
▶ 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.
■ 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.
♦ à 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.
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) ;
nécessairement sûr.
KPBub KPBr
↓ ↓
7→ ′
Ksec 7→ ′
Ksec 7→
Ksec Ksec
↓ ↓
M → M' → non sûr → M' → M
▶ En eet, l'authentication des messages protège les deux entités communicantes d'un intrus.
♦ 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.
♦ de vérier l'auteur ;
♦ 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. 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é).
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)
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 ) .
▶ 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é.
▶ de leur intégrité ;
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 ) ;
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.
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 .
■ RSA : Présentation
▶ Du nom de ses inventeurs (Rivest, Shamir et Adleman), RSA est le premier algorithme à clé
publique inventé en 1978.
▶ Pour assurer la sécurité les nombres premiers choisis doivent être susamment grands.
■ RSA : Génération des clés
▶ 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).
38
■ RSA : Déchirement
▶ Soit le chiré C ∈ Z
nZ reçu ;
▶ Soit M ∈ Z
nZ le message à signer ;
▶ Soit S ∈ Z
nZ la signature du message M reçue ;
▶ 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 ;
39
▶ La lenteur des opérations de déchirement et de signature ;
▶ Sa propriété d'homomorphie ;
■ 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.
▶ Calculer h = g a mod p ;
40
▶ Choisir un nombre aléatoire k assez grand ;
♦ m1 = g k mod p ;
♦ m2 = m.hk mod p.
▶ 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 ;
♦ r = g k mod p ;
♦ s = k −1 (M − a.r) mod (p − 1) ;
▶ 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.
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 ;
▶ 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.
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
42
■ Démonstration
Soient C1 et C2 deux messages chirés par
C1 ≡ M e1 mod N,
C2 = M e2 mod N,
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
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).
√ √
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
♦ génération de certicats ;
♦ renouvellement de certicats ;
♦ révocation de certicats ;
♦ publication de certicats ;
45
♦ identication et authentication des utilisateurs (administrateurs ou utilisateurs qui ac-
cèdent à l'ICP) ;
♦ 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 :
♦ 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.
♦ 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.
♦ 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é.
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.
♦ 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.
♦ 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.
■ 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.
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 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 :
▶ 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.
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 ;
■ 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...).
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.
■ 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.
■ 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
■ Chirement Symétrique
■ Signature Numérique
■ Certicat Numérique
■ Chirement Symétrique
■ Chirement Symétrique
■ Signature Numérique
54
5.4 GnuPG : Chirement/Signature des mails
■ GnuPG : logiciel de chirement des mails
55