Académique Documents
Professionnel Documents
Culture Documents
ET INTEGRITE
Avril 2019
Version 1.0
Table des
matières
Objectifs 3
Introduction 4
5. Exercice ........................................................................................................................................................ 10
4. Exercice ........................................................................................................................................................ 15
3
Introduction
Après la leçon précédente, on pourrait penser que le chiffrement était suffisant pour maintenir un secret. Cependant,
d'autres facteurs peuvent entrer en ligne de compte pour garantir une communication sûre.
C'est la raison pour laquelle cette leçon abordera les notions d' authentification de l'expéditeur et d'intégrité de
message ainsi que quelques méthodes et algorithmes utilisés pour leur mise en œuvre.
4
Méthodes d'authentification et d'intégrité
Méthodes
d'authentification et I
d'intégrité
Objectifs
Identifier les méthodes d'authentification et d'intégrité
- chiffrer le message ;
- utiliser une fonction de hachage ;
- utiliser un code d'authentification de message (MAC - Message Authentication Code).
Les dangers à contrer sont nombreux et peuvent survenir lors de la transmission de messages, aussi bien entre
des partenaires, que face à un pirate. En voici quelques-uns :
5
1. Chiffrement du message
1.1. Utilisation d'un cryptosystème symétrique
Si un chiffrement symétrique est employé, le destinataire sait que seul l'expéditeur peut l'avoir créé puisque
seuls l'expéditeur et le destinataire connaissent la clé utilisée (ou en tout cas, sont sensés la connaître).
En ce qui concerne l'intégrité, il faut s'assurer que le contenu n'a pas pu être changé. Si le message a la structure
appropriée, on peut utiliser la redondance ou une somme de contrôle pour détecter un changement. On peut
également réaliser un contrôle d'erreur interne et externe, comme le montre l'illustration Figure 1 suivante.
6
2. Fonctions de hachage
2.1. Définition et utilité
On parle de "haché", "résumé", "condensé" ou "emprunte" 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éfinie (en l’occurrence le message).
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 fichier ainsi que son intégrité. Dans la majorité des cas, elles
seront utilisées pour créer une signature numérique. Enfin, la qualité principale de ces fonctions est que les
algorithmes sont publiques.
2.2. Propriétés
Les fonctions de hachage possèdent de nombreuses propriétés :
Remarque
En informatique, une collision désigne une situation dans laquelle deux données ont un résultat identique avec la
même fonction de hachage. Les collisions sont inévitables dès lors que l'ensemble de départ (données fournies)
de la fonction de hachage est d'un cardinal strictement supérieur à l'ensemble d'arrivée (empreintes).
Tout comme les fonctions de hachage, les MAC (ou CAM : Code d'Authentification de Message) n'ont pas
besoin d'être réversibles. En effet, le destinataire exécutera le même calcul sur le message et le comparera avec
le MAC reçu.
Le MAC assure que le message est inchangé (intégrité) et vient de l'expéditeur (authentification, par l'utilisation
de la clé secrète). Il peut également être employé comme un chiffrement supplémentaire (rare) et peut être
calculé avant ou après le chiffrement principal, bien qu'il soit généralement conseillé de le faire avant.
7
Signatures digitales
En effet, le message M est envoyé en clair sur le réseau, et le MAC CK(M) lui est concaténé. Cependant, par
l'utilisation d'une clé secrète K, et comme seul A connaît cette clé, le destinataire B est sûr que l'expéditeur est
bien A. A la réception du message, B applique la fonction MAC sur le message en clair, et vérifie que le MAC
résultant correspondant à celui concaténé au message transmis.
En (b), le MAC CK1(M) est concaténé au message M et le tout est chiffré (EK2[M || CK1(M)]) puis envoyé à B.
En (c), seul le message M est chiffré (EK2(M)). Le MAC CK1[EK2(M)] lui est concaténé par la suite et puis le
tout (EK2(M) || CK1[EK2(M)]) est envoyé à B. Dans la majorité des cas, on utilisera la technique illustrée en (b).
4. Signatures digitales
Nous avons jusqu'ici considéré l'authentification de messages sans abordé les questions de manque de
confiance. En effet, l'authentification des messages protège les deux entités communicantes d'un intrus mais ne
les protège en rien l'un de l'autre. En cas de conflit, 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 suffit pour cela de créer un
message et lui appliquer un MAC en utilisant la clé qu'ils ont en commun.
- Le cas inverse peut également exister. B peut nier le fait d'avoir envoyer 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érifier l'auteur, la date et
l'heure de la signature, d'authentifier le contenu d'un message et peuvent être vérifiées par des tiers pour
résoudre des conflits.
8
Remarque
La non-répudiation est la possibilité de vérifier que l'expéditeur et le destinataire sont bien les parties qui disent
avoir respectivement envoyé ou reçu le message. Autrement dit, la non-répudiation de l'origine prouve que les
données ont été envoyées, et la non-répudiation de l'arrivée prouve qu'elles ont été reçues.
4.1. Propriétés
Une signature digitale doit
9
Exercice
Exercice
Le MAC - Message Authentication Code permet
Exercice
Les signatures digitales permettent
Exercice
L'authentification de message repose sur
le chiffrement du message
10
Algorithmes pour l'authentification et l'intégrité
Algorithmes pour
l'authentification et II
l'intégrité
Objectifs
Identifier les algorithmes pour l'authentification et l'intégrité
11
1. Algorithmes pour les fonctions de hachage
1.1. MD5 (Message Digest 5)
MD5 est une fonction de hachage cryptographique qui a été inventé par Ronald Rivest en 1991. Elle calcule, à
partir d'un fichier numérique, son empreinte numérique de 128 bits (ou 32 caractères en hexadécimale) avec
une probabilité très forte que deux fichiers différents donnent deux empreintes différentes.
Il était il y a encore quelques temps l'algorithme de hachage le plus largement répandu. La cryptanalyse et
l'attaque par force brute (2004) l'ont affaibli. Ainsi MD5 n'est donc plus considéré comme sûr au sens
cryptographique. On suggère maintenant d'utiliser plutôt des algorithmes tels que SHA-256 produisant un haché
de 256 bits et qui est depuis 2002 un standard de traitement de l'information.
Cependant, la fonction MD5 reste encore largement utilisée comme outil de vérification lors des
téléchargements et l'utilisateur peut valider l'intégrité de la version téléchargée grâce à l'empreinte. Ceci peut se
faire avec un programme comme md5sum.
Comme toutes les fonctions de hachage les fonctions SHA-2 prennent en entrée un message de taille arbitraire
et produisent un résultat (appelé « hash », haché, ou empreinte...) de taille fixe indiquée par le suffixe, voir le
tableau comparatif suivant.
SHA-256 est devenu le nouveau standard recommandé en matière de hachage cryptographique après les
attaques sur MD5 et SHA-1.
Remarque
Les algorithmes de la famille SHA-2 sont très semblables, il y a essentiellement deux fonctions différentes,
SHA-256 et SHA-512, les autres étant des variantes de l'une ou l'autre.
12
2. Algorithmes pour les MAC
2.1. Fonction de hachage pour les MAC
Il est souhaitable de créer des MACs à partir de fonctions de hachage plutôt qu'à partir de fonction de
chiffrement par bloc du fait de la rapidité des fonctions de hachage et de l'absence de contrôle à l'exportation.
La différence majeure entre les MAC et les Hachés étant la gestion d'une clé secrète, il faut intégrer cette clé
dans l'algorithme de hachage.
Une idée simple fut avancée, et connue sous le nom de HashSur. Le principe était de concaténer directement le
message à la clé ( Hash(clé|Message) ). Cependant quelques faiblesses ont été trouvées, ce qui a amené au
développement de HMAC.
N'importe quelle fonction itérative de hachage, comme MD5 ou SHA-1, peut être utilisée dans le calcul d'un
HMAC ; le nom de l'algorithme résultant est HMAC-MD5 ou HMAC-SHA-1. La qualité cryptographique du
HMAC dépend de la qualité cryptographique de la fonction de hachage et de la taille et la qualité de la clé.
- H : la fonction de hachage
- K : la clé secrète, hachée par la fonction H si plus longue que sa taille de bloc, puis complétée avec des
zéros pour qu'elle atteigne la taille de bloc de la fonction H
- M : le message à authentifier,
- "||" désigne une concaténation et "⊕" un ou exclusif,
- ipad et opad, chacune de la taille d'un bloc, sont définies par :
ipad = 0x363636...3636 et opad = 0x5c5c5c...5c5c. Donc, si la taille de bloc de la fonction de hachage
est 512 bits, ipad et opad sont 64 répétitions des octets, respectivement, 0x36 et 0x5c.
13
3. Algorithmes de signatures
3.1. El Gamal
La signature El Gamal date de 1985 et a servi de base au standard de signature électronique. Contrairement à
RSA qui sert pour chiffrer ou pour signer, il a été conçu spécialement pour signer
Méthode
Soient un nombre p premier et une clé privée SK = x (où x < p).
Lors de la vérification, on pourra déterminer une signature valide si ya. ab mod p = gM mod p.
Remarque
Pour assurer la sécurité de la méthode, il faudra utiliser un nouveau k à chaque signature ou chiffrement. Si on
utilise plusieurs fois le même k, il est possible de retrouver x aisément.
Exemple
Soit la clé privé SK = x = 8 et les valeurs p = 11, g = 2.
- a = gk mod p = 29 mod 11 → a = 6
- M = (xa + kb) mod (p − 1) → 5 = (8 * 6 + 9 * b) mod 10 → b = 3
Pour la vérification, il faudra alors s'assurer que 36 x 63 mod 11 = 25 mod 11 (= 10), ce qui est bien le cas.
3.2. RSA
Si on possède une clé publique (e, n) et une clé privée (d, n) avec n = p*q tel que pgcd (p, q) = 1, alors la
signature d'un message M est
sign(M) = Md mod n
14
Exercice
Exemple
On considère les clés publique : (5, 85) et privée : (13, 85). Déterminer la signature du message M = 10.
Exercice
Identifier les algorithmes qui ne sont pas utilisés pour signer un message
RSA
HMAC
El Gamal
AES
Exercice
On considère les paramètres suivants pour la signature El Gamal : p = 13, g = 2, x = 5.
y=
PK = ( , , )
sign(M) = (a, b) = ( , )
Exercice
Un utilisateur a une clé privée RSA dont les caractéristiques sont d = 7, p = 11, q = 3 pour signer des
messages.
1. Pour authentifier ses messages, il doit publié sa clé de vérification. Déterminer sa clé publique
(e, n) = ( , )
sign(M) =
3. Le correspondant reçoit la signature σ = 24. Donnez la valeur d'un message provenant de notre
utilisateur pour lequel la signature σ est valide.
M=
15
Solutions des exercices
Exercice
Exercice
Exercice
le chiffrement du message
16
Solutions des exercices
Exercice
Identifier les algorithmes qui ne sont pas utilisés pour signer un message
RSA
HMAC
El Gamal
AES
Exercice
y=6
PK = ( 6, 2, 13)
Exercice
Un utilisateur a une clé privée RSA dont les caractéristiques sont d = 7, p = 11, q = 3 pour signer des messages.
1. Pour authentifier ses messages, il doit publié sa clé de vérification. Déterminer sa clé publique
(e, n) = ( 3, 33)
2. Il veut envoyer le message signé M = 13 à son correspondant. Déterminer la signature pour ce message.
sign(M) = 7
3. Le correspondant reçoit la signature σ = 24. Donnez la valeur d'un message provenant de notre utilisateur
pour lequel la signature σ est valide.
M = 30
17