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.

National Standards
Other
Salida

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).

Algoritmo de firma — No de cifrado: Ed25519 es un algoritmo de firma digital. Prueba que un mensaje fue firmado por el titular de una clave privada específica — no cifra datos. Para mantener la confidencialidad de los datos, combine las firmas Ed25519 con un cifrado simétrico como ChaCha20-Poly1305 o AES-256-GCM.

Pasos de uso

Esta herramienta soporta generación de pares de claves Ed25519, firma de mensajes y verificación de firmas:

1. Generar par de clavesHaga clic en 'Generar par de claves' para crear un par de clave privada/pública vinculado. Clave privada: 64 caracteres hexadecimales (semilla de 32 bytes). Clave pública: 64 caracteres hexadecimales (punto de curva comprimido de 32 bytes).
2. Firmar un mensajeSeleccione el modo 'Cifrar (Firmar)'. Ingrese el texto del mensaje en el campo de entrada y pegue la clave privada (64 caracteres hex) en el parámetro de clave. Haga clic en 'Cifrar' — la salida es una firma de 64 bytes codificada en Base64.
3. Verificar una firmaSeleccione el modo 'Descifrar (Verificar)'. Ingrese la entrada como 'mensaje|firma_Base64' (separada por tubería). Pegue la clave pública (64 caracteres hex) en el parámetro de clave. Haga clic en 'Descifrar' — la salida será '✓ Firma verificada' o un error.
4. Almacenamiento seguro de clavesGuarde la clave privada en un lugar seguro (gestor de contraseñas, bóveda cifrada). La clave pública puede compartirse libremente. Perder la clave privada significa perder permanentemente la capacidad de firmar — no hay recuperación.
Solo en el navegador: Todas las operaciones de generación de claves y firma se ejecutan completamente en su navegador usando la WebCrypto API. Ninguna clave o mensaje se transmite a un servidor.

Formato de clave

Las claves Ed25519 en esta herramienta usan un formato hexadecimal compacto:

Clave privada64 caracteres hexadecimales = 32 bytes. Esta es la semilla a partir de la cual se deriva determinísticamente la clave de firma completa. Debe mantenerse en secreto. Ejemplo: a3f1e2d4c5b6...
Clave pública64 caracteres hexadecimales = 32 bytes. Este es el punto comprimido en Curve25519 correspondiente a la clave privada. Se puede compartir públicamente. Ejemplo: 5b8c9d0e1f2a...
FirmaValor de 64 bytes codificado en Base64 (512 bits). Las firmas Ed25519 son determinísticas — firmar el mismo mensaje con la misma clave privada siempre produce la misma firma.
Formato de entrada para verificaciónAl verificar, el campo de entrada debe contener el mensaje y la firma unidos por un carácter de tubería: mensaje|firma_Base64

Ed25519 vs RSA

Ed25519 y RSA se utilizan ambos para firmas digitales, pero tienen características muy diferentes:

Tamaño de claveEd25519: 32 bytes (256 bits). RSA-3072 logra seguridad equivalente con una clave de 384 bytes — 12× más grande. Claves más pequeñas significa transmisión más rápida y menor overhead de almacenamiento.
RendimientoEd25519 firma y verifica aproximadamente 100× más rápido que RSA-2048 en el mismo hardware. Esto importa para sistemas de alto rendimiento como servidores de autenticación.
Modelo de seguridadEd25519 usa firma determinística — no se necesita nonce aleatorio. RSA-PSS requiere aleatoriedad segura; la aleatoriedad débil puede debilitar las firmas RSA. Ed25519 elimina completamente esta clase de riesgo.
RecomendaciónPrefiera Ed25519 para todos los nuevos sistemas. Use RSA solo cuando se requiera compatibilidad con sistemas heredados (p. ej., clientes TLS antiguos o tokens de hardware que no soportan ECC).
Resistencia cuántica: Al igual que RSA y ECDSA, Ed25519 es vulnerable a una computadora cuántica suficientemente potente que ejecute el algoritmo de Shor. Para seguridad post-cuántica, considere los algoritmos estandarizados por NIST como ML-DSA (CRYSTALS-Dilithium). Sin embargo, Ed25519 sigue siendo la mejor opción práctica para los modelos de amenaza clásicos (no cuánticos) actuales.

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.

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

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

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

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

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

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

Discusión y Comentarios

0 comentarios
Yo