EdDSA (Ed25519) Criptografar

Ferramenta gratuita de EdDSA (Ed25519) 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 EdDSA (Ed25519)

EdDSA (Algoritmo de Assinatura Digital em Curva de Edwards) com Curve25519 é um esquema de assinatura digital moderno e de alto desempenho, padronizado na RFC 8032. É o algoritmo de assinatura padrão para SSH (padrão do OpenSSH), amplamente utilizado em certificados de cliente TLS 1.3, subchaves GPG, carteiras de criptomoedas (Solana, Cardano) e assinatura de JWT. O Ed25519 fornece segurança de 128 bits com chaves notavelmente pequenas (32 bytes cada) e desempenho excepcional (~100.000 operações de assinatura/verificação por segundo).

Algoritmo de assinatura — Não de cifração: Ed25519 é um algoritmo de assinatura digital. Ele prova que uma mensagem foi assinada pelo detentor de uma chave privada específica — ele não cifra dados. Para manter a confidencialidade dos dados, combine assinaturas Ed25519 com uma cifra simétrica como ChaCha20-Poly1305 ou AES-256-GCM.

Passos de uso

Esta ferramenta suporta geração de pares de chaves Ed25519, assinatura de mensagens e verificação de assinaturas:

1. Gerar par de chavesClique em 'Gerar par de chaves' para criar um par de chave privada/pública vinculado. Chave privada: 64 caracteres hexadecimais (semente de 32 bytes). Chave pública: 64 caracteres hexadecimais (ponto de curva comprimido de 32 bytes).
2. Assinar uma mensagemSelecione o modo 'Cifrar (Assinar)'. Digite o texto da mensagem no campo de entrada e cole a chave privada (64 chars hex) no parâmetro de chave. Clique em 'Cifrar' — a saída é uma assinatura de 64 bytes codificada em Base64.
3. Verificar uma assinaturaSelecione o modo 'Decifrar (Verificar)'. Digite a entrada como 'mensagem|assinatura_Base64' (separada por pipe). Cole a chave pública (64 chars hex) no parâmetro de chave. Clique em 'Decifrar' — a saída será '✓ Assinatura verificada' ou um erro.
4. Armazenamento seguro de chavesSalve a chave privada em um local seguro (gerenciador de senhas, cofre cifrado). A chave pública pode ser compartilhada livremente. Perder a chave privada significa perder permanentemente a capacidade de assinar — não há recuperação.
Apenas no navegador: Todas as operações de geração de chaves e assinatura são executadas inteiramente no seu navegador usando a API WebCrypto. Nenhuma chave ou mensagem é transmitida a um servidor.

Formato de chave

As chaves Ed25519 nesta ferramenta usam um formato hexadecimal compacto:

Chave privada64 caracteres hexadecimais = 32 bytes. Esta é a semente a partir da qual a chave de assinatura completa é derivada deterministicamente. Deve ser mantida em segredo. Exemplo: a3f1e2d4c5b6...
Chave pública64 caracteres hexadecimais = 32 bytes. Este é o ponto comprimido na Curve25519 correspondente à chave privada. Pode ser compartilhado publicamente. Exemplo: 5b8c9d0e1f2a...
AssinaturaValor de 64 bytes codificado em Base64 (512 bits). As assinaturas Ed25519 são determinísticas — assinar a mesma mensagem com a mesma chave privada sempre produz a mesma assinatura.
Formato de entrada para verificaçãoAo verificar, o campo de entrada deve conter a mensagem e a assinatura unidas por um caractere pipe: mensagem|assinatura_Base64

Ed25519 vs RSA

Ed25519 e RSA são usados para assinaturas digitais, mas têm características muito diferentes:

