EdDSA (Ed25519) Cifrar y Descifrar
Herramienta gratuita de EdDSA (Ed25519) Cifrar y Descifrar en línea. Procesamiento 100% local — tus datos nunca salen de tu dispositivo.
El resultado se mostrará aquí...
Entrada → Cifrar
Usage Guide
Acerca de EdDSA (Ed25519)
EdDSA (Algoritmo de Firma Digital en Curva de Edwards) con Curve25519 es un esquema de firma digital moderno y de alto rendimiento, estandarizado en RFC 8032. Es el algoritmo de firma predeterminado en SSH (predeterminado en OpenSSH), ampliamente utilizado en certificados de cliente TLS 1.3, subclaves GPG, billeteras de criptomonedas (Solana, Cardano) y firma de JWT. Ed25519 proporciona seguridad de 128 bits con claves notablemente pequeñas (32 bytes cada una) y un rendimiento excepcional (~100.000 operaciones de firma/verificación por segundo).
Pasos de uso
Esta herramienta soporta generación de pares de claves Ed25519, firma de mensajes y verificación de firmas:
Formato de clave
Las claves Ed25519 en esta herramienta usan un formato hexadecimal compacto:
Ed25519 vs RSA
Ed25519 y RSA se utilizan ambos para firmas digitales, pero tienen características muy diferentes:
FAQ
Q: ¿Cuál es la diferencia entre EdDSA y ECDSA?
A: Ambos son algoritmos de firma de curva elíptica, pero difieren de maneras importantes. ECDSA (usado con curvas NIST P-256, P-384) requiere un nonce aleatorio (k) por firma — si el nonce se reutiliza o es débil, la clave privada puede recuperarse completamente. Así es exactamente como se extrajo la clave privada de la PlayStation 3 de Sony en 2010. EdDSA usa un nonce determinístico derivado de la clave privada y el hash del mensaje, haciendo matemáticamente imposible la reutilización del nonce. EdDSA también usa curvas de Edwards Torsionadas más seguras (Curve25519 para Ed25519) diseñadas para resistir ciertos ataques de canal lateral. Para nuevas implementaciones, EdDSA es fuertemente preferido sobre ECDSA.
Q: ¿Por qué la firma determinística es más segura?
A: En ECDSA, la seguridad de cada firma depende de un nonce criptográficamente aleatorio y fresco. Si un atacante obtiene dos firmas que usaron el mismo nonce (reutilización de nonce), o si el nonce tiene entropía insuficiente (aleatoriedad débil), la clave privada puede recuperarse algebraicamente usando ecuaciones simples. Esto no es teórico — ha roto sistemas reales (PS3, billeteras Bitcoin). La firma determinística de Ed25519 deriva el nonce de un hash de la semilla de la clave privada y el mensaje, por lo que siempre es único y no puede ser influenciado por fuentes de aleatoriedad externas. No hay generador de números aleatorios en la ruta de firma — eliminando toda una clase de vulnerabilidades.
Q: ¿Puedo usar EdDSA para cifrar datos?
A: No. EdDSA (Ed25519) es únicamente un algoritmo de firma digital — no puede cifrar ni descifrar datos. Firmar prueba autenticidad (quién creó el mensaje) pero no proporciona confidencialidad (cualquiera puede leer el mensaje). Para cifrar datos, use un cifrado simétrico como ChaCha20-Poly1305 o AES-256-GCM. Nota: X25519 (un algoritmo relacionado pero distinto basado en Curve25519) puede usarse para intercambio de claves (Diffie-Hellman), pero no es lo mismo que Ed25519 y las claves no son intercambiables.
Q: ¿Cómo genero una clave SSH Ed25519?
A: Use la herramienta de generación de claves integrada de OpenSSH:ssh-keygen -t ed25519 -C "su_email@ejemplo.com"
Esto genera ~/.ssh/id_ed25519 (clave privada) y ~/.ssh/id_ed25519.pub (clave pública). Ed25519 es el tipo de clave SSH recomendado desde OpenSSH 6.5 (2014) y ahora es el predeterminado en la mayoría de distribuciones. Las claves generadas por OpenSSH usan una codificación diferente (formato PEM/OpenSSH) al formato hex de esta herramienta, pero se basan en el mismo algoritmo criptográfico.
Q: ¿Qué contiene la firma Ed25519 de 64 bytes?
A: Una firma Ed25519 consiste en dos valores de 32 bytes: R (un punto de curva elíptica comprimido, derivado del nonce determinístico) y S (un valor escalar calculado del nonce, clave privada y hash del mensaje). Juntos, R y S forman la firma de 64 bytes. La verificación reconstruye R usando la clave pública, el mensaje y S, y comprueba que coincide con la R de la firma. Toda la verificación involucra solo aritmética de campo rápida en Curve25519 — sin exponenciación modular como RSA.
Q: ¿Es Ed25519 resistente a las computadoras cuánticas?
A: No — contra una computadora cuántica suficientemente grande. Una computadora cuántica ejecutando el algoritmo de Shor podría romper Ed25519 resolviendo el problema del logaritmo discreto en curvas elípticas. La misma amenaza aplica a RSA y ECDSA. Sin embargo, una computadora cuántica capaz de romper la seguridad de curva elíptica de 128 bits necesitaría miles de qubits lógicos con tasas de error muy bajas — muy más allá de la tecnología actual. Para firmas post-cuánticas, NIST ha estandarizado ML-DSA (antes CRYSTALS-Dilithium) y SLH-DSA (SPHINCS+). Ed25519 sigue siendo la mejor opción práctica para modelos de amenaza clásicos y está ampliamente desplegado en sistemas de producción hoy.
Use Cases
Recomendado: Claves de autenticación SSH
Ed25519 es el tipo de clave SSH recomendado desde OpenSSH 6.5 y ahora es el predeterminado en la mayoría de distribuciones Linux y macOS. Comparado con RSA-2048, las claves SSH Ed25519 son mucho más cortas (68 caracteres vs 400+), más rápidas de generar, más rápidas de autenticar y no son vulnerables a ataques de aleatoriedad débil. Use ssh-keygen -t ed25519 para todas las nuevas claves SSH. Agregue la clave pública a ~/.ssh/authorized_keys en los servidores.
- ✅ Usar ssh-keygen -t ed25519 para nuevas claves SSH
- ✅ Proteger la clave privada con una contraseña fuerte
- ✅ Distribuir la clave pública libremente a los servidores
- ❌ No usar RSA-1024; preferir Ed25519 sobre RSA-2048
Recomendado: Firma de código y distribución de software
Ed25519 es ideal para firmar versiones de software, imágenes de contenedores y actualizaciones de firmware. La propiedad de firma determinística asegura que la misma versión siempre produce la misma firma — haciendo confiable la verificación de builds reproducibles. Herramientas como Sigstore, minisign y signify usan Ed25519. GPG soporta subclaves de firma Ed25519. La firma compacta de 64 bytes es fácil de incrustar en archivos de metadatos o manifiestos.
- ✅ Firmar artefactos de release y checksums con Ed25519
- ✅ Usar minisign o signify para firma simple de archivos
- ✅ Incluir archivos de firma junto a los artefactos de release
- ❌ No distribuir software sin una firma criptográfica
Recomendado: Firma de JWT (algoritmo EdDSA)
Los JSON Web Tokens (JWT) soportan Ed25519 a través del identificador de algoritmo EdDSA (RFC 8037). Usar EdDSA para JWT es más seguro que HMAC-SHA256 (que requiere compartir la clave secreta) y más eficiente que RS256 (RSA). El servidor firma los tokens con la clave privada Ed25519; los clientes y servidores de recursos verifican con la clave pública. Esto habilita autenticación sin estado y escalable — no se necesita secreto compartido entre el servidor de auth y los servidores de recursos.
- ✅ Usar EdDSA (Ed25519) para JWT en nuevos proyectos
- ✅ Publicar la clave pública en un endpoint /.well-known/jwks.json
- ✅ Rotar las claves de firma periódicamente
- ❌ No usar HS256 (simétrico) cuando múltiples servicios necesitan verificar
Recomendado: Autenticación de peticiones API
Ed25519 puede autenticar peticiones API firmando un payload de solicitud (método + ruta + timestamp + hash del cuerpo) con una clave privada. El servidor API verifica la firma usando la clave pública registrada del cliente. Esto es más seguro que las claves API (que son secretos que pueden filtrarse) porque la clave privada nunca sale del cliente. Compare esto con HMAC-SHA256, que requiere que el servidor almacene el secreto — si el servidor se ve comprometido, todos los clientes se ven afectados.
- ✅ Firmar payloads de solicitud incluyendo timestamps para prevenir ataques de replay
- ✅ Registrar claves públicas de cliente en el servidor (no se necesita compartir secretos)
- ✅ Usar Ed25519 sobre HMAC cuando el servidor no debe conocer secretos del cliente
- 💡 Incluir un nonce o timestamp en el payload firmado
Aceptable: Firmas de billetera de criptomonedas
Ed25519 es el algoritmo de firma nativo para varias criptomonedas incluyendo Solana, Cardano, Stellar y Near Protocol. Las direcciones de billetera se derivan de claves públicas Ed25519. Las transacciones se firman con la clave privada correspondiente. Este es un caso de uso legítimo e importante, pero tenga en cuenta que las claves privadas de criptomonedas requieren almacenamiento extra cuidadoso (billeteras hardware, enclaves seguros) — una clave privada perdida o robada significa pérdida permanente de fondos.
- ✅ Usar billeteras hardware (Ledger, Trezor) para claves de alto valor
- ✅ Hacer copias de seguridad de frases semilla en almacenamiento offline seguro
- ❌ No almacenar claves privadas de criptomonedas en archivos de texto plano
- ❌ No usar esta herramienta de navegador para claves de billetera de producción
No recomendado: Cifrado de datos
Ed25519 no puede cifrar datos — intentar usarlo para cifrado es un uso fundamentalmente incorrecto del algoritmo. Ed25519 es un algoritmo de firma: toma un mensaje y produce una firma que prueba autenticidad. No transforma el mensaje en texto cifrado. Para comunicación confidencial, use ChaCha20-Poly1305 o AES-256-GCM. Si necesita cifrado asimétrico, use RSA.
- ❌ No usar Ed25519 para cifrado de datos
- ✅ Usar AES-256-GCM o ChaCha20-Poly1305 para cifrado simétrico
- ✅ Usar RSA-OAEP para cifrado asimétrico
- 💡 Firmar ≠ Cifrar — sirven diferentes objetivos de seguridad
Resumen de mejores prácticas
- Ed25519 es un algoritmo de firma — prueba autenticidad pero no cifra. Use AES-256-GCM o ChaCha20-Poly1305 para confidencialidad.
- Prefiera Ed25519 sobre RSA y ECDSA para todos los nuevos casos de uso de firma: claves más pequeñas, operaciones más rápidas, firma determinística.
- La clave privada (64 caracteres hex) debe mantenerse en secreto. La clave pública (64 caracteres hex) puede distribuirse libremente.
- Verifique firmas usando el formato de entrada 'mensaje|firma_Base64'. El separador de tubería es requerido.
- Para SSH, use ssh-keygen -t ed25519. Ed25519 es el estándar moderno recomendado por OpenSSH, NIST y las principales guías de seguridad.