Algoritmos de criptografía asimétrica [3.1] ¿Cómo estudiar este tema? [3.2] Cifradores asimétricos TEMA [3.3] Certificados y firmas digitales TEMA 3 – Esquema man-in-the-middle Ataque Algoritmo DSA Algoritmo El Gammal Algoritmo Diffie-Hellman Vulnerabilidades Seguridad Algoritmo RSA Protección de la información Autenticación Algoritmos Concepto Certificados digitales Firma digital Firma digital y certificados digitales Algoritmos de criptografía asimétrica Criptografía y mecanismos de seguridad Esquema Criptografía y mecanismos de seguridad Ideas clave 3.1. ¿Cómo estudiar este tema? Para estudiar este tema, además de las Ideas clave, lee los apartados 12.1, 12.2, 12.3 y 12.4 del capítulo 12 «Cifrados asimétricos» y los apartados 17.1, 17.2 y 17.3 del capítulo 17 «Autentificación, certificados y firmas digitales» del libro Criptografía y seguridad de computadores de Manuel Lucena, disponible en: http://sertel.upc.es/tdatos/Libros/Lucena.pdf Una vez tratados los algoritmos simétricos, a continuación se presentan los algoritmos que los complementan, los criptosistemas simétricos. Estos sistemas en los que existen dos claves de cifrado, una pública y otra privada, no precisan de un canal seguro para que las partes puedan intercambiar la clave de cifrado. Esta indudable ventaja permite que, disponiendo de la clave pública del destinatario, el emisor pueda enviarle mensajes confidenciales sin necesidad de acordar una clave de cifrado con este. Por otro lado, y a diferencia de esta ventaja de los criptosistemas asimétricos, se trata de criptosistemas generalmente más lentos que los simétricos y que permiten obtener altos niveles de seguridad deben manejar grandes longitudes de clave. Dentro de este tema también se trata la firma digital, que permite mediante el empleo de la clave privada del emisor verificar la autenticidad del emisor; y también de los certificados de clave pública que son necesarios para poder verificar la asociación entre una clave pública (y la privada asociada) y un determinado usuario. Este tema tiene como objetivo principal presentarte los algoritmos de cifrado asimétrico. Así el primer bloque, engloba esos conceptos y el segundo los relacionados con la firma digital y del empleo de certificados digitales de clave pública. TEMA 3 – Ideas clave Criptografía y mecanismos de seguridad 3.2. Cifrados asimétricos La principal característica de este tipo de algoritmos de cifrado es que la clave empleada para el cifrado y descifrado de los mensajes está formada, en realidad, por un par de ellas (clave pública y privada). Su fortaleza está basada en la complejidad computacional que existe a la hora de calcular la clave privada partiendo del conocimiento de la clave pública. Las claves utilizadas por este tipo de algoritmo son de mayor longitud que las de los simétricos y, además, su rendimiento es bastante menor (algoritmos pesados). Debido a estos inconvenientes, el cifrado asimétrico se suele utilizar, en lugar de para cifrar mensajes de longitud considerable, para cifrar las claves de sesión que serán utilizadas por cifradores simétricos que cifrarán dichos mensajes. Protección de la información Teniendo dos entidades A y B que disponen de sus respectivos pares de claves y donde A quiere enviar un mensaje hacia B y B quiere responder a A, el proceso a seguir es el siguiente: 1. A cifrará el mensaje con (clave pública conocida por todos). 2. A envía el mensaje cifrado a B. 3. B descifrará el mensaje con 4. B cifrará el mensaje con (clave privada solo conocida por B). (clave pública conocida por todos). 5. B envía el mensaje cifrado a A. 6. A descifrará el mensaje con (clave privada solo conocida por A). Autentificación Mediante cifrado asimétrico y el empleo de funciones resumen es posible autentificar la procedencia de los mensajes recibidos. TEMA 3 – Ideas clave Criptografía y mecanismos de seguridad A continuación se detalla el método de autentificación en un escenario básico: 1. A recibe un mensaje cifrado con proveniente de B. 2. B genera el resumen del mensaje y lo envía cifrado con 3. A descifra el mensaje proveniente de B con su 4. A calcula el resumen del mensaje descifrado. 5. A descifra el resumen proveniente de B con su 6. A compara para autentificar a B. con . . . Ataque man-in-the-middle Todo algoritmo asimétrico es vulnerable a este tipo de ataque. El atacante se interpone entre A y B en el momento que se intercambian sus claves públicas, las almacena y envía su propia clave pública a A y B para poder suplantar la identidad de ambos. En este momento C podrá descifrar todos los mensajes provenientes de A y B y podrá enviarles mensajes que ellos interpretarán como correctos. La única solución ante tal ataque es confiar en un tercero (redes de «amigos») que asegure que las claves públicas pertenecen a quien la envía. Algoritmo RSA Algoritmo asimétrico más sencillo de implementar y sin vulnerabilidades descubiertas hasta la fecha. La fortaleza de RSA reside en la dificultad para factorizar el producto de dos primos de gran tamaño. TEMA 3 – Ideas clave Criptografía y mecanismos de seguridad Conceptos matemáticos La generación de claves se realiza siguiendo los siguientes pasos: 1. Escoger dos primos grandes y , de forma aleatoria y calcular su producto . 2. La clave pública será donde inversa modulo es un coprimo de que tendrá , de lo que se deduce: 3. Donde es la inversa de módulo . Forma la clave privada. 4. El cifrado se realizará mediante la ecuación . 5. El descifrado por su parte se realizará con . Los primos escogidos suelen tener una longitud de 512 bits (o superior). El cifrado incrementa ligeramente la longitud del texto respecto al original. Los cálculos del algoritmo RSA pueden reducirse mediante el empleo del Teorema Chino del Resto o de la ecuación . Ejemplo: 1. Escogemos y . Por tanto 2. Calculamos . 3. Escogemos 4. Calculamos . , ya que la inversa . (coprimos). módulo , por y la pública 6. Si queremos cifrar el mensaje se calculará con TEMA 3 – Ideas clave que . 5. La clave privada es por tanto 7. Para descifrarlo utilizaremos lo . . . Criptografía y mecanismos de seguridad Seguridad La seguridad de RSA se basa en la complejidad matemática de factorizar el producto de primos grandes, ya que cualquier método que se encuentre para atacar RSA supondrá también encontrar una forma más simple de factorización. Se calculan números que sean «probablemente» primos, ya que no se comprueba que los números sean coprimos (es computacionalmente muy costoso verificar su primaridad con números tan grandes), aunque la probabilidad de que los números escogidos no sean coprimos es despreciable. Vulnerabilidades Aunque la fuerza bruta queda descartada en este algoritmo, existen puntos débiles que pueden ser utilizados por atacantes: Claves débiles: Existen claves en RSA que no alteran el texto original al cifrarlo, donde . Claves cortas: Las claves de RSA deben ser mayores de 1024 bits y recomendablemente, no inferiores a 2048 bits. Texto en claro escogido: Existen dos posibles ataques. o Enviando mensajes y y tal que . Si la víctima los firma obtenemos con lo que podemos obtener el mensaje firmado . o Explotando la posibilidad de que un usuario codifique y firme con el mismo par de claves el mensaje completo (no el resultado del resumen). Módulo común: Si se reutilizan los primos para generar las claves de RSA, el atacante puede obtener el mensaje en claro empleando el algoritmo de Euclides (ya que los valores de TEMA 3 – Ideas clave de la clave antigua y nueva suelen ser coprimos). Criptografía y mecanismos de seguridad Exponente bajo: Existen implementaciones que utilizan valores de bajos para optimizar el rendimiento (recomendable el mismo número de bits que n), esto ocasiona: o Teniendo 3 mensajes cifrados con distintos módulos (probablemente coprimos) y un mismo valor bajo de , utilizando el Teorema Chino del Resto es posible obtener el mensaje original. o Siendo es posible obtener el mensaje original mediante un algoritmo tradicional. Una solución es alargar el mensaje con bits aleatorios. Firma y codificación: Es necesario firmar antes de codificar para evitar ataques. Algoritmo Diffie-Hellman Siendo A y B las entidades que quieren negociar la clave, se procede de la siguiente forma: 1. Calcular un primo y un generador de donde (información pública). 2. A escoge un número aleatorio tal que . A envía el valor . 3. B escoge un número aleatorio tal que . B envía el valor . 4. B calcula la clave . 5. A calcula la clave . Algoritmo ElGamal Su fortaleza reside en el problema de logaritmos discretos. Permite tanto firma digital como cifrado de mensajes. La generación de claves se realiza escogiendo un primo y dos números aleatorios pública está formada por el conjunto TEMA 3 – Ideas clave y menores que . La clave privada es donde: y la clave Criptografía y mecanismos de seguridad Para la firma digital: 1. Escoger un número aleatorio y coprimo con . El valor debe ser secreto y cambiar cada vez. 2. Calcular . 3. Calcular . 4. La firma está formada por y la firma se comprueba mediante: El cifrado y descifrado se realiza de la siguiente forma: 1. Escoger un número aleatorio y coprimo con 2. Calcular . El valor debe ser secreto. . 3. Calcular . Donde 4. El cifrado está formado por es el mensaje original. (doble longitud de ) y el descifrado se realiza mediante: Algoritmo de DSA Variante del método de ElGamal utilizado para realizar firma digital. El algoritmo de generación de claves es el siguiente: 1. Escoger tal que y un número primo 2. Escoger un número primo tal que 3. Seleccionar un elemento 4. Si tal que . y que sea divisor de y calcular . volver al paso 3. 5. Escoger un número entero aleatorio 6. Calcular . 7. La clave pública la componen TEMA 3 – Ideas clave tal que . . . Criptografía y mecanismos de seguridad El proceso de firma y verificación queda descrito a continuación: Siendo la firma y el mensaje original, el algoritmo a seguir es el siguiente: 1. Seleccionar un número aleatorio 2. Calcular . . 3. Calcular . 4. Calcular 5. La firma tal que . es la pareja . La comprobación se realizará mediante los siguientes pasos: 1. Verificar que y 2. Calcular . a partir de 3. Calcular . 4. Calcular y 5. Calcular 6. Si . Rechazar la firma si no se cumple. . . aceptar la firma. 3.3. Certificados y firmas digitales Firmas digitales Firma digital Secuencia de bits añadida a un mensaje y que garantiza su autenticidad. La firma digital está vinculada a un único mensaje, únicamente puede ser generada por el legítimo titular y es públicamente verificable. La firma digital se realiza mediante el cifrado asimétrico del resumen del mensaje original (clave privada). El receptor deberá realizar el resumen del mensaje y comprobar si coincide con el descifrado de la firma digital (clave pública). TEMA 3 – Ideas clave Criptografía y mecanismos de seguridad Certificados digitales Un certificado digital está compuesto por una clave pública y un identificador que son firmados por una autoridad de certificación (entidad que asegura que una clave pública pertenece a un titular). Los certificados en formato X.509 son los más conocidos y usados. Si una clave se quiere revocar (por pérdida o robo) es posible realizar un certificado de revocación. Este certificado contiene la clave pública firmada con la clave privada del titular (de esta forma solo el titular puede revocar un certificado). TEMA 3 – Ideas clave Criptografía y mecanismos de seguridad Lo + recomendado Lecciones magistrales Algoritmos de criptografía asimétrica En esta lección veremos los algoritmos de criptografía asimétrica, que surgen como complemento a los algoritmos simétricos. A diferencia de estos últimos, los algoritmos de criptografía asimétricos permiten una comunicación confidencial sin que exista un canal seguro. La clase magistral está disponible en el aula virtual. No dejes de leer… Cómo trabaja RSA Interesante documento que describe el algoritmo RSA, algunas curiosidades y potenciales vulnerabilidades. El artículo completo está disponible en el aula virtual o en la siguiente dirección web: http://www.muppetlabs.com/~breadbox/txt/rsa.html TEMA 3 – Lo + recomendado Criptografía y mecanismos de seguridad No dejes de ver… Gambling with Secrets (RSA Encryption) Se trata de un interesante vídeo que ayuda a la compresión del algoritmo RSA y de los algoritmos criptografía asimétrica. El vídeo completo está disponible en el aula virtual o en la siguiente dirección web: http://www.youtube.com/watch?v=vgTtHV04xRI TEMA 3 – Lo + recomendado de Criptografía y mecanismos de seguridad + Información A fondo PKCS #1 Texto que describe los aspectos técnicos y de implementación del algoritmo RSA. Se trata del documento de referencia del algoritmo de criptografía asimétrica más utilizado en la actualidad. El artículo está disponible en el aula virtual o en la siguiente dirección web: http://www.rsa.com/rsalabs/node.asp?id=2125 Webgrafía RSA Laboratories Home: RSA Security Research Center Web del laboratorio de investigación de la empresa RSA, la página ofrece documentación técnica sobre los algoritmos y nuevas investigaciones relacionadas. http://www.rsa.com/rsalabs/ TEMA 3 – + Información Criptografía y mecanismos de seguridad Actividades Trabajo: Algoritmo Diffie-Hellman El algoritmo Diffie-Hellman: A y B negocian un nº p (primo) y un g (raíz primitiva módulo p). 1-A) Elección de x aleatorio 2-A) Calcula X= gx mod p 1-B) Elección de y aleatorio 2-B) Calcula Y= gy mod p 3-A) Calcula Yx= gy·x= K 3-B) Calcula Xy= gy·x= k. Partiendo de la negociación de una base g=5 y un módulo p=23 para el algoritmo Diffie-Hellman y supuesto que x= 11 e y=6. Obtén la clave a utilizar. Rellenar los datos pertinentes en el Excel adjunto. NOTA: Aunque solamente se piden los resultados, los ejercicios deben ser desarrollados manualmente como práctica para el examen. En el examen no se podrá usar calculadora. Para realizar la entrega únicamente debes subir al envío de actividades el documento Excel relleno con los resultados obtenidos. TEMA 3 – Actividades Criptografía y mecanismos de seguridad Trabajo: Algoritmo El Gamal Firma digital mediante El Gamal Se elige un número primo p muy grande. Se elige una raíz primitiva g de CG (p). Se escoge un número Xa de forma que 1<Xa<p-1. xy se calcula Ya=gXa.mod p. Posteriormente el emisor del mensaje A: Toma aleatoriamente un número k, 1<k<p-1 tal que m.c.d.(k, p-1)= 1 Calcula r= gK mod p Resolver la congruencia M=Xa·r+Ks mod p-1. Enviar (M,r,s). El receptor cuando recibe el mensaje: 1) Calcula Yar· rS mod p. 2) Calcula gM mod p. 3) Compara los resultados de 1) y 2). Calcula la firma del mensaje M=3, con g=7, p=97, Xa=37, y k=29. Se debe entregar este documento con el ejercicio resuelto y todas las operaciones realizadas. TEMA 3 – Actividades Criptografía y mecanismos de seguridad Trabajo: Sistema RSA En un sistema RSA con p= 11 y q=17, donde se desea firmar digitalmente el mensaje M=6. Supón que e= 7. Obtener el resultado de la firma. Rellenar los datos pertinentes en el Excel adjunto. NOTAS: No aplicar función resumen al mensaje Aunque solamente se piden los resultados, los ejercicios deben ser desarrollados manualmente como práctica para el examen. En el examen no se podrá usar calculadora. Para realizar la entrega unicamente se subirá a la plataforma el documento Excel adjunto relleno con los resultados obtenidos. TEMA 3 – Actividades Criptografía y mecanismos de seguridad Test 1. Los algoritmos de Diffie-Hellman y el RSA: A. Son ambos algoritmos basados en la exponenciación. B. Son criptosistemas de clave pública. C. Ambos pueden sufrir el ataque de hombre en medio. D. Los interlocutores no precisan negociar una clave. 2. Supón un sistema RSA basado en p=9 y q=11: A. Si la clave de cifrado es 3 la clave de descifrado es 67. B. Si la clave de cifrado es 3 la clave de descifrado es 11. C. Las claves no pueden ser calculadas. D. Ninguna de las anteriores. 3. Supuesto el criptosistema RSA, el resultado de cifrar M=34 con la clave pública (11,35) es: A. 32. B. 33. C. 34. D. 35. 4. El esquema de firma ciega basado en RSA… A. Es necesario conocer la clave pública del notario. B. No es un sistema exponencial. C. No se basa en un criptosistema asimétrico. D. Ninguna de las anteriores. 5. La seguridad de RSA se basa en: A. La dificultad del cálculo de la función de Euler. B. La dificultad de factorización de números primos. C. Las respuestas A y B son correctas. D. Ninguna de las anteriores. TEMA 3 – Test Criptografía y mecanismos de seguridad 6. La última etapa de la criptografía está determinada por: A. Los trabajos de Rivest en 1975. B. Los trabajos de Rivest en 1976. C. Los trabajos de Rivest en 1977. D. Ninguna de las anteriores. 7. La seguridad de RSA se basa en: A. El renombre de sus autores. B. La fortaleza de las cajas S. C. La dificultad de factorización de grandes números. D. Ninguna de las anteriores. 8. Supuesto el criptosistema RSA, el resultado de cifrar M=2 con la clave pública (3,35) es: A. 18. B. 2. C. No es una clave pública válida. D. Ninguna de las anteriores. 9. ¿Cuál de los siguientes elementos podría eliminar al contenido de un certificado de clave pública? A. Algoritmo asimétrico empleado. B. Fecha de emisión del certificado. C. Clave privada del usuario. D. Fecha de caducidad del certificado. 10. Las infraestructuras de clave pública son precisas porque: A. Pueden falsificarse las firmas de la autoridad de certificación. B. El certificado de clave pública puede ser robado por un atacante. C. Pueden sustituirse la clave pública en un certificado válido. D. Ninguna de las anteriores. TEMA 3 – Test