Implementación p de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable Yulier Nuñez Musa [email protected] © 2010, VII Jornadas para el Desarrollo De Grandes Aplicaciones de Red VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) introducción problema propuesta implementación conclusiones Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable i t d introducción ió • Intercambio de información sensible a través de redes. inseguros. • Canales de comunicación inseguros • Necesidad de garantizar la integridad y autenticidad de la información. • Solución: S l ió C Criptografía i t fí d de clave l pública y Firma digital. VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable i t d introducción ió Firma digital. g introducción problema propuesta implementación conclusiones VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable problema bl • Implementación p Software introducción problema propuesta implementación conclusiones – La computadora constituye un ambiente inseguro de procesamiento. – Posibilidad que un atacante se apodere de la clave privada. ¿Necesidad? Protección de la clave privada. Ambiente “seguro” de procesamiento. VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable propuesta t • Implementación p Hardware introducción problema propuesta implementación conclusiones – Almacenamiento seguro de la clave privada. – Nunca existe una copia de la clave privada en el ordenador. VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable propuesta t • Tarjetas j de desarrollo de FPGA – Spartan3 Starter Kit: • XC3S1000 (1 millón de compuertas). – Spartan3E Starter Kit: introducción problema propuesta implementación conclusiones • XC3S500E (500 mil compuertas). • Lenguajes HDLs – VHDL. – Handel C. VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable RSA iimplementación RSA: l t ió • Bloque q de cifrado: – Basic RSA Encryption Engine (http://www.opencores.org) introducción problema propuesta implementación conclusiones • Dos módulos de multiplicación modular. • Veintidós registros. RSA: implementación • Basic RSA Encryption Engine Tamaño de 200% clave (bits) 150% 512100% 50% Empleo de recursos en la XC3S1000 Slices Utilizados 8103 Total 200% Porcentaje 97% 51% 7680 105% 25% 0% 128 bits 256 bits 512 bits 1024 bits VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable RSA implementación RSA: i l t ió • Rediseño del bloque q de cifrado RSA: introducción problema propuesta implementación conclusiones – Rediseñar el bloque de multiplicación modular en pos de emplear una menor cantidad de registros. – Emplear un solo multiplicador modular en la implementación de la operación de exponenciación modular. • Área vs. velocidad. RSA: implementación • Recursos utilizados por la implementación del nuevo Recursos utilizados por la implementación del bloque dede esquema bloque de cifrado RSA en la FPGA XC3S1000. esquema de firma RSA en la FPGA XC3S1000. cifrado firmaRSA RSAen enlalaFPGA FPGAXC3S1000. XC3S1000. Recurso Empleo de recursos en la XC3S1000 Utilizados Total 140% Slices 5948 7680 100% Bloques RAM 23 24 120% 80% Porcentaje j 122% 77% 95% 61% 60% 30% 40% 20% 15% 0% 128 bits 256 bits 512 bits 1024 bits RSA: implementación • Recursos utilizados por la implementación de la función resumen SHA‐256 función resumen SHA 256 en la FPGA XC3S500E. en la FPGA XC3S500E. Recurso Utilizados Total Porcentaje Slices 2583 4656 55% Bloques RAM 11 20 55% VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable ECDSA iimplementación ECDSA: l t ió • Rediseño del bloque q de cifrado ECDSA introducción problema propuesta implementación conclusiones – Implementación p Handel-C – Generador de números pseudoaleatorios en VHDL. p ECDSA: implementación • Empleo de recursos de la FPGA XC3S1000 Tamaño de Slices clave (bits) Utilizados Total Bloques RAM j Utilizados Total Porcentaje j Porcentaje 32 2025 7680 26% 4 24 17% 64 3690 7680 48% 8 24 33% 128 7450 7680 97% 16 24 67% 160 7873 7680 103% 20 24 83% ECDSA: implementación • Recursos utilizados por la implementación de la función resumen RIPEMD‐128 función resumen RIPEMD 128 en la FPGA XC3S500E en la FPGA XC3S500E Recurso Utilizados Total Porcentaje Slices 2949 4656 63% Bloques RAM 19 20 95% sistema implementado Proceso de Verificación Firma Firma Comando Fichero digital Firma digital Fi Firma Resumen Comando Resultado digital GOOD Resumen Firma digital ERR VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable conclusiones l i • Se logró g cierta optimización p en área del diseño. introducción problema propuesta implementación conclusiones – Utilización de los recursos dedicados de memoria de las FPGAs. – Evita el empleo p simultáneo de los bloques funcionales implementados. – Se pudieron elevar los tamaños de clave hasta 512 y 128 bits para RSA y ECDSA respectivamente. VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) introducción problema propuesta implementación conclusiones Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable conclusiones l i • El bloque q de cifrado RSA rediseñado es seis veces más lento que el original. g • Esto evidencia que optimizar el diseño en área implica un sacrificio en velocidad. VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) introducción problema propuesta implementación conclusiones Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable conclusiones l i • Dado q que el ECDSA utiliza claves más pequeñas que RSA, garantizando similar nivel de g seguridad, está llamado a ser la mejor j opción p p para optimizar p recursos en las implementaciones hardware. VII Jornadas para el desarrollo de grandes aplicaciones p de red (JDARE’10) introducción problema propuesta implementación conclusiones Implementación de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable conclusiones l i • Ap partir de las conclusiones obtenidas se hace necesario plantearse como trabajo p j futuro la utilización del de co-diseño hardware-software. • Implementar en hardware solo aquellos bloques críticos en tiempo para lograr a un buen equilibrio entre seguridad velocidad y empleo de seguridad, recursos. Implementación p de los esquemas de firma digital RSA y ECDSA sobre hardware reconfigurable Yulier Nuñez Musa [email protected] © 2010, VII Jornadas para el Desarrollo De Grandes Aplicaciones de Red