ECC – Criptografía de curvas elípticas


El 3 de diciembre de 2007 se celebró el DISI 2007. Todos los años Jorge Ramió organiza unas jornadas interesantísimas, con ponentes de alto nivel, pero ese año fue especial, con la presencia de Mr Martin Hellman y la interesante propuesta de D. Hugo Scholnik respecto a la factorización de primos que componen el algoritmo RSA y que podría simplificar la forma de obtener la clave privada a partir de la pública.

Para mi fue un motivo de reflexión.

Ya se hablaba de criptografía de curva elíptica el año 1997 cuando me incorporé a FESTE (recuerdo que el tema salió en alguna de las charlas con D. José de Calasanz Pastor Franco, miembro del Patronato de la Fundación auspiciada por el Consejo General del Notariado, y con sus colaboradores en la Universidad de Zaragoza, Miguel Angel Sarasa López y José Luis Salazar Riaño). 

La novedad es la sensación de que cada vez estamos más cerca de que el algoritmo RSA no sea suficiente para proteger las firmas electrónicas del futuro.

Por otro lado, desde hace algún tiempo se comentaba en círculos académicos que algunos algoritmos de hash no eran suficientemente robustos como para evitar colisiones en documentos alternativos al firmado, conservando el sentido que corresponde a la aplicación. Especialmente el algoritmo MD5.

Con estas ideas en mente, comenté con colegas de la Comisión de Seguridad de ASIMELEC (una de las principales patronales del Sector TIC) la posibilidad de presentar conjuntamente un proyecto de I+D al Plan Avanza que intentara resolver el reto que supone la gestión a largo plazo de firmas electrónicas. Jorge Gómez, de IDONEUM, fue quien percibió las implicaciones y pensó que podían ser interesantes para posicionar a su empresa (como yo a la mia).

Así iniciamos el Proyecto Binum. El uso simultáneo de algoritmia de firma electrónica en firmas duales, mucho más difíciles de quebrar, incluso en el supuesto de que cada uno de los algoritmos individuales utilizados fuera menos robusto de lo esperado. El proyecto lo presentamos en el año 2008 y fue finalmente aprobado por el Ministerio de Industria, Turismo y Comercio, dentro del Plan Nacional de Investigación Científica, Desarrollo e Innovación Tecnológica 2008-2011,con referencia TSI-020100-2008-681.

En el proyecto, Idoneum desarrolla la tarjeta chip que permitirá el uso de criptografía RSA y ECC simultáneamente, y Albalia lleva a cabo el estudio de los estándares para intentar lograr que las firmas sean compatibles con los estándares actuales. Posteriormente desarrolla un entorno de referencia con una PKI dual y un sistema de firma electrónica (en este caso XAdES) que genera firmas dobles y las comprueba (con el matiz de que una aplicación “Binum-aware” detecta una firma dual, y una aplicación convencional detecta dos firmas).

Sin embargo, ya hemos dado un paso más de lo previsto en el proyecto. Hemos iniciado la actividad como Prestador de Servicios de Certificación de EADTrust (European Agency of Digital Trust) con una filosofía que intenta ser “future-proof”. Esta nueva empresa (relativamente nueva), se inicia con algunas novedades:

  • No está prevista la emisión de certificados a entidades finales (al menos a personas físicas).
  • Se prevé que gestione servicios de confianza de la Sociedad de la Información, especialmente favoreciendo la creación de firmas electrónicas de alta calidad con servicios de timestamping, validación de certificados y custodia digital de documentos electrónicos
  • Proporcionará servicios avanzados a precios competitivos
  • Dispone de CAs root vinculadas que combinan criptografía RSA y criptografía ECC (Elliptic curve cryptography)

Este último es un hito significativo, al ser la primera autoridad de certificación del mundo con tecnología dual, y, posiblemente, la primera autoridad de certificación europea que cuenta con una jerarquía PKI basada en curvas elípticas.

Ya es posible acceder a los certificados de las root :

  • RSA (sha1RSA). Tamaño clave RSA 2048 bits 
  • ECC (sha1ECDSA). Tamaño clave ECC: 256 bits (equivalente a 3020 bits en RSA)

Ambas root se generaron en presencia notarial, siguiendo un procedimiento que hemos ido perfeccionando en sucesivas ceremonias de  generación de claves de CA (Certification Authority) en FESTE, Camerfirma, Banesto y ANCERT.  

La autoridad de certificación basada en algoritmo de Curva Elíptica utiliza, en particular,  ECDSAFp de 256 BITS aleatorios (secp256r1), según se indica en los documentos generados por el NIST (National Institute of Standards and Technology) FIPS (Federal Information Processing Standards) 186-2 y FIPS 186-3 en sus apéndices 6 y D respectivamente en sus secciones referentes a las Curvas Elípticas Recomendadas para Uso del Gobierno Federal (Estados Unidos)

Por cierto, desde que iniciamos el proyecto, se han producido algunas noticias importantes que revelan hasta qué punto es necesario contar con tecnología como la anunciada. Por ejemplo, la demostración de que el algoritmo de Hash MD5 utilizado en muchos de los certificados de Root, admite colisiones provocadas que ponen en cuestión la tecnología PKI. En el artículo MD5 considered harmful today (MD5 se considera dañino a dia de hoy) Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik y Benne de Weger generan un certificado de root capaz de suplantar a una autoridad de certificación genuina. Sin necesidad de atacar la criptografía RSA, sino solo el algoritmo de Hash.

2 pensamientos en “ECC – Criptografía de curvas elípticas

  1. Pingback: Curvas elípticas « Confianza en la red

  2. Pingback: Colisiones en las firmas en PDF « Todo es electrónico

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s