1. Livres & vidéos
  2. Maîtriser la cryptographie d’aujourd’hui et de demain
  3. Fonction de hachage et signature numérique
Extrait - Maîtriser la cryptographie d’aujourd’hui et de demain Des bases mathématiques aux standards post-quantiques
Extraits du livre
Maîtriser la cryptographie d’aujourd’hui et de demain Des bases mathématiques aux standards post-quantiques Revenir à la page d'achat du livre

Fonction de hachage et signature numérique

Les fonctions de hachage

Les fonctions de hachage cryptographiques jouent un rôle fondamental en sécurité informatique. Elles sont utilisées dans de nombreuses applications, allant de la vérification d’intégrité des fichiers à la signature numérique et au stockage aux mots de passe.

Cette section explore leur définition, leurs propriétés, leurs applications et les principaux algorithmes utilisés aujourd’hui.

1. Définition et propriétés attendues

Avant de définir une fonction de hachage, nous allons commencer par donner une définition d’une fonction et une fonction à sens unique.

a. Définition d’une fonction

Une fonction f est une relation entre un ensemble X et un ensemble Y, où, à chaque élément x de l’ensemble X, on associe un élément y de l’ensemble Y. En terme mathématique, on écrit :

y = f(x)

images/04DataPro01.png

b. Fonction à sens unique

Une fonction à sens unique est une fonction :

  • Efficace à calculer : pour toute entrée x, il existe un algorithme rapide (complexité raisonnable) pour calculer y = f(x).

  • Inversée difficilement : il n’existe pas (ou on ne connaît pas) d’algorithme efficace pour retrouver x à partir de y (avec y = f (x)).

En pratique, dire qu’il est difficile signifie qu’avec les moyens (algorithmes) et connaissances actuels, il est impossible de trouver un tel x en un temps raisonnable.

c. Définition d’une fonction de hachage

Une fonction de hachage H est une fonction à sens unique qui transforme une entrée (texte, fichiers, mot de passe) de longueur arbitraire en une sortie de longueur fixe, appelée empreinte ou haché.

Exemple 1 : une fonction de hachage simple

Soit x une chaîne de caractère de longueur quelconque, la fonction qui, à x associe la somme des codes ASCII des caractères de x, le tout modulo 16, est une fonction de hachage. Soit x = "Bonjour", déterminons son haché :

images/04DataPro02.png

Une fonction de hachage sert à produire des empreintes (ou hachés) d’un message indépendamment de sa longueur. Elle permet par exemple de contrôler l’intégrité des données et de stocker des données...

Signatures numériques

Dans le monde physique, un document est authentifié par une signature manuscrite ou un sceau. Les signatures numériques jouent un rôle similaire dans le monde numérique, mais avec une puissance et une sécurité bien plus grandes. Elles garantissent l’authenticité, l’intégrité et la non-répudiation d’un document électronique ou d’un message.

1. Définition

Une signature numérique est un mécanisme cryptographique basé sur la cryptographie asymétrique. Elle utilise une paire de clés :

  • Une clé privée : c’est la clé secrète, connue uniquement du signataire. Elle est utilisée pour créer la signature (signer le message).

  • Une clé publique : c’est la clé accessible à tous. Elle est utilisée pour vérifier la signature.

Contrairement au chiffrement asymétrique (où l’on chiffre avec la clé publique et déchiffre avec la clé privée), ici c’est l’inverse : on utilise la clé privée pour générer une preuve (la signature) et la clé publique pour vérifier cette preuve.

a. Principe de fonctionnement

Le processus de signature numérique se déroule en trois étapes :

Étape 1 : Hachage du message

Le message ou le document original est d’abord transformé en une empreinte unique de taille fixe (haché). Cet haché est généré par une fonction de hachage cryptographique comme SHA-256. Même une modification mineure du message original produirait un haché complètement différent.

Étape 2 : Génération de la signature

Le signataire utilise sa clé privée pour chiffrer le haché du message, via un algorithme de signature (RSA, DSA, ECDSA, EdDSA, etc.). Le résultat de ce chiffrement est la signature numérique.

Étape 3 : Envoi de la signature

Le signataire envoie le message original en clair et la signature numérique à la personne qui doit la vérifier. Il est crucial que le message ne soit pas chiffré, afin que n’importe qui puisse en vérifier l’intégrité.

Pour...

Certificats numériques et PKI

Dans un monde où les communications numériques sont omniprésentes, il est crucial de pouvoir faire confiance à l’identité des serveurs et des utilisateurs (navigateurs). Les certificats numériques et l’infrastructure à clé publique (PKI) sont les technologies fondamentales qui permettent d’établir cette confiance.

Imaginons une situation où il n’y a pas de certificat numérique. Un attaquant (Ève) se place entre votre navigateur (client) et le serveur que vous voulez joindre.

  • Votre navigateur (client) demande la clé publique du serveur.

  • L’attaquant (Ève) intercepte la demande et envoie sa propre clé publique à la place de celle du serveur.

  • Votre navigateur (client), sans savoir qu’il s’agit d’une fausse clé, génère une clé de session et la chiffre avec la fausse clé publique de l’attaquant.

  • L’attaquant intercepte la clé de session chiffrée, la déchiffre avec sa propre clé privée, et l’utilise pour chiffrer toutes les communications.

Dans ce scénario, l’attaquant peut lire, modifier et ré-envoyer toutes les données, car il a le contrôle total de la session. C’est l’attaque de l’homme du milieu (Man-in-the-Middle).

Le certificat empêche cette attaque car il permet de vérifier l’identité du serveur. Votre navigateur ne fait pas confiance à n’importe quelle clé publique ; il ne fait confiance qu’aux clés publiques qui sont scellées par un certificat signé par une autorité de certification reconnue. Si l’attaquant essaie de vous envoyer son propre certificat, votre navigateur rejettera la connexion car le certificat ne sera pas valide ou ne correspondra pas au site que vous essayez d’atteindre.

1. Définition et rôle d’un certificat

a. Définition

Un certificat numérique est un document électronique signé numériquement par une autorité de confiance, appelé Autorité de Certification (CA -Certificate Authority). Il a pour but de lier une clé publique à une identité (une personne, une organisation, un site web, un service, un logiciel...