VÍDEO intypedia014es LECCIÓN 14: FUNCIONES UNIDIRECCIONALES Y HASH. AUTOR: Dr. Hugo Krawczyk. IBM, Estados Unidos

Documentos relacionados
Lección 3: Sistemas de Cifra con Clave Pública

Matemáticas para proteger la Información

VÍDEO intypedia002es LECCIÓN 2: SISTEMAS DE CIFRA CON CLAVE SECRETA. AUTOR: Fausto Montoya Vitini

REALIZADO POR: MILA LEAL

MÓDULO 2 NIVEL AVANZADO Las fuentes de información institucional Unidad didáctica 5: La seguridad en las operaciones telemáticas

Criptografía Hash para Firma Electrónica. Dr. Luis A. Lizama Pérez

Vulnerabilidades Criptográficas. Pablo Prol Sobrado Alexandre Ramilo Conde

Conceptos sobre firma y certificados digitales

Seguridad y criptografía

Tema: Funciones Hash MD5 y SHA-1

MANUAL SOBRE FIRMA ELECTRÓNICA

- Firma digital y cifrado de mensajes. Luis Villalta Márquez

CRIPTOGRAFÍA 5º CURSO DE INGENIERÍA INFORMÁTICA

La Firma Digital. Seguridad en Redes TCP/IP. Tabla de Contenidos

Criptografía básica. (extracto de ponencia Administración Electrónica ) EUITIO Universidad de Oviedo. Alejandro Secades Gómez

TEMA Funciones HASH. 1. FUNCIONES HASH DE USO CRIPTOGRÁFICO.

Semana 12: Encriptación. Criptografía

3.Criptografía Orientada a Objetos

Criptografía de clave pública

05. Criptografía de clave pública

T E M A. Algoritmos de criptografía simétrica. [2.1] Cómo estudiar este tema? [2.2] Cifradores de bloque. [2.3] Cifradores de flujo

1. Qué es la criptografía? Objetivos. Fuentes. Qué es la criptografía? Tipos de funciones criptográficas. Distribución de claves

CRIPTOGRAFIA. Universidad Tecnológica Centroamericana

LECCIÓN 5 Firma Electrónica

Función HASH o Función Resumen: Es un algoritmo matemático que asocia a cada documento un valor numérico diferente. Son algoritmos de un solo

Bases de la Firma Electrónica: Criptografía

Tema 2: Autenticación y

CRYPT4YOU TABLA DE CONTENIDOS DOCUMENTO ANEXO A LA LECCIÓN 1 DEL CURSO "EL ALGORITMO RSA" EJERCICIOS Y PRÁCTICAS PROPUESTOS Y RESUELTOS

Capítulo 3. Qué es un Prestador de Servicios de Certificación?

Criptografía y firma digital

VÍDEO intypedia003es LECCIÓN 3: SISTEMAS DE CIFRA CON CLAVE PÚBLICA. AUTOR: Gonzalo Álvarez Marañón

Seguridad Informática: Criptografía (II)

Características y uso. Recordando. La criptografia define una función de

Redes de comunicación

Firmas digitales 2. Tema 4: Firmas digitales. Tema 4: Firmas digitales

CRIPTOGRAFÍA APLICADA

Ataque de texto claro escogido contra la clave de protocolo del cifrado de Doble Criptograma Simétrico

Guía docente de la asignatura

pública Índice RSA Firma Digital Características Comparativa cifrado simétrico vs. asimétrico Operaciones de Cifrado y Descifrado Funciones Hash

Criptografía. Diplomado- TI (2) Criptografía. Diplomado-TI (2) 9 de enero de 2012

TEMA 40: Criptografía: Sistemas de clave simétrica y asimétrica, certificados digitales. Legislación en materia de firma electrónica.

Los contenidos se valorarán en función de los conceptos adquiridos, los procedimientos aprendidos y las actitudes desarrolladas en las clases.

SEGURIDAD EN SISTEMAS DE INFORMACION. TEMA 2 - parte 2. Criptografia asimétrica

Cifrado simétrico. Podéis probar a descifrar este archivo usando la clave qwerty.

ANEXO APLICACIÓN DE FIRMA

Tema: Funciones hash y firma digital

Juan Carlos Rodríguez (S21Sec) Juan José Carrasco (IZENPE) Rames Swart (SmartAccess)

Seguridad Informática

Prácticas Seguras de Criptografía en Aplicaciones WEB Henry Sánchez

CONFIGURACIÓN DEL CERTIFICADO DIGITAL EN OUTLOOK 2013

