Analysis and Programming of Cryptographic Systems Based On
Total Page:16
File Type:pdf, Size:1020Kb
ANALYSIS AND PROGRAMMING OF CRYPTOGRAPHIC SYSTEMS BASED ON ELLIPTIC CURVES ADEGREE’S THESIS SUBMITTED TO THE FACULTY OF THE ESCOLA TÈCNICA D’ENGINYERIA DE TELECOMUNICACIÓ DE BARCELONA UNIVERSITAT POLITÈCNICA DE CATALUNYA BY DIEGO MARTÍNEZ GILABERT In partial fulfilment of the requirements for the degree in TELEMATIC ENGINEERING ADVISOR: JOSÉ LUIS MUÑOZ TAPIA BARCELONA,OCTOBER 2014 2 ABSTRACT The purpose of this project is to review the current state of cryptographic systems, focusing in signatures schemes based on elliptic curves (such as Blind Signature, Aggregate Signature or Multisignature) and to implement examples of these systems in Python language. Cryptography is the practice and study of techniques for secure communication in the presence of third parties. The use of cryptography began thousands of years ago when classical methods of encryption were used to enhance the security of information transmisions however currently classical cryptographic methods are obsolete in terms of security due to technology advances, modern computers can decipher these encrypted messages in seconds. Nowadays one of the most promising topics in Cryptography is the use of Elliptic Curves over assymetric cryptography that allows to achive a lower key lenght with the same security properties which results as a greater strength-per-key-bit. RESUM El propòsit d’aquest projecte és revisar l’estat actual dels sistemes criptogràfics, centrant-se en els esquemes de sig- natures basats en corbes el·líptiques (tals com Blind Signature, Aggregate Signature o Multisignature) i implementar exemples d’aquests sistemes en llenguatge Python. La criptografia és la pràctica i l’estudi de tècniques per assegurar les comunicacions en presència de terceres entitats. L’ús de la criptografia va començar fa milers d’anys quan els mètodes clàssics d’encriptació eren usats per millorar la seguretat de les transmissions d’informació no obstant això actualment la criptografia clàssica està obsoleta en termes de seguretat a causa dels avanços de la tecnologia, els ordinadors moderns poden desxifrar aquests missatges encriptats en segons. Actualment un dels camps més prometedors en Criptografia és l’ús de Corbes El·líptiques en criptografia asimètrica que permet aconseguir una longitud menor de clau mantenint les mateixes propietats de seguretat el que resulta com una millor força per bit de la clau. RESUMEN El propósito de este proyecto es revisar el estado actual de los sistemas criptográficos, centrándose en los esquemas de firmas basados en curvas elípticas (tales como Blind Signature, Aggregate Signature o Multisignature) e implementar ejemplos de estos sistemas en lenguaje Python. La criptografía es la práctica y el estudio de técnicas para asegurar las comunicaciones en presencia de terceras enti- dades. El uso de la criptografía comenzó hace miles de años cuando los métodos clásicos de encriptación eran usados para mejorar la seguridad de las transmisiones de información sin embargo actualmente la criptografía clásica está obsoleta en términos de seguridad debido a los avances de la tecnología, los ordenadores modernos pueden descifrar estos mensajes encriptados en segundos. Actualmente uno de los campos más prometedores en Criptografía es el uso de Curvas Elípticas en criptografía asimétrica que permite conseguir una longitud menor de clave manteniendo las mismas propiedades de seguridad lo que resulta como una mejor fuerza por bit de la clave. 3 DEDICATORIAS Me gustaría agradecer en primer lugar tanto a la Universitat Politècnica de Catalunya como a la Universidad Miguel Hernández de Elche el haberme brindado la posibilidad de poder realizar una estancia de movilidad durante mi último año de universidad. Al igual que para otros muchos estudiantes ha supuesto un año lleno de cambios, de altibajos, de idas y venidas; pero ante todo ha sido un año de experiencias, de nuevas sensaciones, un año que sin lugar a dudas marca un antes y un después tanto a nivel profesional como personal, un año para no olvidar nunca. Continuar agradeciendo a la que ha sido y continua siendo mi familia en Barcelona, a los que me acogieron desde el primer día y han sido el motivo por el que prolongue mi estancia. Lo que empezó siendo una casualidad ha acabado siendo mucho más, una forma distinta de ver las cosas, otra forma de pensar. He tenido la inmensa suerte de haber encontrado algo tan especial puesto que de alguna manera u otra todos habéis aportado a que no quiera marcharme, a que siga con la ilusión de montar una fiesta de la nada, de tener nervios antes de abrir puertas y satisfacción después de desmontar en el campus. No soy yo el primero y estoy seguro de que tampoco el último que lo dirá, pero como bien sabido és, yo exkapo seré hasta que me muera. Momento ahora para la gente que aunque tuve que dejar atrás en busca de algo distinto, nunca me ha dado la espalda. Mil historias nos unen y mil más espero que lo hagan, ya que aunque el tiempo siga pasando seguimos siendo los mismos que éramos hace años, como niños nos conocimos y como adultos nos seguimos conociendo, algo valioso en los tiempos que corren. No necesito dar nombres aquí ni decir nada que no sepáis ya, la mayoría de los mejores recuerdos que guardo son con vosotros, gracias por ser como sois y por aguantarme ya que por muy lejos que me vaya sé que siempre os tendré cuando os necesite. Por último pero no por ello menos importante, a mi familia. Todo lo que tengo es por vosotros y soy la persona que soy, con mis defectos y mis virtudes, gracias a ello. Por lo general no soy una persona de muchas palabras y aunque no os lo diga tanto como debería, os quiero. Siempre me habéis dado vuestro apoyo y cariño independientemente de las decisiones que tomara, siempre habéis intentado ayudarme y guiarme, siempre habéis estado tanto en los momentos alegres como en los tristes. Gracias por todo. Solo me queda darte las gracias también a ti, el que ahora mismo está leyendo esto. Si has llegado hasta este punto significa que de alguna manera u otra tú también has aportado en mi vida, de otra forma no estarías leyendo semejante parrafada. Espero haber podido corresponderte por igual. AGRADECIMIENTOS Agradecer de nuevo a la Universitat Politècnica de Catalunya por el trato que me ha dado durante este curso acá- demico, a profesores, secretaría, jefa de estudios, oficina de relaciones internacionales, responsables de empresas y a todo el personal en general. No han sido pocas las consultas y visitas pero siempre he encontrado la solución a los problemas que me han ido surgiendo. Al Departamento de Ingeniería Telemática y en especial a mi tutor de proyecto José Luis Muñoz Tapia, por haber confiado en mi y por el apoyo que me ha brindado para la realización del mismo. – Diego Martínez Gilabert 4 REVISION HISTORY AND APPROVAL RECORD Revision Date Purpose 0 01/06/14 Document creation 1 09/06/14 Document revision 2 25/06/14 Documnto revision 3 09/07/14 Document revision 4 22/09/14 Document revision 6 09/10/14 Document approval DOCUMENT DISTRIBUTION LIST Name Email Diego Martínez Gilabert [email protected] José Luis Muñoz Tapia [email protected] Written by: Diego Martínez Gilabert Approved by: José Luis Muñoz Tapia Date: 14/10/2014 Date: 17/10/2014 Position: Project Author Position: Project Supervisor 5 6 Contents 1 Introduction 11 1.1 Statement of purpose . 11 1.1.1 Requirements and specifications . 11 1.1.2 Methods and procedures . 11 1.1.3 Work plan and milestones . 11 1.2 Symmetric and Assymetric Cryptography . 15 2 Elliptic Curve Cryptography 17 2.1 Mathematical definition . 17 2.1.1 Elliptic Curve properties . 18 2.1.2 Elliptic Curve group over FP and F2m ................................ 20 2.1.3 Elliptic Curve domain parameters . 22 2.1.4 Bilinear pairings . 23 2.2 ECC Cryptography . 23 2.2.1 ECDSA - Elliptic Curve Digital Signature Algorithm . 24 2.2.2 ECDH – Elliptic Curve Diffie Hellman . 25 2.2.3 ECIES - Elliptic Curve Integrated Encryption Standard . 25 3 Digital Signatures 27 3.1 Digital Signatures . 27 3.2 Multisignatures . 28 3.2.1 Properties . 28 3.2.2 Related Work . 28 3.2.3 Scheme . 28 3.3 Blind Signatures . 29 3.3.1 Properties . 29 3.3.2 Related Work . 29 3.3.3 Scheme . 29 3.4 Aggregate Signatures . 30 3.4.1 Properties . 30 3.4.2 Related Work . 30 3.4.3 Scheme . 30 3.5 Ring Signatures . 31 3.5.1 Properties . 31 3.5.2 Related Work . 31 3.5.3 Scheme . 31 3.6 Verifiably Encrypted Signatures . 32 3.6.1 Properties . 32 3.6.2 Related Work . 32 3.6.3 Scheme . 32 3.7 Group Signatures . 33 3.7.1 Properties . 33 3.7.2 Related Work . 34 7 3.7.3 Scheme . 34 4 Results 37 4.1 Multisignatures . 37 4.2 Blind Signatures . 38 4.3 Aggregate Signatures . 39 4.4 Ring Signatures . 41 4.5 Verifiably Encrypted Signatures . 42 4.6 Group Signatures . 43 5 Budget 49 6 Conclusions and future development 51 7 Bibliography 53 8 Glossary 57 8 List of Figures 1.1 Gantt diagram . 14 2.1 Addition of two points . 18 2.2 Doubling a point . 19 2.3 0 point . 20 2 3 2.4 y = x − 7x over F23 ........................................... 21 2 3 2.5 y = x − 3x + 5 over F23 ......................................... 21 2 3 4 2 2.6 y + xy = x + g x + 1 over F24 ..................................... 22 List of Tables 1.1 DH Public key protocol parameters . ..