Tamanho da chaveEd25519: 32 bytes (256 bits). RSA-3072 atinge segurança equivalente com uma chave de 384 bytes — 12× maior. Chaves menores significam transmissão mais rápida e menor overhead de armazenamento.
DesempenhoEd25519 assina e verifica aproximadamente 100× mais rápido que RSA-2048 no mesmo hardware. Isso importa para sistemas de alto rendimento como servidores de autenticação.
Modelo de segurançaEd25519 usa assinatura determinística — nenhum nonce aleatório é necessário. RSA-PSS requer aleatoriedade segura; aleatoriedade fraca pode enfraquecer assinaturas RSA. Ed25519 elimina completamente essa classe de risco.
RecomendaçãoPrefira Ed25519 para todos os novos sistemas. Use RSA somente quando a compatibilidade legada for necessária (p. ex., clientes TLS mais antigos ou tokens de hardware que não suportam ECC).
Resistência quântica: Como RSA e ECDSA, Ed25519 é vulnerável a um computador quântico suficientemente poderoso executando o algoritmo de Shor. Para segurança pós-quântica, considere algoritmos padronizados pelo NIST como ML-DSA (CRYSTALS-Dilithium). No entanto, Ed25519 continua sendo a melhor escolha prática para modelos de ameaças clássicos (não quânticos) de hoje.

FAQ

Q: Qual é a diferença entre EdDSA e ECDSA?

A: Ambos são algoritmos de assinatura de curva elíptica, mas diferem de maneiras importantes. ECDSA (usado com curvas NIST P-256, P-384) requer um nonce aleatório (k) por assinatura — se o nonce for reutilizado ou fraco, a chave privada pode ser completamente recuperada. Foi exatamente assim que a chave privada do PlayStation 3 da Sony foi extraída em 2010. EdDSA usa um nonce derivado deterministicamente da chave privada e do hash da mensagem, tornando matematicamente impossível a reutilização do nonce. EdDSA também usa curvas Twisted Edwards mais seguras (Curve25519 para Ed25519) projetadas para resistir a certos ataques de canal lateral. Para novas implementações, EdDSA é fortemente preferido em relação ao ECDSA.

Q: Por que a assinatura determinística é mais segura?

A: No ECDSA, a segurança de cada assinatura depende de um nonce criptograficamente aleatório e fresco. Se um atacante obtiver duas assinaturas que usaram o mesmo nonce (reutilização de nonce), ou se o nonce tiver entropia insuficiente (aleatoriedade fraca), a chave privada pode ser algebricamente recuperada usando equações simples. Isso não é teórico — quebrou sistemas reais (PS3, carteiras Bitcoin). A assinatura determinística do Ed25519 deriva o nonce de um hash da semente da chave privada e da mensagem, portanto é sempre único e não pode ser influenciado por fontes de aleatoriedade externas. Não há gerador de números aleatórios no caminho de assinatura — eliminando toda uma classe de vulnerabilidades.

Q: Posso usar EdDSA para cifrar dados?

A: Não. EdDSA (Ed25519) é apenas um algoritmo de assinatura digital — não pode cifrar ou decifrar dados. Assinar prova autenticidade (quem criou a mensagem) mas não fornece confidencialidade (qualquer pessoa pode ler a mensagem). Para cifrar dados, use uma cifra simétrica como ChaCha20-Poly1305 ou AES-256-GCM. Nota: X25519 (um algoritmo relacionado mas distinto baseado em Curve25519) pode ser usado para troca de chaves (Diffie-Hellman), mas não é o mesmo que Ed25519 e as chaves não são intercambiáveis.

Q: Como gero uma chave SSH Ed25519?

A: Use a ferramenta de geração de chaves integrada do OpenSSH:
ssh-keygen -t ed25519 -C "seu_email@exemplo.com"
Isso gera ~/.ssh/id_ed25519 (chave privada) e ~/.ssh/id_ed25519.pub (chave pública). Ed25519 é o tipo de chave SSH recomendado desde o OpenSSH 6.5 (2014) e agora é o padrão na maioria das distribuições. As chaves geradas pelo OpenSSH usam uma codificação diferente (formato PEM/OpenSSH) do formato hex desta ferramenta, mas são baseadas no mesmo algoritmo criptográfico.