Criptografía: Matemáticas para proteger la información

Un Poco de Historia Criptografía, Criptografía Clásica

Criptografía y Seguridad de Datos Introducción a la Criptografía: Confidencialidad de los mensajes

Clave Pública y Clave Privada

INTRODUCCIÓN A LA ADMINISTRACIÓN DE REDES I N G. M O I S É S A L V A R E Z H U A M Á N

Política de Seguridad

Sistema criptográfico de llave publica RSA. Análisis y diseño de algoritmos Jose F. Torres M.

Seguridad en los sistemas de información: e-voting, e-cash y notaria digital

10 CRIPTOGRAFÍA, PROTECCIÓN DE DATOS Y APLICACIONES c RA-MA

Algoritmos de cifrado Definir el problema con este tipo de cifrado

TEMA Criptografía. Conceptos generales.

Autenticación: Garantiza que el autor o visador del documento es quien dice ser.

Tema 11 Introducción a la Criptografía

Algunas características que tiene, o que desearíamos que tuviera, la información, en especial la que viaja en sistemas informáticos, son:

Introducción a la Seguridad en Sistemas Distribuidos

VÍDEO intypedia008es LECCIÓN 8: PROTOCOLO DE REPARTO DE SECRETOS. AUTOR: Dr. Luis Hernández Encinas

FUNDAMENTOS DE REDES CONCEPTOS DE SEGURIDAD

FIRMA DIGITAL: Aspectos Técnicos y Legales

Criptografía de clave pública Sistemas basados en el problema de la mochila

CRIPTOGRAFÍA 5º CURSO DE INGENIERÍA INFORMÁTICA

FIRMA DIGITAL. Trabajo realizado por Manuel Iranzo

PGP (Pretty Good Privacy)

Criptografía Básica. Alberto Escudero Pascual

SEGURIDAD Y ALTA DISPONIBILIDAD. Nombre: Adrián de la Torre López

CONFIGURACIÓN DEL CERTIFICADO DIGITAL EN OUTLOOK 2007

Recomendaciones para el uso del correo electrónico.

Firma Electronica Avanzada

Estudio, diseño y evaluación de protocolos de autentificación para redes inalámbricas

Introducción a la Criptografía Cuántica

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

Si lo escondo, lo encuentras? Aritmética del reloj Mª Joaquina Berral Yerón, Inmaculada Serrano Gómez

VÍDEO intypedia010es LECCIÓN 10: ATAQUES AL PROTOCOLO SSL. AUTORES: D. Luciano Bello y Dr. Alfonso Muñoz

Algoritmos de cifrado

Sistemas de Cifra en Flujo

ANEXO 11: ESTÁNDARES RECONOCIDOS PARA LA ACREDITACIÓN

Criptografía. Por. Daniel Vazart P.

Capítulo 13 Cifrado Asimétrico con Mochilas

Asignatura: Horas: Total (horas): Obligatoria Teóricas 3.0 Semana 3.0 Optativa X Prácticas Semanas 48.0 de elección

Nuestra principal línea de productos son las Llaves Electrónicas HARDkey. Desarrolladas y Fabricadas en Argentina desde hace más de 20 años.

Actualización de algoritmo de firma SHA-256

INFORMACIÓN GENERAL SOBRE FIRMA ELECTRÓNICA COLEGIO OFICIAL DE INGENIEROS INDUSTRIALES DEL PRINCIPADO DE ASTURIAS V /04/2017.

CONFIANZA Uno de los principales desafíos a que se enfrentan los medios telemáticos es asegurar la identidad de las partes que intervienen en cualquie

Firma electrónica in a nutshell

Tema 2 Certificación digital y firma electrónica

2. Crea en tu carpeta de trabajo un documento de texto de nombre Documento_Secreto

Las redes privadas virtuales

MANUAL DE CONFIGURACIÓN DEL CERTIFICADO DIGITAL EN OUTLOOK 2010

Seguridad en Redes. Dr. Arturo Redondo Galván 1

a) Firma digital de un documento

Modelos Matemáticos en Ciberseguridad

Transcripción:

