¡Gracias por visitar Tecno Academy!                     Informática, todos los niveles - Trucos - Apuntes - Diapositivas - Libros - Enlaces - Curiosidades - Descargas - Tecnologías - Opiniones - Podcasting, Byte - Internautas TV - Pizarra Virtual                   

lunes, 1 de octubre de 2007

DNI electrónico y SHA-1

Como ya sabréis, se están tomando medidas para adaptar los documentos de identificación y certificación a las nuevas tecnologías. Tal es el caso del llamado DNI electrónico que pretende sustituir por completo y en el menor plazo de tiempo posible al "carnet" plastificado de toda la vida por una nueva tarjeta con chip de seguridad incorporado. Los que, como yo, no os fiáis ni un pelo de los políticos os preguntaréis qué sistemas de cifrado y seguridad utiliza. Pues sin entrar en demasiado detalle (para los detalles está la página oficial) os diré que entre ellos está el SHA1. El SHA1 (Secure Hash Algorithm 1) y su hermano mayor el SHA0 no son más que funciones criptográficas que toman como entrada mensajes de hasta 2^64 bits y producen una salida "única" de 160 bits. Lo de "única" lo pongo entre comillas porque existe la posibilidad de colisión aunque sea muy remota. Lo curioso es que tres científicos chinos, Xiaoyun Wang, Yiqun Lisa Yin y Hongbo Yu, han demostrado que pueden vulnerar la seguridad del SHA1 con 2^69 operaciones. Aunque hoy por hoy sería muy difícil de romper pues tal posibilidad se encuentra en el umbral de las posibilidades de cálculo de las computadoras. Pero no se descarta que de seguir el actual ritmo de incremento en la potencia de cálculo, en pocos años romper el SHA1 será un juego de niños. Si ya os he metido el miedo en el cuerpo y no pensáis firmar absolutamente nada con el nuevo DNI, esperad a leer el post de Fernando Acero Martin, en mi opinión más que juicioso. Claro que no sólo hay detractores del nuevo sistema, también hay quien lo defiende a capa y espada.
No voy a polemizar sobre si es seguro o no es seguro. Lo que más me interesa es el algoritmo en sí. Podéis echarle un vistazo a las especificaciones del RFC 3174. Y si queréis sumergiros en su implementación real aquí tenéis un desarrollo en Java de ejemplo. ¡Ya me contaréis!

No hay comentarios: