X25519 Criptografar

Ferramenta gratuita de X25519 Criptografar online. Processamento 100% local — seus dados nunca saem do seu dispositivo.

National Standards
Other
Saída

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.

Troca de chaves — não criptografia: O X25519 realiza apenas acordo de chaves. Ele produz um segredo compartilhado que ambas as partes podem calcular independentemente — por si só não criptografa nem descriptografa dados. Você deve usar o segredo compartilhado resultante como chave para uma cifra simétrica como ChaCha20-Poly1305 ou AES-256-GCM para alcançar confidencialidade.

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:

1. Gerar par de chavesClique em 'Gerar par de chaves' para criar um novo par de chaves X25519. A chave privada (64 caracteres hexadecimais) é preenchida no campo 'Minha chave privada'. A chave pública correspondente é armazenada internamente — copie-a e compartilhe-a com seu parceiro por outro canal.
2. Trocar chaves públicasEnvie sua chave pública (64 caracteres hexadecimais) ao seu interlocutor. Receba a dele e cole-a no campo 'Chave pública do interlocutor (Hex)'. Esta troca pode ocorrer por qualquer canal — a chave pública não é secreta.
3. Calcular segredo compartilhadoClique em 'Criptografar'. A ferramenta executa DH(sua_chave_privada, chave_pública_interlocutor) e exibe um segredo compartilhado hexadecimal de 64 caracteres (32 bytes). Seu interlocutor executa a mesma operação no sentido inverso e obtém o segredo compartilhado idêntico.
4. Usar o segredo compartilhado para criptografarIntroduza o segredo compartilhado (ou uma chave derivada por KDF) em uma cifra simétrica como AES-256-GCM ou ChaCha20-Poly1305. Em sistemas de produção, o segredo compartilhado não deve ser usado diretamente como chave de cifra sem derivação de chave (ex.: HKDF).
Apenas no navegador: Todas as operações de geração de chaves e cálculo DH são executadas inteiramente no seu navegador via WebCrypto API. Nenhuma chave é transmitida a um servidor.

Formato das chaves

As chaves X25519 nesta ferramenta usam um formato hexadecimal compacto:

Chave privada64 caracteres hexadecimais = 32 bytes. Um valor escalar aleatório. Mantenha em segredo. Exemplo: a3f1e2d4c5b6a7f8e9d0c1b2a3f4e5d6c7b8a9f0e1d2c3b4a5f6e7d8c9b0a1f2
Chave pública64 caracteres hexadecimais = 32 bytes. O resultado de multiplicar o ponto base na Curve25519 pelo escalar privado. Pode ser compartilhada publicamente. Exemplo: 5b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8
Segredo compartilhado64 caracteres hexadecimais = 32 bytes. Calculado como DH(minha_privada, pública_interlocutor) = DH(privada_interlocutor, minha_pública). Esta igualdade é o fundamento matemático da troca de chaves Diffie-Hellman.
Chaves não intercambiáveisAs chaves X25519 e Ed25519 parecem idênticas (64 caracteres hex, 32 bytes) mas usam representações internas diferentes e NÃO são intercambiáveis. Nunca use uma chave privada Ed25519 como chave privada X25519 ou vice-versa.

X25519 vs EdDSA (Ed25519)

X25519 e Ed25519 são ambos baseados em Curve25519, mas servem a propósitos criptográficos completamente diferentes:

PropósitoX25519: troca de chaves (Diffie-Hellman). Ed25519: assinaturas digitais (autenticação). Não podem substituir um ao outro.
Forma matemáticaX25519 usa a forma de Montgomery da Curve25519 para multiplicação escalar eficiente. Ed25519 usa a forma de Edwards torcida. Embora birracionalmente equivalentes, as codificações de chave diferem.
Chaves não intercambiáveisAs chaves NÃO são intercambiáveis apesar do mesmo comprimento em bytes. Usar um par de chaves Ed25519 para X25519 DH é um uso criptográfico indevido que pode comprometer a segurança.
Uso combinadoNa prática, protocolos como Signal usam ambos em conjunto: X25519 para acordo de chaves (estabelecendo a chave de sessão) e Ed25519 para autenticação (assinando a troca de chaves para prevenir ataques MITM).
Ferramentas relacionadas: Para assinaturas digitais, use a ferramenta EdDSA (Ed25519). Para criptografia simétrica com o segredo compartilhado, use ChaCha20-Poly1305 ou AES-256-GCM.

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.

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ❌ 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.

Discussão e Feedback

0 comentários
Eu