VÍDEO intypedia014es LECCIÓN 14: FUNCIONES UNIDIRECCIONALES Y HASH AUTOR: Dr. Hugo Krawczyk IBM, Estados Unidos Hola, bienvenidos a intypedia. Hoy vamos a estudiar el interesante mundo de las funciones unidireccionales y su utilidad en la criptografía. Acompáñanos! ESCENA 1. FUNCIONES UNIDIRECCIONALES Hola Bernardo. No sé si te has dado cuenta, pero habitualmente los algoritmos criptográficos se basan en procedimientos que son fáciles de calcular en una dirección pero muy difíciles de invertir si no se conoce una trampa Perdona Alicia, no entiendo bien lo que quieres decir. Imagina, por ejemplo, esta situación en criptografía simétrica. El emisor puede generar un texto cifrado a partir de un texto en claro porque conoce la clave de cifrado, mientras que un atacante no puede invertir el proceso fácilmente y recuperar el texto en claro o la clave partiendo sólo del texto cifrado. GuiónIntypedia014es 1

Ah es eso. Si no recuerdo mal, un atacante no debería poder deducir la clave incluso aunque tuviera una gran cantidad de parejas texto en claro / texto cifrado. Siendo puristas, no es que sea matemáticamente imposible invertir el proceso de cifrado y encontrar la clave, en realidad esta tarea sería computacionalmente muy costosa de realizar. Alicia, dame otro ejemplo de funciones en criptografía que sean fáciles de calcular en una dirección pero computacionalmente costosas en la dirección contraria. Por supuesto. Un excelente ejemplo es la criptografía de clave pública. En ésta se generan un par de claves, pública y privada, pero dada la clave pública resulta computacionalmente muy costoso obtener la clave privada sin una información adicional o trampa. Del mismo modo, en la firma digital es muy fácil verificar una firma, pero resulta computacionalmente complejo falsificarla sin conocer la clave privada del firmante. Este paradigma de fácil de calcular difícil invertir es tan común en criptografía que las funciones que tienen esta propiedad son denominadas funciones unidireccionales o de una sola dirección. Muy interesante. Por tanto, una función unidireccional es una función matemática en la cual se conoce un procedimiento de cálculo eficiente y rápido para computar esa función, mientras que no se conoce un procedimiento eficiente para realizar ese mismo cálculo pero a la inversa, no? Correcto, lo has definido muy bien. Existen muchos ejemplos de funciones unidireccionales. Uno famoso es el problema de la factorización entera: multiplicar dos primos grandes de centenas o miles de bits es viable y fácil para los ordenadores actuales; sin embargo, no se conoce un algoritmo eficiente para invertir esta multiplicación, es decir, recuperar los dos primos partiendo exclusivamente de su producto. No es precisamente esa la función unidireccional sobre la que se basa la seguridad del criptosistema RSA? Exacto. En cualquier caso, ya hablaremos de RSA y de otras funciones unidireccionales, como el problema del logaritmo discreto, en futuras lecciones. El tema de las funciones unidireccionales es una de las preguntas abiertas más importantes en computación teórica y una ciencia muy práctica en el campo de la criptografía. De momento, no se tienen pruebas matemáticas de la existencia de funciones de una dirección, pero GuiónIntypedia014es 2

nosotros conjeturamos que tales funciones existen y usamos algunos candidatos razonables en la construcción de algoritmos criptográficos. Vaya!, esto parece interesante. Podrías darme más ejemplos reales donde las funciones unidireccionales tienen utilidad? Claro Bernardo, hay muchas. Una de mis favoritas es la protección de claves. Cuando tú envías tu clave a una máquina remota, por ejemplo a tu banco, cómo crees que hace el banco para verificar tu clave? Bueno... supongo que el banco tiene almacenada una copia de mi clave. Sí, es una forma de hacerlo, pero en la práctica hay opciones más seguras. El banco no almacena una copia en claro de la clave sino el resultado de aplicar una función unidireccional a la misma, una especie de huella llamada resumen o hash. Más tarde, cuando el usuario envía su clave, el banco aplica esta función a la información recibida y la valida respecto a la almacenada. Entiendes por qué esto es mejor? Pues creo que sí. De esta manera si alguien accede a esa base de datos, sólo podrá encontrar ese hash que supongo es difícil de invertir. Qué astutos! Me quedo con la curiosidad de saber más sobre las funciones hash. No te preocupes, vamos a verlo en el siguiente capítulo. ESCENA 2. FUNCIONES HASH Bernardo, imagina por un momento que un amigo tuyo quiere enviarte a través de Internet un fichero enorme, el cual es demasiado grande para adjuntarlo por mail. En su lugar, él lo sube a alguna Web pública. Sin embargo, estarás conmigo que alguien podría cambiar el fichero sin que tú te dieras cuenta. GuiónIntypedia014es 3