Q: O que está dentro da assinatura Ed25519 de 64 bytes?

A: Uma assinatura Ed25519 consiste em dois valores de 32 bytes: R (um ponto de curva elíptica comprimido, derivado do nonce determinístico) e S (um valor escalar calculado do nonce, chave privada e hash da mensagem). Juntos, R e S formam a assinatura de 64 bytes. A verificação reconstrói R usando a chave pública, a mensagem e S, e verifica se corresponde ao R na assinatura. Toda a verificação envolve apenas aritmética de campo rápida na Curve25519 — sem exponenciação modular como no RSA.

Q: Ed25519 é resistente a computadores quânticos?

A: Não — contra um computador quântico suficientemente grande. Um computador quântico executando o algoritmo de Shor poderia quebrar Ed25519 resolvendo o problema do logaritmo discreto em curvas elípticas. A mesma ameaça se aplica ao RSA e ECDSA. No entanto, um computador quântico capaz de quebrar a segurança de curva elíptica de 128 bits precisaria de milhares de qubits lógicos com taxas de erro muito baixas — muito além da tecnologia atual. Para assinaturas pós-quânticas, o NIST padronizou ML-DSA (anteriormente CRYSTALS-Dilithium) e SLH-DSA (SPHINCS+). Ed25519 continua sendo a melhor escolha prática para modelos de ameaças clássicos e está amplamente implantado em sistemas de produção hoje.

Use Cases

Recomendado: Chaves de autenticação SSH

Ed25519 é o tipo de chave SSH recomendado desde o OpenSSH 6.5 e agora é o padrão na maioria das distribuições Linux e macOS. Comparado com RSA-2048, as chaves SSH Ed25519 são muito mais curtas (68 caracteres vs 400+), mais rápidas de gerar, mais rápidas de autenticar e não são vulneráveis a ataques de aleatoriedade fraca. Use ssh-keygen -t ed25519 para todas as novas chaves SSH. Adicione a chave pública em ~/.ssh/authorized_keys nos servidores.

Recommended Configuration:
  • ✅ Usar ssh-keygen -t ed25519 para novas chaves SSH
  • ✅ Proteger a chave privada com uma frase-senha forte
  • ✅ Distribuir a chave pública livremente para servidores
  • ❌ Não usar RSA-1024; preferir Ed25519 em relação a RSA-2048
Recomendado: Assinatura de código e distribuição de software

Ed25519 é ideal para assinar lançamentos de software, imagens de contêiner e atualizações de firmware. A propriedade de assinatura determinística garante que a mesma versão sempre produz a mesma assinatura — tornando confiável a verificação de builds reproduzíveis. Ferramentas como Sigstore, minisign e signify usam Ed25519. GPG suporta subchaves de assinatura Ed25519. A assinatura compacta de 64 bytes é fácil de incorporar em arquivos de metadados ou manifesto.

Recommended Configuration:
  • ✅ Assinar artefatos de lançamento e checksums com Ed25519
  • ✅ Usar minisign ou signify para assinatura simples de arquivos
  • ✅ Incluir arquivos de assinatura junto com artefatos de lançamento
  • ❌ Não distribuir software sem uma assinatura criptográfica
Recomendado: Assinatura JWT (algoritmo EdDSA)

JSON Web Tokens (JWT) suportam Ed25519 via o identificador de algoritmo EdDSA (RFC 8037). Usar EdDSA para JWT é mais seguro que HMAC-SHA256 (que requer compartilhar a chave secreta) e mais eficiente que RS256 (RSA). O servidor assina tokens com a chave privada Ed25519; clientes e servidores de recursos verificam com a chave pública. Isso habilita autenticação sem estado e escalável — nenhum segredo compartilhado necessário entre o servidor de autenticação e os servidores de recursos.

