EdDSA (Ed25519) Criptografar
Ferramenta gratuita de EdDSA (Ed25519) Criptografar online. Processamento 100% local — seus dados nunca saem do seu dispositivo.
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).
Passos de uso
Esta ferramenta suporta geração de pares de chaves Ed25519, assinatura de mensagens e verificação de assinaturas:
Formato de chave
As chaves Ed25519 nesta ferramenta usam um formato hexadecimal compacto:
Ed25519 vs RSA
Ed25519 e RSA são usados para assinaturas digitais, mas têm características muito diferentes:
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.
- ✅ 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.
- ✅ 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.
- ✅ 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.
- ✅ 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.
- ✅ 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.
- ❌ 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.