Le paradigme de signature électronique (appelé aussi signature numérique) est un procédé
permettant de garantir l'authenticité de l'expéditeur (fonction
d'authentification) et de vérifier l'intégrité du message reçu.
La signature électronique assure également une fonction de non-répudiation,
c'est-à-dire qu'elle permet d'assurer que l'expéditeur a bien envoyé le message (autrement dit elle empêche
l'expéditeur de nier avoir expédié le message).
Une fonction de hachage (parfois appelée fonction de condensation) est une fonction
permettant d'obtenir un condensé (appelé aussi condensat ou haché ou en anglais
message digest) d'un texte,
c'est-à-dire une suite de caractères assez courte représentant le texte qu'il
condense. La fonction de hachage doit être telle qu'elle associe un et un seul haché à un texte en clair
(cela signifie que la moindre modification du document entraîne la modification de son haché).
D'autre part, il doit s'agir d'une fonction à sens unique (one-way function) afin qu'il soit
impossible de retrouver le message original à partir du condensé.
S’il existe un moyen de retrouver le message en clair à partir du haché, la fonction de hachage
est dite « à brèche secrète ».
Ainsi, le haché représente en quelque sorte l'empreinte digitale
(en anglais finger print) du document.
Les algorithmes de hachage les plus utilisés actuellement sont :
- MD5 (MD signifiant Message Digest).
Développé par Rivest en 1991, MD5 crée une empreinte digitale
de 128 bits à partir d'un texte de taille
arbitraire en le traitant par blocs de 512 bits. Il est courant de voir
des documents en téléchargement sur Internet accompagnés d'un fichier MD5, il s'agit du condensé
du document permettant de vérifier l'intégrité de ce dernier)
- SHA (pour Secure Hash Algorithm, pouvant être traduit par Algorithme de hachage sécurisé) crée
des empreintes d'une longueur de 160 bits
SHA-1 est une version améliorée de SHA datant de 1994 et produisant une empreinte de 160 bits
à partir d'un message d'une longueur maximale de 264 bits en le traitant par
blocs de 512 bits.
En expédiant un message accompagné de son haché, il est possible
de garantir l'intégrité d'un message, c'est-à-dire que le destinataire
peut vérifier que le message n'a pas été altéré (intentionnellement ou de
manière fortuite) durant la communication.
Lors de la réception du message, il suffit au destinataire de calculer le haché du message reçu et
de le comparer avec le haché accompagnant le document. Si le message (ou le haché) a été falsifié
durant la communication, les deux empreintes ne correspondront pas.
L'utilisation d'une fonction de hachage permet de vérifier que l'empreinte correspond bien au message
reçu, mais rien ne prouve que le message a bien été envoyé par celui que l'on croit
être l'expéditeur.
Ainsi, pour garantir l'authentification du message, il suffit à l'expéditeur de chiffrer (on dit généralement signer) le condensé
à l'aide de sa clé privée (le haché signé est appelé sceau) et d'envoyer le sceau au destinataire.
A réception du message, il suffit au destinataire de déchiffrer le sceau avec la clé
publique de l'expéditeur, puis de comparer le haché obtenu avec la fonction de hachage au haché reçu
en pièce jointe. Ce mécanisme de création de sceau est appelé scellement.
|