Pular para o conteúdo
ecdsa.com
RecomendadaMontgomery

curve25519

A Curve25519 é a curva de Montgomery por trás do X25519, a troca de chaves padrão do TLS 1.3, do SSH e do WireGuard.

curve25519 é uma curva de Montgomery By² = x³ + Ax² + x sobre um campo primo de 255 bits com um subgrupo de ordem prima de 253 bits e cofator 8; o nível de segurança estimado é de 128 bits. Status: recomendada para sistemas novos.

A Curve25519 é a curva de Montgomery y² = x³ + 486662x² + x sobre o primo 2^255 − 19, projetada por Daniel J. Bernstein em 2006 e especificada na RFC 7748. O grupo dela tem ordem 8·n, com n primo de 253 bits, o que dá cerca de 128 bits de segurança, e a torção quadrática dela também é segura.

O X25519, a função Diffie–Hellman sobre esta curva, usa apenas coordenadas u: as chaves são strings de 32 bytes, e as chaves privadas passam pelo “clamping” que a RFC 7748 §5 prescreve, para que o cofator não possa vazar informações. A função aceita quaisquer 32 bytes como chave pública; entradas de ordem baixa produzem um segredo compartilhado só de zeros, e convém que os protocolos o rejeitem.

O TLS 1.3 lista o x25519 como grupo recomendado e o usa como a metade clássica do híbrido X25519MLKEM768; o SSH o usa como curve25519-sha256 (RFC 8731), e o WireGuard, o Signal e o age são construídos sobre ele. A gêmea da curva na forma de Edwards torcida é a edwards25519, usada nas assinaturas Ed25519.

Nomes nos padrões

PadrãoNome
RFC 7748curve25519
RFC 7748 / RFC 8410X25519
SSHcurve25519-sha256

Identificadores de objeto

Parâmetros de domínio

campo primo de 255 bits · cerca de 128 bits de segurança

Primo p do campo
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
Coeficiente a
0x76d06
Coeficiente b
0x1
Coordenada x do ponto base
0x9
Coordenada y do ponto base
0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9
Ordem n do ponto base
0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
Cofator h
0x8

Usada em

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

Identificadores em registros

Grupos suportados do TLS
x25519 0x001DMLKEM512X25519 0x11EAX25519MLKEM768 0x11ECX25519Kyber768Draft00 0x6399
Algoritmos JOSE
HPKE-3HPKE-3-KEHPKE-4
Curvas JWK
X25519
Curvas elípticas COSE
X25519 4
Métodos de troca de chaves SSH
curve25519-sha256gss-curve25519-sha256-*mlkem768x25519-sha256sntrup761x25519-sha512
Identificadores de KEM do HPKE
DHKEM(X25519, HKDF-SHA256) 0x0020DHKEM(X25519+Elligator, HKDF-SHA256) 0x0022X25519Kyber768Draft00 0x0030X-Wing 0x647A

Padrões e referências

Todas as curvas