Citation
Nido García, Andrea del
(2019).
Análisis e implementación del algoritmo de Firma Digital de Curvas Elípticas Múltiples (MECDSA) para Blockchain.
Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.
Abstract
El proyecto que se propone para este Trabajo Fin de Grado trata sobre diversos sistemas criptográficos, centrándose principalmente en el cifrado de curva elíptica para las firmas digitales. Este método de cifrado puede encontrarse en diferentes sistemas informáticos que requieran seguridad, pero este documento se centrará principalmente en el utilizado para los sistemas blockchain. El principal algoritmo utilizado para las firmas digitales con curvas elípticas centrados en la blockchain es el algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm). Éste se estudiará en el presente escrito, sin embargo, el trabajo realizado se desarrollará en torno al algoritmo propuesto en el artículo “A Secure Multiple Elliptic Curves Digital Signature Algorithm for Blockchain” de Wei Bi, Xiaoyun Jia y Maolin Zheng [1], el cual versa sobre el sistema MECDSA (Multiple Elliptic Curve Digital Signature Algorithm). Además de analizar esta propuesta, se implementará dicho sistema en el lenguaje Java de forma local (en una única máquina) con la ayuda del entorno de desarrollo SageMath para determinadas funciones matemáticas. La principal motivación de este trabajo es desarrollar más a fondo el algoritmo MECDSA y llegar más allá tratando con la generación de curvas elípticas aleatorias para su desarrollo. Se analiza y se llega a la conclusión de que esta forma de firmar digitalmente en la blockchain es más seguro que utilizando curvas elípticas ya diseñadas por organismos gubernamentales o privados.---ABSTRACT---The proposed project for this Final Degree Project deals with the study of various cryptographic systems, focusing essentially on elliptic curve digital signatures for encryption. This encryption method can be found in different systems that require security, but this document centralizes mainly on used for blockchain systems. The main algorithm used for digital signatures with elliptic curves centered in Blockchain is the ECDSA algorithm (Elliptic Curve Digital Signature Algorithm), this will be studied in the present report, however, the task will take place around the algorithm proposed in the article “A Secure Multiple Elliptic Curves Digital Signature Algorithm for Blockchain” de Wei Bi, Xiaoyun Jia y Maolin Zheng [1], which is about MECDSA system (Multiple Elliptic Curve Digital Signature Algorithm). In addition to analysing this proposal, MECDSA will be implemented locally with the Java language (on a single machine) with the help of the development environment Sage Math for certain mathematical functions. The main motivation of this work is to develop more thoroughly the MECDSA algorithm and to go further dealing with the generation of random elliptic curves for its development. It is analysed and it is concluded that this way of signing digitally in the blockchain is safer than using elliptic curves already designed by governmental or private organizations.