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.