X25519 Criptografar
Ferramenta gratuita de X25519 Criptografar online. Processamento 100% local — seus dados nunca saem do seu dispositivo.
O resultado será exibido aqui...
Entrada → Criptografar
Usage Guide
Sobre X25519 (Curve25519 ECDH)
X25519 é a função de troca de chaves Diffie-Hellman baseada em Curve25519, padronizada na RFC 7748. É o algoritmo de troca de chaves de curva elíptica mais amplamente implantado no mundo — usado como troca de chaves padrão no TLS 1.3, WireGuard VPN, Signal Protocol e Noise Protocol Framework. O X25519 oferece ~128 bits de segurança com chaves de 32 bytes, é resistente a ataques de canal lateral e foi criado por Daniel J. Bernstein.
Passos de uso
Esta ferramenta calcula o segredo compartilhado Diffie-Hellman X25519 a partir da sua chave privada e da chave pública do seu interlocutor:
Formato das chaves
As chaves X25519 nesta ferramenta usam um formato hexadecimal compacto:
X25519 vs EdDSA (Ed25519)
X25519 e Ed25519 são ambos baseados em Curve25519, mas servem a propósitos criptográficos completamente diferentes:
FAQ
Q: Qual é a diferença entre X25519 e ECDH?
A: X25519 é ECDH — especificamente, Diffie-Hellman de curva elíptica instanciado sobre Curve25519, definido na RFC 7748. Comparado ao ECDH sobre curvas NIST (P-256, P-384), X25519 é mais rápido, tem uma implementação mais simples e segura (sem problemas de cofator, sem validação de pontos para entradas típicas), e foi projetado desde o início para resistir a ataques de implementação. Quando as pessoas dizem "ECDH com Curve25519" querem dizer X25519.
Q: As chaves X25519 e Ed25519 podem ser usadas de forma intercambiável?
A: Não. Embora X25519 e Ed25519 sejam baseados em Curve25519, usam representações matemáticas diferentes (forma de Montgomery vs. forma de Edwards torcida) e codificações de chave diferentes. Uma chave privada X25519 é um escalar bruto de 32 bytes; uma chave privada Ed25519 é uma semente de 32 bytes que é hasheada (SHA-512) antes do uso. Embora existam fórmulas de conversão entre os dois tipos de chave, usá-las de forma intercambiável sem conversão explícita é criptograficamente incorreto e pode vazar informações ou produzir resultados inválidos. Sempre gere pares de chaves separados para cada finalidade.
Q: Como criptografar dados com o segredo compartilhado?
A: O segredo compartilhado X25519 de 32 bytes deve ser passado por uma Função de Derivação de Chave (KDF) antes de ser usado como chave de cifra. Na prática, HKDF-SHA256 é a escolha mais comum (usada em TLS 1.3, Signal). Passe o segredo bruto como material de chave de entrada, inclua um salt e string de info específicos do protocolo, e derive 32 bytes para AES-256-GCM ou ChaCha20-Poly1305. Para casos de uso simples pode usar o segredo diretamente como chave AES-256 de 32 bytes, mas HKDF é fortemente recomendado em produção.
Q: X25519 oferece sigilo de encaminhamento (forward secrecy)?
A: Sim — quando usado com pares de chaves efêmeros. O sigilo de encaminhamento (também chamado Perfect Forward Secrecy, PFS) significa que comprometer uma chave de longo prazo não expõe chaves de sessão passadas. No TLS 1.3, ambas as partes geram novos pares de chaves X25519 para cada handshake (DH efêmero). Mesmo que um invasor obtenha posteriormente a chave privada de longo prazo de um servidor, não pode descriptografar tráfego gravado anteriormente porque as chaves X25519 efêmeras foram descartadas após o handshake. Chaves X25519 estáticas (reutilizadas) não oferecem sigilo de encaminhamento.
Q: X25519 é resistente a ataques quânticos?
A: Não — não contra um computador quântico suficientemente poderoso. Um computador quântico executando o algoritmo de Shor poderia quebrar o X25519 resolvendo o problema do logaritmo discreto de curva elíptica em tempo polinomial. Isso se aplica igualmente a todos os esquemas Diffie-Hellman de curva elíptica e campo finito. No entanto, o computador quântico necessário (milhares de qubits lógicos com correção de erros) ainda não existe. Para troca de chaves pós-quântica, o NIST padronizou o ML-KEM (anteriormente CRYSTALS-Kyber). TLS 1.3 no Chrome e Firefox já implanta troca de chaves híbrida X25519+ML-KEM.
Use Cases
Recomendado: Troca de chaves TLS 1.3
X25519 é o algoritmo de troca de chaves preferido no TLS 1.3 (RFC 8446) e é suportado por todos os principais navegadores e servidores. No TLS 1.3, cliente e servidor geram pares de chaves X25519 efêmeros, trocam chaves públicas no ClientHello/ServerHello e derivam chaves de handshake com HKDF. Isso fornece sigilo de encaminhamento e é concluído em uma única viagem de ida e volta. X25519 substituiu a troca de chaves RSA e variantes ECDH mais antigas na suíte de cifras obrigatória do TLS 1.3.
- ✅ Habilitar TLS 1.3 em todos os servidores — X25519 é incluído automaticamente
- ✅ X25519 fornece sigilo de encaminhamento em cada handshake TLS 1.3
- ✅ Suportado nativamente em OpenSSL, BoringSSL, NSS e todas as principais bibliotecas TLS
- ❌ Não usar troca de chaves RSA com TLS 1.2 — não tem sigilo de encaminhamento
Recomendado: WireGuard VPN
WireGuard usa X25519 como único mecanismo de troca de chaves. Cada par WireGuard tem um par de chaves X25519 estático (para autenticação) e gera pares de chaves X25519 efêmeros para cada handshake (para sigilo de encaminhamento). O protocolo também usa X25519 para mistura de chaves pré-compartilhadas e emprega o Noise Protocol Framework. O design minimalista do WireGuard — um algoritmo de troca de chaves, uma cifra simétrica (ChaCha20-Poly1305), um hash (BLAKE2s) — o torna auditável e rápido.
- ✅ X25519 é a única troca de chaves no WireGuard — nada a configurar
- ✅ Gerar par de chaves estático: wg genkey | tee private.key | wg pubkey > public.key
- ✅ WireGuard fornece sigilo de encaminhamento automático via pares de chaves efêmeros
- 💡 WireGuard combina: X25519 (troca de chaves) + ChaCha20-Poly1305 (criptografia) + BLAKE2s (hash)
Recomendado: Mensagens criptografadas de ponta a ponta (Signal, WhatsApp)
O Signal Protocol (usado por Signal, WhatsApp e muitos outros) usa X25519 extensivamente em seu algoritmo Double Ratchet e no acordo de chaves X3DH (Extended Triple Diffie-Hellman). O X3DH usa múltiplas operações DH X25519 para estabelecer chaves compartilhadas iniciais entre partes que podem estar offline. O Double Ratchet então deriva continuamente novas chaves do catraca X25519, fornecendo tanto sigilo de encaminhamento quanto recuperação após comprometimento. Isso é considerado o padrão ouro para mensagens seguras.
- ✅ X25519 é a base do acordo de chaves do Signal Protocol
- ✅ X3DH permite estabelecimento de chaves assíncrono (uma parte pode estar offline)
- ✅ Double Ratchet + X25519 fornece sigilo de encaminhamento e segurança pós-comprometimento
- 💡 WhatsApp, Wire, chats secretos do Facebook Messenger usam Signal Protocol
Recomendado: Criptografia híbrida (encapsulamento de chaves)
A criptografia híbrida usa X25519 para estabelecer um segredo compartilhado e depois criptografa os dados reais com uma cifra simétrica. Este padrão (chamado ECIES ou HPKE — Hybrid Public Key Encryption, RFC 9180) permite que qualquer pessoa com a chave pública X25519 do destinatário envie dados criptografados sem segredos pré-compartilhados. O remetente gera um par de chaves X25519 efêmero, calcula um segredo compartilhado com a chave pública do destinatário, deriva uma chave simétrica via HKDF, criptografa dados com ChaCha20-Poly1305 e envia a chave pública efêmera junto com o texto cifrado.
- ✅ Usar HPKE (RFC 9180) para criptografia híbrida padronizada com X25519
- ✅ Par de chaves efêmero do remetente garante sigilo de encaminhamento para cada mensagem
- ✅ Combinar: X25519 (troca de chaves) + HKDF (derivação de chave) + AES-256-GCM (criptografia)
- 💡 Este padrão é usado pelo age (ferramenta de criptografia de arquivos) e biblioteca Tink
Não recomendado: Usar X25519 sozinho para confidencialidade
X25519 apenas produz um segredo compartilhado — não criptografa dados. O segredo compartilhado em si não é texto cifrado; qualquer parte que realize o mesmo cálculo DH (com as chaves corretas) o obtém. Sem uma cifra simétrica aplicada por cima, seus dados permanecem em texto claro. Isso é um uso fundamentalmente incorreto do algoritmo. Sempre combine X25519 com AES-256-GCM ou ChaCha20-Poly1305 para realmente proteger dados.
- ❌ Não tratar o segredo compartilhado X25519 como texto cifrado — é uma chave, não dados criptografados
- ❌ Não pular a derivação de chave — processar o segredo com HKDF antes de usá-lo como chave de cifra
- ✅ X25519 + HKDF + AES-256-GCM é o padrão correto de criptografia híbrida
- 💡 X25519 resolve o problema de distribuição de chaves; cifra simétrica resolve confidencialidade de dados
Resumo das melhores práticas
- X25519 é um algoritmo de troca de chaves — produz um segredo compartilhado, não texto cifrado. Sempre combine com AES-256-GCM ou ChaCha20-Poly1305 para criptografar dados reais.
- Processe o segredo compartilhado X25519 via HKDF-SHA256 antes de usá-lo como chave de cifra simétrica em sistemas de produção.
- Use pares de chaves X25519 efêmeros (gere um novo par por sessão) para alcançar sigilo de encaminhamento.
- Não use chaves X25519 como chaves de assinatura Ed25519 ou vice-versa — embora ambas sejam de 32 bytes, as representações internas diferem.
- X25519 é o padrão para TLS 1.3, WireGuard e Signal Protocol — prefira-o ao ECDH antigo com curvas NIST para novas implementações.