Ya, pero eso sería fácil de solucionar. Yo le diría a mi amigo que lo firmara; si yo tengo su clave pública, puedo verificar que es de él. Correcto, eso lo vimos en la Lección 3. Pero existen soluciones todavía más sencillas. Por ejemplo, tu amigo podría tomar ese fichero grande que quiere enviar y utilizando una función hash, calcular un valor basado en él, por ejemplo de 20 caracteres alfanuméricos, al que nosotros llamaremos resumen del fichero. A continuación tu amigo te enviaría por email o por conversación telefónica este valor. Con esta información, únicamente tendrías que comprobar que el resumen del fichero descargado coincide con el que te envió tu amigo. De esta forma reducimos el problema de verificar la integridad de millones de bits a la integridad de sólo unos cientos de ellos. De hecho, este método se usa en ocasiones para distribuir claves públicas largas, actualizaciones de software, etc. Así que si alguien quiere reemplazar el fichero de mi amigo por otro diferente y no ser detectado, necesitaría encontrar un fichero cuyo resumen coincida con el del fichero original, pero como la función resumen es de una sola dirección, no podría encontrar ese segundo fichero. Esa es la idea? En efecto Bernardo, has dado en el clavo. En criptografía a este tipo de funciones unidireccionales que generan resúmenes se les denomina funciones hash. Puedes pensar en ellas como funciones que convierten una cantidad de bits de tamaño arbitrario a un conjunto reducido de bits denominado resumen, típicamente 128 ó 160 bits. Por tanto, como la salida es reducida y la entrada puede ser muy grande, existen muchas entradas diferentes que darán el mismo resumen. En criptografía, a estas entradas que dan el mismo resumen se les denomina pre-imágenes. Una buena función hash debe ser resistente a pre-imagen, es decir, debe ser computacionalmente inabordable que un atacante deduzca fácilmente las diferentes entradas que producen una misma salida. Me parece muy bien. Sí, pero no sólo eso, sino que además deben ser resistentes a ataques de segunda pre-imagen, es decir, debe ser computacionalmente inabordable que partiendo de un mensaje sea posible encontrar otro que sea modificación del primero y cuyos resúmenes coincidan. Por tanto, si una función hash es resistente a una segunda pre-imagen entonces la función unidireccional lo seguirá siendo incluso aunque se conozca la relación de que un mensaje deriva en un resumen concreto. Esto es exactamente la medida de seguridad que se necesita GuiónIntypedia014es 4

en la aplicación que mencioné anteriormente, en la cual tu amigo te enviaba un fichero a través de una Web pública. Otro tema importante es el de la resistencia a colisiones, que abordaremos a continuación. ESCENA 3. RESISTENCIA A COLISIONES Alicia, la verdad es que las funciones hash parecen ser un claro ejemplo de la utilidad de las funciones unidireccionales en la práctica. Así es. Por ejemplo, la idea de generar resúmenes de ficheros es muy útil criptográficamente para firmar ficheros o mensajes, y por tanto garantizar la autoría de ese contenido. En la práctica, por eficiencia en lugar de aplicar la firma digital al mensaje completo se realiza sólo al resumen generado. Como el atacante no es capaz de encontrar diferentes mensajes que den el mismo resumen, entonces firmar el resumen es tan válido como firmar el documento entero. Ahora veo la utilidad de que las funciones hash sean resistentes a segunda pre-imagen. Esto facilita firmas en documentos de tamaño arbitrario. Sí, es una de sus utilidades. No obstante, incluso si la función es resistente a segunda preimagen, hay otro ataque posible. Supongamos que contratas a un amigo para hacer un trabajo y firmáis un documento en el que dice que le pagarás 5.000 Euros. Misteriosamente, al mes siguiente tu amigo vuelve con el contrato firmado por ti en el que se indica que le pagarás 50.000 Euros por ese mismo trabajo. Ahora la pregunta: cómo crees que fue esto posible? Pues no lo sé,... sólo sería posible si el contrato original y el modificado tienen el mismo resumen. Pero, no se suponía que un atacante no puede hacer esto si la función hash implementa las medidas oportunas? Bernardo, pensemos en el caso que tu amigo ha generado los dos contratos, antes de que los firmaras, y que ambos tienen el mismo resumen. Lo que tenemos que evitar es que sea computacionalmente abordable calcular dos mensajes que generen el mismo resumen (es decir, una colisión) para la misma función hash. GuiónIntypedia014es 5

