Vous êtes sur la page 1sur 17

AUTHENTIFICATION

ET INTEGRITE

ANOUMOUYE Edmond Serge @ UVCI 2019

Avril 2019
Version 1.0
Table des
matières
Objectifs 3

Introduction 4

I - Méthodes d'authentification et d'intégrité 5

1. Chiffrement du message ................................................................................................................................. 6


1.1. Utilisation d'un cryptosystème symétrique ..................................................................................................................................... 6
1.2. Utilisation d'un cryptosystème asymétrique ................................................................................................................................... 6

2. Fonctions de hachage ...................................................................................................................................... 7


2.1. Définition et utilité ....................................................................................................................................................................... 7
2.2. Propriétés ..................................................................................................................................................................................... 7

3. MAC - Message Authentication Code ............................................................................................................ 7

4. Signatures digitales ......................................................................................................................................... 8


4.1. Propriétés ..................................................................................................................................................................................... 9
4.2. Signatures digitales directes .......................................................................................................................................................... 9
4.3. Signatures digitales arbitrées ........................................................................................................................................................ 9

5. Exercice ........................................................................................................................................................ 10

II - Algorithmes pour l'authentification et l'intégrité 11

1. Algorithmes pour les fonctions de hachage .................................................................................................. 12


1.1. MD5 (Message Digest 5) ............................................................................................................................................................ 12
1.2. SHA-2 (Secure Hash Algorithm) ................................................................................................................................................ 12

2. Algorithmes pour les MAC ........................................................................................................................... 13


2.1. Fonction de hachage pour les MAC ........................................................................................................................................... 13
2.2. HMAC (Keyed-Hash Message Authentication Code) .................................................................................................................. 13

3. Algorithmes de signatures ............................................................................................................................. 14


3.1. El Gamal ................................................................................................................................................................................... 14
3.2. RSA ........................................................................................................................................................................................... 14

4. Exercice ........................................................................................................................................................ 15

Solutions des exercices 16


Objectifs

Identifier les méthodes d'authentification et d'intégrité


Identifier les algorithmes pour l'authentification et l'intégrité

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é

L'authentification de message repose sur trois concepts :

- la validation de l'identité du créateur du message ;


- la protection de l'intégrité d'un message ;
- la non-répudiation de l'origine (résolution de conflit).

Pour assurer cette demande, trois méthodes sont possibles :

- 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 :

- mascarade : insertion des messages d'une source frauduleuse dans le réseau ;


- modification du contenu : changements du contenu d'un message, y compris l'insertion, la suppression, la
transposition, et la modification ;
- modification de séquence (ou d'ordre) : toute modification à un ordre des messages entre les parties, y
compris l'insertion, la suppression, et commander à nouveau ;
- modification de la synchronisation : retarde ou rejoue des messages ;
- répudiation de la source : démenti de transmission de message par la source ;
- répudiation de la destination : démenti de la réception du message par la destination.

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.

Figure 1 : Contrôle d'erreur interne et externe

1.2. Utilisation d'un cryptosystème asymétrique


Dans ce cas, on n'a aucune information sur l'expéditeur puisque n'importe qui peut potentiellement utiliser la
clé publique. Cependant si l'expéditeur signe le message en utilisant sa clé privée, et chiffre ensuite avec la clé
publique du destinataire alors on a le secret et l'authentification. Il est ainsi possible d'identifier les messages
corrompus mais au coût de deux utilisations de ce chiffrement sur le message.

Figure 2 : Authentification lors d'un chiffrement asymétrique

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).

On utilise les fonctions de hachage en cryptographie pour :

- fournir un condensé de taille fixe


- représenter précisément les données : la détection des changements dans le message est simplifié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 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 :

- 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.
- Pour un h donné, il est impossible de trouver x tel que H(x) = h. On parle de propriété à sens unique.
- Pour un x donné, il est impossible de trouver y tel que H(y) = H(x) ⇒ résistance faible de collision.
- Il est impossible de trouver x, y tels que H(y) = H(x) ⇒ résistance forte de collision.

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).

3. MAC - Message Authentication Code


Le concept est relativement semblable aux fonctions de hachage. Il s'agit ici aussi d'algorithmes qui créent un
petit bloc authentificateur de taille fixe. La grande différence est que ce bloc authentificateur ne se base plus
uniquement sur le message, mais également sur une clé secrète.

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.

L'illustration Figure 3 présente 3 techniques de base utilisant un MAC.

7
Signatures digitales

- Au point (a), seule l'authentification du message M (de la source A) a lieu.

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.

- Les points (b) et (c) ajoutent la confidentialité.

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).

Figure 3 : Fonctions MAC et authentification

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

- dépendre du message signé


