El esquema de firmas criptográficas EdDSA es uno de los sistemas de firmas digitales criptográficas más seguros del momento y cuya evolución no se detiene. En la actualidad EdDSA está demostrando claramente lo que promete, seguridad, eficiencia y rapidez.
Existen varios esquemas de firmas criptográficas y entre ellos uno de los más importantes es EdDSA. Este esquema fue creado para firmar digital e inequívocamente un documento o información. Esto con el objetivo de reconocer su autenticidad u origen del mismo. Para lograr esto, EdDSA hace uso de técnicas criptográficas asimétricas muy potentes. Todo ello con el fin de asegurar que esta firma digital no puede ser duplicada.
Para verlo de forma más sencilla, piense en EdDSA como un sello para cartas que no puede ser duplicado. Un sello que al mismo tiempo genera una impronta distinta para cada carta que usted emite y dirige a sus destinatarios. Impronta que le permite a sus destinatarios verificar que efectivamente esa carta fue hecha y firmada por su persona. ¿Le agrada la idea?. Pues bien eso es lo que precisamente hace EdDSA y de allí su enorme potencia y capacidad de uso.
Por ejemplo, se puede usar EdDSA para garantizar la autenticidad de documentos digitales. Una vez creado un documento digital y firmado, la firma digital crea una huella única para dicho documento. Una manipulación del mismo por pequeña que sea inválida dicha firma. De esta forma, el documento es protegido contra manipulaciones y se garantiza su autenticidad frente a toda situación.
La creación de EdDSA fue el resultado del trabajo de Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe y Bo-Yin Yang. Ellos unieron la tecnología de DSA y ECDSA, a la que aplicaron una nueva curva elíptica que garantiza seguridad y rendimiento. El primer documento de EdDSA fue presentado en el año 2011 y toda su especificación técnica es de dominio público.
Características técnicas
EdDSA está lleno de características que lo hacen único frente a otras opciones. Entre estas podemos destacar:
- Ofrece un sistema de verificación de firmas mucho más rápido y computacionalmente eficiente. Eso significa que necesita poco poder de cómputo para realizar verificaciones y puede ser usado en dispositivos poco potentes.
- Tiene una capacidad de verificación por lotes más rápida. Esta es una características relacionada con la anterior. El hecho de consumir poca potencia para realizar una verificación hace que un lote sea mucho menos costoso de verificar. Pero también está relacionado con la eficiencia. El algoritmo de EdDSA es muy amigable con las caches de CPU. Esto permite que el impacto sobre las mismas sea mínimo y la velocidad de verificación aumente.
- El sistema de firmado digital es muy rápido. El proceso de lectura, verificación y firmado del documento es casi instantáneo.
- Ofrece una rápida generación de claves pública y privada. La generación de claves es casi tan rápida como la firma.
- El esquema de firmas ofrece un alto nivel de seguridad. El nivel de seguridad de EdDSA es equiparable al de sistemas como RSA y ECDSA. Por ejemplo, romper una firma EdDSA bien construida podría llevar cerca de 4 millones de años o requerir de un computador cuántico.
- Resistencia a las colisiones. Las colisiones de la función hash no rompen este sistema. Esto agrega una capa de defensa contra la posibilidad de debilidad en la función hash seleccionada.
- Las firmas y claves generadas por EdDSA son de pequeño tamaño. Una firma de EdDSA ocupa unos 64 bytes de datos. Por otro lado, las claves ocupan la mitad de ese tamaño.Esto hace perfecto al sistema para ser aplicado en sistemas con reducido ancho de banda, almacenamiento y potencia.
¿Cómo funcionan las firmas EdDSA?
El proceso de funcionamiento de EdDSA está dividido en varias etapas entre las cuales tenemos:
Elección del algoritmo
En primer lugar debemos elegir el algoritmo a usar para crear y utilizar nuestra firma EdDSA. A grandes rasgos existen dos algoritmos cuya diferencia mayoritaria está enmarcada en la curva elíptica que usa. Estas curvas elípticas son las Ed25519 y Ed448. En el caso de Ed25519 su nivel de seguridad es muy alto y comparable con opciones como RSA y ECDSA. Pero Ed448 va un poco más allá entregando un nivel de seguridad claramente superior. Sin embargo, Ed448 es incompatible con Ed25519 y es más compleja de implementar.
En cualquier caso, el pilar de funcionamiento de EdDSA es la elección de su curva y el nivel de seguridad requerido.
Generación de claves
Una vez elegimos nuestra curva comenzamos la generación de las clave pública y clave privada. Si EdDSA es un sistema de criptografía asimétrica y es precisamente este modelo lo que permite explotar su potencial. En este punto, la generación de claves sigue el mismo esquema de generación que cualquier sistema asimétrico. En primer lugar, el entorno debe tener un generador de número aleatorios y un pool de entropía seguro. Esto asegura la calidad de los números aleatorios aplicados a la curva elíptica y su resultado único.
Comprobado este punto se inicia la generación de la clave privada. Esta clave es la que permitirá al usuario crear las firmas criptográficas seguras en todo momento. Luego de generar la clave privada se inicia la creación de la clave pública. Esta última se genera en un proceso de hash de la clave privada usando SHA-512. Una vez se realiza el hash se realiza una codificación octal al número generado por la curva elíptica. El resultado es la clave pública que podemos disponer para que otros puedan verificar los documentos que firmamos. De esta forma, mantenemos la seguridad del sistema y nuestra clave privada, el origen de nuestra firma digital.
Firmado y Verificación
El firmado usando EdDSA es bastante sencillo pero eficaz y seguro. El proceso consta de tomar la información que queremos firmar y crear un hash de la misma. Este hash garantiza que la clave aleatoria para generar la clave pública sea completamente distinta en cada momento. Esta clave aleatoria luego es aplicada a la formulación de la curva elíptica la cual produce la firma del documento.
De esta forma se garantiza:
- Cada documento genera una «huella digital» única en forma de un hash SHA-512. Se usa SHA-512 para agregar mayor seguridad y evitar colisiones o hash repetidos. Esta huella digital o hash se usa luego para generar la clave aleatorio que será usada para generar la firma digital de dicho documento.
- El proceso de usar SHA-512 y generar una clave aleatorio única para cada documento aumenta la seguridad. De esta forma, cada firma es única para cada documento y sigue siendo verificable públicamente.
Como pueden ver el funcionamiento de EdDSA no es nada complicado y de hecho ofrece seguridades que otros sistemas no. Esto convierte a EdDSA en un sistema de firmado digital muy potente y seguro.
Diferencias entre EdDSA y ECDSA
- Las curvas utilizadas por ambos sistemas son distintas. EdDSA utiliza las llamadas curvas elípticas de Edwards, mientras que ECDSA usa curvas elípticas más variadas.
- El proceso de generación de firmas es completamente distinto. ECDSA genera una firma única criptográficamente comprobable. Pero EdDSA genera firmas distintas para cada documento e igualmente comprobables. Esto es un salto en seguridad claramente observable. De hecho, ECDSA puede ser explotado completamente debido a esta falla, como pasó con el hack de PlayStation 3.
- Las firmas y claves de EdDSA son computacionalmente menos costosas que las de ECDSA. Además ambos elementos en EdDSA son más pequeños en tamaño que su contraparte ECDSA. Esto le da la ventaja de EdDSA de ser muy amigable con el poder de cómputo y el ancho de banda.
Usos en tecnología blockchain
La tecnología de EdDSA no está muy ampliamente extendida en la tecnología blockchain. Sin embargo, muchos proyectos han comenzado a plantearse una migración tecnológica hacia EdDSA debido a su potencial.
Por ejemplo Corda de R3 es uno de los grandes proyectos blockchain que tiene usan firmas EdDSA. De igual forma, otros proyectos prefieren usar EdDSA sobre ECDSA por razones de seguridad y optimización. Y las razones para esta elección son bastante obvias tomando en cuenta las capacidades de EdDSA.
Ciertamente la tecnología de EdDSA no está tan probada frente a opciones como RSA y ECDSA, pero se ha hecho sitio. Un sitio que podremos ver ampliado en un futuro no muy lejano en la siguiente evolución de la tecnología blockchain.
¿Cuánto sabes, criptonauta?
¿EdDSA es un sistema de criptografía simétrica?¡FALSO!
EdDSA es un sistema de criptografía asimétrico. Acuérdate que en estos sistemas se utilizan pares de claves pública-privada y por tanto la clave para cifrar y la clave para descifrar, son distintas. Y no sólo eso, además es capaz de generar un clave pública en cada firma.
Ventajas y Desventajas
Ventajas
- Ofrecen un alto nivel de rapidez, optimización y seguridad en un solo aplicativo.
- Las firmas EdDSA son completamente deterministas. Esto significa que las firmas siempre contarán con las mismas propiedades y valores en todo momento.
- El sistema ofrece resistencia a ataque de canal lateral. Esta es una medida de seguridad que evita que las firmas puedan romperse por este tipo de ataque de fuerza bruta.
- Las fórmulas son válidas para todos los puntos de la curva, sin excepciones. Esto evita la necesidad de que EdDSA realice una costosa validación de puntos en valores públicos no confiables.
- EdDSA también proporciona resistencia a las colisiones, lo que significa que las colisiones de función hash no rompen este sistema (solo se aplica a PureEdDSA).
Desventajas
- Carece del nivel de pruebas y estandarización de otras opciones conocidas como RSA y ECDSA.
- Resulta un poco más compleja su comprensión de uso y análisis algorítmico dificultando el diseño de software.
- Son incompatibles con firmas como las ECDSA y RSA. Esto evita que se puedan hacer mix de firmas dentro de una estructura blockchain sin marcadores.