Cours 10 - Signature Numerique
Cours 10 - Signature Numerique
Cours 10 - Signature Numerique
La Signature Numérique
Les applications des signatures numériques vont des certificats numériques pour un
commerce électronique sécurisé à la signature légale de contrats pour sécuriser les mises à
jour logicielles.
En particulier, ils fournissent une méthode pour garantir qu'un message est authentique
pour un utilisateur, c'est-à-dire qu'il provient bien de la personne qui prétend avoir généré le
message.
Les systèmes de chiffrement que nous avons rencontrés jusqu'à présent avaient deux
objectifs principaux : soit chiffrer des données (par exemple, avec le chiffrement AES, 3DES
ou RSA), soit établir une clé partagée (par exemple, avec l'échange de clés Diffie-Hellman ou
à courbe elliptique).
Comme pour les signatures manuscrites conventionnelles, seule la personne qui crée un
message numérique doit être capable de générer une signature valide.
L’idée de base est que la personne qui signe le message utilise une clé privée et que le
destinataire utilise la clé publique correspondante.
Chacune des trois familles populaires d'algorithmes à clé publique, à savoir la factorisation,
les logarithmes discrets et les courbes elliptiques, nous permet de construire des signatures
numériques. Dans la suite de ce cours, nous découvrirons la plupart des systèmes de
signature présentant un intérêt pratique.
Sa sécurité repose sur la difficulté de factoriser un produit de deux grands nombres premiers
(le problème de la factorisation des nombres entiers).
Depuis sa première description en 1978, le schéma de signature RSA est apparu comme le
schéma de signature numérique le plus largement utilisé en pratique.
Comme indiqué précédemment, n est généralement compris entre 1 024 et 3 072 bits.
Même si une telle longueur de signature ne pose pas de problème dans la plupart des
applications Internet, elle peut s'avérer indésirable dans les systèmes dont la bande
passante et/ou l'énergie sont limitées, par exemple les téléphones mobiles.
Le processus de génération de clé est identique à celui que nous avons utilisé pour le
cryptage RSA.
Les techniques d'accélération pour RSA sont également applicables au système de signature
numérique.
Les clés publiques courtes e sont particulièrement intéressantes, par exemple le choix e =
216 + 1. Cela fait de la vérification une opération très rapide.
Étant donné que dans de nombreux scénarios pratiques, un message n’est signé qu’une
seule fois mais vérifié plusieurs fois, le fait que la vérification soit très rapide est utile.
En particulier, le nombre premier p doit avoir une longueur d'au moins 1024 bits.
La signature est constituée de la paire (r,s). Les deux ont à peu près la même
longueur de bits que p, de sorte que la longueur totale du paquet (x,(r,s)) est
environ trois fois plus longue que le message x.
Au lieu de cela, une variante beaucoup plus populaire est utilisée, connue sous le
nom d’algorithme de signature numérique (DSA).
Il s'agit d'un standard proposé par le NIST (National Institute of Standards and
Technology).
Ses principaux avantages par rapport au schéma de signature Elgamal sont que la
signature ne fait que 320 bits et que certaines des attaques pouvant menacer le
schéma Elgamal ne sont pas applicables sur DSA.
Notez que des longueurs de bits plus longues sont également possibles.
Étant donné que chacun des deux paramètres ne fait que 160 bits, la longueur
totale de la signature est de 320 bits.
À l'aide des clés publique et privée, la signature d'un message x est calculée
comme suit :
Le vérificateur n'accepte une signature (r,s) que si v ≡ r mod q est satisfaite. Sinon,
la vérification échoue.
Dans ce cas, le message ou la signature peut avoir été modifié ou le vérificateur
n'est pas en possession de la bonne clé publique. Dans tous les cas, la signature
doit être considérée comme invalide.
Notez que nous avons mis en place un problème de logarithme discret où l'entier d est la clé
privée et le résultat de la multiplication scalaire, le point B, est la clé publique. Semblable au DSA,
le groupe cyclique a un ordre q qui doit avoir une taille d'au moins 160 bits ou plus pour des
niveaux de sécurité plus élevés.
O. R. Merad Boudia Sécurité Informatique 21
Signature
Comme DSA, une signature ECDSA se compose d'une paire d'entiers (r,s). Chaque valeur a la
même longueur de bits que q, ce qui donne des signatures assez compactes. À l'aide des
clés publique et privée, la signature d'un message x est calculée comme suit :
La longueur de sortie de la fonction de hachage doit être au moins aussi longue que q.
Le vérificateur n'accepte une signature (r,s) que si le xP a la même valeur que le paramètre
de signature r modulo q.
Livre : Tout sur la sécurité informatique. J-F. Pillou et J-P. Bay, DUNOD, 2013.