- employer une information unique propre à l'expéditeur pour empêcher la contrefaçon et le démenti
- être relativement facile à produire, à reconnaître et à vérifier
- être mathématiquement infaisable à forger (par construction de nouveaux messages pour une signature
numérique existante, ou par construction d'une signature numérique frauduleuse pour un message donné)
- être facile à stocker

4.2. Signatures digitales directes


Ce type de signature implique uniquement l'expéditeur et le destinataire. On suppose que le destinataire dispose
de la clé publique de l'expéditeur. La signature numérique est faite par l'expéditeur en signant le message entier
ou le condensé avec sa clé privée. Par la suite, le message signé pourra être chiffré en utilisant la clé publique
du destinataire. Il est important de signer d'abord et de chiffrer ensuite le message et la signature. La sécurité
dépend de la clé privée de l'expéditeur.

4.3. Signatures digitales arbitrées


Un arbitre est présent et validera n'importe quel message signé, le datera et l'enverra au destinataire. Ce système
exige un niveau approprié de confiance en l'arbitre. Il peut être mis en application avec des algorithmes
symétriques ou à clé publique. L'arbitre peut ou ne peut pas voir le message.

9
Exercice

5. Exercice [solution n°1 p.16]


[* ]

Exercice
Le MAC - Message Authentication Code permet

 d'assurer que l'intégrité d'une information

 d'assurer la non-repudiation de l'origine de message

 d'assurer l'authentification de l'expéditeur

 de chiffrer un message grâce à une clé secrète.

Exercice
Les signatures digitales permettent

 de chiffrer un message grâce à une clé secrète.

 d'assurer que l'intégrité d'une information

 d'assurer la non-repudiation de l'origine de message

 d'assurer l'authentification de l'expéditeur

 de chiffrer un message grâce à une clé secrète.

Exercice
L'authentification de message repose sur

 la validation de l'identité du créateur du message

 le chiffrement du message

 la protection de l'intégrité d'un message ;

 la non-répudiation de l'origine (résolution de conflit)

 l'usage d'un code d'authentification de message (MAC)

 l'emploi de fonction de hachage

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.

1.2. SHA-2 (Secure Hash Algorithm)


SHA-2 est une famille de fonctions de hachage qui ont été conçues par la National Security Agency (NSA) des
États-Unis. Elles sont basées sur le modèle des fonctions SHA-1 et SHA-0, elles-mêmes inspirées de la fonction
MD4 de Ronald Rivest, précurseur du MD5.

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.

Figure 4 : SHA et ses évolutions

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.

2.2. HMAC (Keyed-Hash Message Authentication Code)


Un HMAC est un type de MAC calculé en utilisant une fonction de hachage cryptographique en combinaison
avec une clé secrète. Comme avec n'importe quel MAC, il peut être utilisé pour vérifier simultanément
l'intégrité de données et l'authenticité d'un message.

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é.

La fonction HMAC est définie comme suit :

Différents éléments interviennent dans l'algorithme :

- 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).

Soit la clé publique PK = (y, g, p) où y = gx mod p avec g < p.

La signature d'un message M est sign(M) = (a, b) et se calcule comme suit :

- soit un nombre entier k gardé secret tel que pgcd (k, p − 1) = 1


- on calcule a = gk mod p
- on calcule b tel que M = (xa + kb) mod (p − 1)

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.

1. Déterminer sa clé publique associée


On a : y = gx mod p = 28 mod 11 = 3
Donc la clé publique est PK = (y, g, p) = (3, 2, 11).
2. On choisit un nombre aléatoire k=9. Déterminer la signature du message M = 5..
On remarque que pgcd (k, p − 1) = pgcd (9, 10) = 1. On calcule alors a et b :

- a = gk mod p = 29 mod 11 → a = 6
- M = (xa + kb) mod (p − 1) → 5 = (8 * 6 + 9 * b) mod 10 → b = 3

La signature de M = 5 est sign(M) = (a, b) = (6, 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

Lors de la vérification, on pourra déterminer une signature valide si M = sign(M)e.

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.

sign(M) =Md mod n = 1013 mod 85 donc sign(M) = 45.

On vérifie bien que 455 mod 85 = 10.

4. Exercice [solution n°2 p.16]


[*]

Exercice
Identifier les algorithmes qui ne sont pas utilisés pour signer un message

 RSA

 La famille des algorithmes SHA-1, SHA-2

 HMAC

 El Gamal

 AES

Exercice
On considère les paramètres suivants pour la signature El Gamal : p = 13, g = 2, x = 5.

1. Calculez y = gx mod p. En déduire la clé publique PK

y=

PK = ( , , )

2. Calculez la signature du message M = 6 en utilisant les valeurs aléatoires k = 7.

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) = ( , )

2. Il veut envoyer le message signé M = 13 à son correspondant. Déterminer la signature pour ce


message.

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

Solutions des exercices

> Solution n°1 Exercice p. 10

Exercice

Le MAC - Message Authentication Code permet

 d'assurer que l'intégrité d'une information

 d'assurer la non-repudiation de l'origine de message

 d'assurer l'authentification de l'expéditeur

 de chiffrer un message grâce à une clé secrète.

Exercice

Les signatures digitales permettent

 de chiffrer un message grâce à une clé secrète.

 d'assurer que l'intégrité d'une information

 d'assurer la non-repudiation de l'origine de message

 d'assurer l'authentification de l'expéditeur

 de chiffrer un message grâce à une clé secrète.

Exercice

L'authentification de message repose sur

 la validation de l'identité du créateur du message

 le chiffrement du message

 la protection de l'intégrité d'un message ;

 la non-répudiation de l'origine (résolution de conflit)

 l'usage d'un code d'authentification de message (MAC)

 l'emploi de fonction de hachage

16
Solutions des exercices

> Solution n°2 Exercice p. 15

Exercice

Identifier les algorithmes qui ne sont pas utilisés pour signer un message

 RSA

 La famille des algorithmes SHA-1, SHA-2

 HMAC

 El Gamal

 AES

Exercice

On considère les paramètres suivants pour la signature El Gamal : p = 13, g = 2, x = 5.

1. Calculez y = gx mod p. En déduire la clé publique PK

y=6

PK = ( 6, 2, 13)

2. Calculez la signature du message M = 6 en utilisant les valeurs aléatoires k = 7.

sign(M) = (a, b) = ( 11, 5)

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

Vous aimerez peut-être aussi