Herramienta de Firma ECDSA
Algoritmo de Firma Digital de Curva Elíptica
Generar Par de Claves ECDSA
Genera un nuevo par de claves ECDSA aleatorio para la curva seleccionada. La clave privada debe mantenerse secreta; la clave pública puede compartirse.
Derivar Clave Pública de Clave Privada
Ingresa una clave privada existente para calcular la clave pública correspondiente.
Documentación
ECDSA (Algoritmo de Firma Digital de Curva Elíptica) es un esquema de firma digital ampliamente utilizado basado en criptografía de curva elíptica. Proporciona el mismo nivel de seguridad que RSA pero con tamaños de clave mucho más pequeños, haciéndolo ideal para entornos con recursos limitados como dispositivos móviles y redes blockchain.
Características Principales
- Tamaño de Clave Pequeño: ECDSA de 256 bits proporciona seguridad comparable a RSA de 3072 bits
- Operaciones Rápidas: Firma y verificación son significativamente más rápidas que RSA
- Firmas Compactas: Las firmas ECDSA son mucho más pequeñas que las firmas RSA
- Múltiples Curvas: Soporte para curvas secp256k1, P-256, P-384 y P-521
- Estándar de la Industria: Usado en Bitcoin, Ethereum, TLS y muchos otros protocolos
Curvas Soportadas
- secp256k1: La curva usada por Bitcoin y Ethereum. Seguridad de 256 bits, optimizada para implementación eficiente.
- P-256 (secp256r1): Curva estándar NIST, ampliamente usada en TLS, aplicaciones gubernamentales y WebCrypto API.
- P-384 (secp384r1): Curva estándar NIST que proporciona nivel de seguridad de 192 bits, usada en aplicaciones de alta seguridad.
- P-521 (secp521r1): Curva estándar NIST que proporciona nivel de seguridad de 256 bits, curva ECDSA de mayor seguridad.
Algoritmos Hash
- SHA-256: Elección estándar para la mayoría de aplicaciones. Usado con curvas P-256 y secp256k1.
- SHA-384: Recomendado para curva P-384 para coincidir con el nivel de seguridad.
- SHA-512: Recomendado para curva P-521. Proporciona seguridad de 256 bits.
- Keccak-256: Usado por Ethereum para firma de transacciones. No es SHA-3, sino el Keccak original con salida de 256 bits.
Casos de Uso Comunes
- Bitcoin y Blockchain: secp256k1 con doble hash SHA-256 para firma de transacciones.
- Ethereum: secp256k1 con Keccak-256 para firma de transacciones y mensajes.
- Certificados TLS/SSL: Curva P-256 para firmas de certificados HTTPS.
- Firma de Código: Firma releases de software para asegurar autenticidad e integridad.
- Autenticación API: Firma solicitudes API para prevenir manipulación y verificar identidad.
Mejores Prácticas de Seguridad
- Protege las Claves Privadas: Nunca expongas o compartas tu clave privada. Usa HSM para aplicaciones críticas.
- Usa Números Aleatorios Seguros: ECDSA requiere números aleatorios criptográficamente seguros. Esta herramienta usa Web Crypto API.
- Verifica las Claves Públicas: Siempre verifica las claves públicas a través de un canal confiable antes de aceptar firmas.
- Procesamiento del Lado del Cliente: Esta herramienta se ejecuta completamente en tu navegador. Tus claves nunca salen de tu dispositivo.
- Maleabilidad de Firma: Las firmas ECDSA pueden ser maleables. Usa firmas canónicas (low-S) cuando sea necesario.
ECDSA vs Otros Esquemas de Firma
| Característica | ECDSA (P-256) | RSA-2048 | Ed25519 |
|---|---|---|---|
| Tamaño Clave Privada | 32 bytes | 256 bytes | 32 bytes |
| Tamaño Clave Pública | 64 bytes | 256 bytes | 32 bytes |
| Tamaño Firma | 64 bytes | 256 bytes | 64 bytes |
| Velocidad de Firma | Rápido | Lento | Muy Rápido |
| Velocidad de Verificación | Moderado | Rápido | Muy Rápido |
| Determinístico | RFC 6979 | Sí | Sí |
Herramientas Relacionadas
Herramienta de Firma Ed25519
Generar pares de claves Ed25519, firmar mensajes y verificar firmas con el Algoritmo de Firma Digital de Curva Edwards
Cifrado/Descifrado RSA
Usar cifrado asimétrico RSA para cifrado con clave pública, descifrado con clave privada, firma digital y verificación
Generador de hash SHA
Herramienta en línea de generación de hash SHA que soporta SHA-1, SHA-256, SHA-384, SHA-512
Codificador/Decodificador JWT
Decodifique, verifique y genere JSON Web Tokens con soporte para múltiples algoritmos de firma