Recommended Configuration:
  • ✅ Usar EdDSA (Ed25519) para JWT em novos projetos
  • ✅ Publicar a chave pública em um endpoint /.well-known/jwks.json
  • ✅ Rotacionar chaves de assinatura periodicamente
  • ❌ Não usar HS256 (simétrico) quando múltiplos serviços precisam verificar
Recomendado: Autenticação de requisições API

Ed25519 pode autenticar requisições API assinando um payload de requisição (método + caminho + timestamp + hash do corpo) com uma chave privada. O servidor API verifica a assinatura usando a chave pública registrada do cliente. Isso é mais seguro que chaves API (que são segredos que podem vazar) porque a chave privada nunca sai do cliente. Compare com HMAC-SHA256, que requer que o servidor armazene o segredo — se o servidor for comprometido, todos os clientes são afetados.

Recommended Configuration:
  • ✅ Assinar payloads de requisição com timestamps para prevenir ataques de replay
  • ✅ Registrar chaves públicas do cliente no servidor (sem compartilhamento de segredo)
  • ✅ Usar Ed25519 em vez de HMAC quando o servidor não deve conhecer segredos do cliente
  • 💡 Incluir um nonce ou timestamp no payload assinado
Aceitável: Assinaturas de carteira de criptomoedas

Ed25519 é o algoritmo de assinatura nativo para várias criptomoedas incluindo Solana, Cardano, Stellar e Near Protocol. Endereços de carteira são derivados de chaves públicas Ed25519. Transações são assinadas com a chave privada correspondente. Este é um caso de uso legítimo e importante, mas note que chaves privadas de criptomoedas requerem armazenamento extra-cuidadoso (carteiras de hardware, enclaves seguros) — uma chave privada perdida ou roubada significa perda permanente de fundos.

Recommended Configuration:
  • ✅ Usar carteiras de hardware (Ledger, Trezor) para chaves de alto valor
  • ✅ Fazer backup de frases-semente em armazenamento offline seguro
  • ❌ Não armazenar chaves privadas de criptomoedas em arquivos de texto simples
  • ❌ Não usar esta ferramenta de navegador para chaves de carteira de produção
Não recomendado: Cifração de dados

Ed25519 não pode cifrar dados — tentar usá-lo para cifração é um uso fundamentalmente incorreto do algoritmo. Ed25519 é um algoritmo de assinatura: ele recebe uma mensagem e produz uma assinatura que prova autenticidade. Ele não transforma a mensagem em texto cifrado. Para comunicação confidencial, use ChaCha20-Poly1305 ou AES-256-GCM. Se precisar de cifração assimétrica, use RSA.

Recommended Configuration:
  • ❌ Não usar Ed25519 para cifração de dados
  • ✅ Usar AES-256-GCM ou ChaCha20-Poly1305 para cifração simétrica
  • ✅ Usar RSA-OAEP para cifração assimétrica
  • 💡 Assinar ≠ Cifrar — servem objetivos de segurança diferentes

Resumo das melhores práticas

  • Ed25519 é um algoritmo de assinatura — prova autenticidade mas não cifra. Use AES-256-GCM ou ChaCha20-Poly1305 para confidencialidade.
  • Prefira Ed25519 em relação a RSA e ECDSA para todos os novos casos de uso de assinatura: chaves menores, operações mais rápidas, assinatura determinística.
  • A chave privada (64 chars hex) deve ser mantida em segredo. A chave pública (64 chars hex) pode ser distribuída livremente.
  • Verifique assinaturas usando o formato de entrada 'mensagem|assinatura_Base64'. O separador pipe é necessário.
  • Para SSH, use ssh-keygen -t ed25519. Ed25519 é o padrão moderno recomendado pelo OpenSSH, NIST e principais diretrizes de segurança.

Discussão e Feedback

0 comentários
Eu