X25519(k, u) exécute une échelle de Montgomery en temps constant sur les seules coordonnées u. Une clé privée se compose de 32 octets aléatoires auxquels la fonction applique un clamping (mise à zéro des trois bits de poids faible et du bit 255, mise à un du bit 254) ; la clé publique est X25519(k, 9) (RFC 7748, §5). Comme la courbe et sa tordue sont toutes deux sûres, n’importe quelle chaîne de 32 octets peut servir de clé du pair sans validation de point, mais les entrées de petit ordre produisent un secret partagé entièrement nul, que les protocoles devraient détecter et rejeter (RFC 7748, §6.1).
Identifiants : groupe pris en charge TLS x25519 (29, 0x001D) ; SSH curve25519-sha256 (RFC 8731) ; OID 1.3.101.110 (RFC 8410) ; JOSE ECDH-ES avec une clé OKP et crv X25519 (RFC 8037) ; HPKE DHKEM(X25519, HKDF-SHA256), identifiant de KEM 0x0020 (RFC 9180). Sur un cœur d’Apple M4 Max, OpenSSL 3.6.5 calcule environ 52 000 opérations X25519 par seconde.
X25519 est un accord de clé, pas une signature : c’est Ed25519 qui signe. Les deux partagent une courbe, et les clés peuvent être converties d’une forme à l’autre, mais il est déconseillé d’utiliser une même clé pour les deux usages. L’algorithme de Shor casse X25519 : TLS l’associe donc désormais à ML-KEM-768 dans le groupe hybride X25519MLKEM768 (0x11EC, RFC 10024), et OpenSSH utilise par défaut mlkem768x25519-sha256.