Aller au contenu
ecdsa.com
RecommandéeMontgomery

curve25519

Curve25519 est la courbe de Montgomery sur laquelle repose X25519, l’échange de clés par défaut de TLS 1.3, de SSH et de WireGuard.

curve25519 est une courbe de Montgomery By² = x³ + Ax² + x sur un corps premier de 255 bits, avec un sous-groupe d’ordre premier de 253 bits et un cofacteur de 8 ; son niveau de sécurité estimé est de 128 bits. Statut : recommandée pour les nouveaux systèmes.

Curve25519 est la courbe de Montgomery y² = x³ + 486662x² + x définie modulo le nombre premier 2^255 − 19, conçue par Daniel J. Bernstein en 2006 et spécifiée dans la RFC 7748. Son groupe est d’ordre 8·n, où n est un nombre premier de 253 bits, ce qui donne environ 128 bits de sécurité, et sa tordue quadratique est elle aussi sûre.

X25519, la fonction Diffie–Hellman sur cette courbe, n’utilise que les coordonnées u : les clés sont des chaînes de 32 octets, et les clés privées sont « clampées » comme le prescrit la RFC 7748 (§5), afin que le cofacteur ne puisse faire fuir aucune information. La fonction accepte n’importe quelle suite de 32 octets comme clé publique ; les entrées d’ordre faible donnent un secret partagé entièrement nul, que les protocoles devraient rejeter.

TLS 1.3 classe x25519 parmi les groupes recommandés et l’utilise comme moitié classique de l’hybride X25519MLKEM768 ; SSH l’emploie sous le nom curve25519-sha256 (RFC 8731), et WireGuard, Signal et age reposent sur elle. Sa jumelle en forme d’Edwards tordue est edwards25519, utilisée pour les signatures Ed25519.

Noms dans les normes

NormeNom
RFC 7748curve25519
RFC 7748 / RFC 8410X25519
SSHcurve25519-sha256

Identifiants d’objet

Paramètres de domaine

corps premier de 255 bits · sécurité d’environ 128 bits

Nombre premier p du corps
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
Coefficient a
0x76d06
Coefficient b
0x1
Coordonnée x du point de base
0x9
Coordonnée y du point de base
0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9
Ordre n du point de base
0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
Cofacteur h
0x8

Utilisée dans

  • TLS 1.3 (x25519, X25519MLKEM768)
  • SSH (curve25519-sha256)
  • Signal
  • WireGuard
  • age
  • HPKE

Identifiants dans les registres

Groupes pris en charge par TLS
x25519 0x001DMLKEM512X25519 0x11EAX25519MLKEM768 0x11ECX25519Kyber768Draft00 0x6399
Algorithmes JOSE
HPKE-3HPKE-3-KEHPKE-4
Courbes JWK
X25519
Courbes elliptiques COSE
X25519 4
Méthodes d’échange de clés SSH
curve25519-sha256gss-curve25519-sha256-*mlkem768x25519-sha256sntrup761x25519-sha512
Identifiants de KEM HPKE
DHKEM(X25519, HKDF-SHA256) 0x0020DHKEM(X25519+Elligator, HKDF-SHA256) 0x0022X25519Kyber768Draft00 0x0030X-Wing 0x647A

Normes et références

Toutes les courbes