Aller au contenu
ecdsa.com

Signature numérique

Une valeur calculée à partir d’un message avec une clé privée, que toute personne disposant de la clé publique correspondante peut vérifier, et qui prouve que le message n’a pas été modifié et qu’il a été signé par le détenteur de la clé.
Autres graphiesdigital signatureelectronic signature (cryptographic)

Un schéma de signature se compose de trois algorithmes : la génération de clés, Sign(sk, m) et Verify(pk, m, σ). L’objectif de sécurité standard est EUF-CMA : même après avoir vu des signatures de messages de son choix, un attaquant ne peut toujours pas produire de signature valide pour un nouveau message. La notion plus forte SUF-CMA interdit en outre de produire une seconde signature d’un message déjà signé, ce qu’ECDSA ne garantit pas (voir malléabilité).

Une signature n’apporte ni confidentialité, ni fraîcheur (un message signé valide peut être rejoué s’il ne contient pas de nonce, d’horodatage ou d’audience), ni identité : elle lie un message à une clé, et autre chose (un certificat, un point de terminaison JWKS, known_hosts, une adresse de blockchain) doit lier la clé à une personne ou à un service.

Les tailles vont de 64 octets (Ed25519, ECDSA P-256 brut, BIP-340) à plusieurs kilo-octets pour les schémas post-quantiques (de 2420 à 4627 octets pour ML-DSA, de 7856 à 49 856 pour SLH-DSA), en passant par 256 à 512 octets pour RSA. Chaque format enveloppe différemment la même signature : octets bruts, DER, JWS, COSE_Sign1, SignedData de CMS, paquets de signature OpenPGP, SSHSIG.

Un code d’authentification de message comme HMAC prouve lui aussi l’intégrité, mais avec une clé partagée, si bien que chaque vérificateur aurait pu le produire ; voir HMAC vs signatures numériques.

Normes et références

Tous les termes