Por tanto, las funciones hash deben ser resistentes a colisiones. Es una propiedad criptográfica fundamental en muchas aplicaciones, por ejemplo, en la creación de esquemas de firma digital. ESCENA 4. CONSIDERACIONES PRÁCTICAS: PROCEDIMIENTOS, CRIPTOANÁLISIS Y CONSECUENCIAS Bien Alicia, con lo que me has explicado ahora tengo la duda de cómo se las ingenian los matemáticos y criptógrafos para construir estas funciones unidireccionales. Esa es una pregunta excelente, y como toda buena pregunta no es de fácil respuesta. En la práctica se reutiliza mucho del conocimiento existente en la construcción de algoritmos criptográficos, y en particular de la construcción de algoritmos de cifrado en bloque. Por ejemplo, aquí también se persiguen que entradas muy parecidas a nivel de bits generen salidas completamente diferentes y no correladas. Por ejemplo, en cifradores de bloque de n vueltas modificar un solo bit puede hacer que en una pasada del algoritmo cambien el 50% de los bits resultantes. Sin embargo, hay una gran diferencia entre funciones hash (unidireccionales) y funciones de cifrado. El objetivo de las primeras no es proteger un secreto o la confidencialidad. Además lo habitual es que las funciones hash no necesiten del uso de claves secretas. Esta es una de las características que hacen que su diseño sea más difícil. No obstante, sí comparten la filosofía de que los algoritmos actuales son públicos y por tanto el atacante intentará vencer al algoritmo por este hecho. Buff... no parece nada sencillo construir una función hash segura. De hecho, el diseño de funciones hash se ha ido renovando gracias a las propuestas de ataque de criptoanalistas. Por ejemplo, los algoritmos estándar de funciones hash desarrollados y utilizados desde la década de los 90, como MD5 o SHA-1, hoy en día o están rotos o significativamente amenazados. Qué quieres decir con que están rotos? GuiónIntypedia014es 6

Pues básicamente que cuando se descubre una pareja de mensajes que generan el mismo resumen, la función hash ya no es resistente a colisiones. Esto le sucedió al algoritmo MD5 en 2004. Incluso esto es peor cuando se demuestran métodos para producir muchas colisiones de este tipo. Y este descubrimiento tuvo implicaciones prácticas serias? Sí. Dado que una utilidad importante de las funciones hash está en las firmas digitales, encontrar colisiones puede facilitar falsificar firmas digitales. Es decir, dos mensajes distintos que tengan un mismo resumen, tienen además la misma firma y un atacante puede reemplazar un mensaje por el otro. Un ejemplo de este ataque fue demostrado en 2008 por un grupo de investigadores en Amsterdam los cuales falsificaron un certificado raíz mediante el uso de un ataque de colisión contra el algoritmo MD5. Se falsificó un certificado raíz? Quieres decir que ellos podrían utilizarlo en cualquier Web? En efecto. Los certificados digitales actúan como tarjetas de identificación para las Webs y este ataque permitió falsificar muchos de estos certificados. Y todo esto porque se demostró que MD5 no es resistente a colisiones? Pues sí, para que veas que esto es un asunto serio. De este tipo de ataques, qué podemos hacer para protegernos? Tranquilidad Bernardo, hay varias líneas de defensa. Algunas son administrativas y permiten a Autoridades de Certificación hacer que estos ataques sean más difíciles. Por ejemplo, introducir números de serie aleatorios a los certificados digitales hace los ataques menos prácticos a corto plazo. Por otro lado, utilizar funciones hash más seguras, como la familia SHA2, es sin duda la mejor solución de momento, aunque esto requiere más tiempo. Mientras tanto, los criptógrafos ya están analizando nuevas funciones hash mediante una competición internacional en curso que GuiónIntypedia014es 7

está a punto de anunciar un nuevo estándar mundial, como sucedió hace más de diez años con el cambio del estándar de cifrado simétrico DES por el AES. Otras formas de mejorar la seguridad, especialmente en firmas digitales, consiste en trabajar en procedimientos que no dependan de la resistencia a colisión. Por ejemplo, el uso de variables aleatorias en el proceso de generación del resumen puede producir esquemas de firma digital que no dependan de la resistencia a colisión. Me alegra saber que los criptógrafos no se aburren Ellos siempre tienen trabajo y no duermen muy bien. Bueno yo creo que por hoy es más que suficiente. En la página Web de intypedia tienes información adicional de esta lección. Hasta luego! Adiós! Guión adaptado al formato intypedia del documento desarrollado por el Dr. Hugo Krawczyk, de IBM Estados Unidos. Madrid, España, mayo de 2012 http://www.intypedia.com http://twitter.com/intypedia GuiónIntypedia014es 8