EdDSA
# EdDSA

EdDSA (anglais : Edwards-curve Digital Signature Algorithm (algorithme de signature numérique Courbe d'Edwards), à ne pas confondre avec ecDSA), est, dans le domaine de la cryptographie asymétrique, un schéma de signature numérique utilisant une variante de la cryptographie sur les courbes elliptiques basée sur les courbes d'Edwards tordues. Il a été conçu pour fournir de bonnes performances tout en évitant les problèmes de sécurité qui sont apparus dans les autres schémas de signatures électroniques. Il a été développé par une équipe dirigée par Daniel J. Bernstein et incluant Niels Duif, Tanja Lange, Peter Schwabe et Bo-Yin Yang.

## Fonctionnement

Ed25519 est une implémentation spécifique de EdDSA, utilisant la Courbe d'Edwards tordue :

    $-x^{2}+y^{2}=1-{\frac {121665}{121666}}x^{2}y^{2}$.

Cette courbe est une équivalente birationnelle (en) à la courbe de Montgomery, connue sous le nom de « Curve25519 ». L'équipe de Bernstein a optimisé Ed25519 pour les processeurs 64-bit x86 des familles de microarchitecture Nehalem et Westmere, permettant une génération de clé, une signature de document et une vérification rapides. Les vérifications peuvent être effectuées par lots de 64 signatures pour un débit encore plus élevé. Ed25519 a pour but de fournir une résistance aux attaques comparable à celle des chiffrements de 128-bits de qualité. Les clés publiques sont encodées sur 256 bits (32 octets) de long et les signatures sont deux fois plus longues.

Parmi les fonctionnalités de Ed25519, on peut citer l'élimination des opérations de branchement conditionnelles et des étapes d'indexation des tables qui dépendent des données et pourraient les révéler, immunisant ainsi l'algorithme contre les attaques par canal auxiliaire. Comme les autres algorithmes de signature numérique, EdDSA requiert une valeur secrète appelée nonce cryptographique, unique pour chaque signature, EdDSA calcule ce nonce de façon déterministe, comme étant le résultat du hachage des clés secrètes et du message, plutôt que de dépendre d'un générateur de nombre aléatoire. Cela réduit les risques d'une attaque sur le générateur de nombres aléatoires, sans l'éliminer complètement lorsque des nombres aléatoires sont utilisés en amont pour la génération des clés.

Le logiciel libre OpenSSH permet d'utiliser cet algorithme de signature depuis sa version 6.5 (janvier 2014) et deux brouillons sont en cours d'élaboration à l'IETF :

* Le premier depuis l'automne 2013 pour une éventuelle mise à jour des RFC 5246 (TLS 1.2) et RFC 4492 (Elliptic Curve Cryptography for TLS) avec l'appui d'un des auteurs de la bibliothèque PolarSSL.
* Le second, depuis mars 2014 pour l'utilisation de ce nouveau format de signature dans les enregistrements SSHFP des DNS, étendant le RFC 4255. Il s'agit d'une empreinte permettant de s'assurer, grâce à un enregistrement DNS, de l'authenticité de la clé publique fournie par un serveur SSH, avant de l'accepter. Pour être efficace, la connexion au serveur DNS doit également utiliser DNSSEC.
