Seguridad Informática

Documentos relacionados
Seguridad Informática

Ingeniería en Informática

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

05. Criptografía de clave pública

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

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

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

Tecnologías Grid Seguridad en entornos grid

Seguridad Informática

Matemáticas para proteger la Información

APLICACIONES DE LA ARITMÉTICA MODULAR

Criptografía Susana Puddu

Sistemas criptográficos modernos

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

Criptografía Simétrica / Asimétrica. La mejor forma de que la información este segura es que no exista, que no se guarden los datos, Martin Hellman

Clase 4: 23/03/ Modos de operación para cifradores de bloque

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

Criptografía de clave pública

Criptografía. 1 a parte : Confidencialidad en las transmisiones. Curso 2013/14. Gestión Informática Empresarial

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

Sistemas basados en la Teoría de Números

1. Introducción Cifrado de Hill RSA ElGamal Firma DSA Test de Miller-Rabin...

TEMA 3: SERVICIO SSH

Algoritmos de cifrado

Clave Pública. Criptografía-ULL

Introducción a la Criptografía Cuántica

Introducción a la Seguridad en Sistemas Distribuidos

Criptografía Básica. Alberto Escudero Pascual

Síntesis y análisis de criptosistemas asimétricos

Dígitos de control. Test de Primalidad Algoritmo para calcular a r mod n Criptografía. Aritmética Modular. personal.us.es/lcamacho. Luisa M.

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

Redes de comunicación

UD 3:Implantación de técnicas de seguridad remoto. Seguridad perimetral

Criptografía y Seguridad Computacional Clase 3: 16/03/2016

Seguridad y criptografía

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

Tema 10 Seguridad y criptografía

Seguridad del protocolo HTTP

CRIPTOGRAFÍA APLICADA

Cryptography Criptografía para humanos. Luis González

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

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

Criptografía moderna La era de la criptografía moderna comienza con Claude Shannon, considerado el padre de la criptografía matemática 1.

Criptografía y Seguridad Computacional Clase 2: 09/03/2016

Matemáticas aplicadas a la criptografía

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

Capítulo 8 Seguridad en Redes Generalidades y Principios. Basado en: Computer Networking: A Top Down Approach, Jim Kurose, Keith Ross Addison-Wesley

Matemáticas Discretas 2 - Taller 2 Aritmética modular G. Padilla

Nombre del documento: Programa de Estudio de asignatura de Especialidad

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

Criptografía y Seguridad Computacional Clase 1: 02/03/2016

Semana 12: Encriptación. Criptografía

Vulnerabilidades Criptográficas. Pablo Prol Sobrado Alexandre Ramilo Conde

REALIZADO POR: MILA LEAL

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

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

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

Clave Pública y Clave Privada

Criptografía asimétrica o de clave pública

Seguridad Informática

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

Aritmética Modular MATEMÁTICA DISCRETA I. F. Informática. UPM. MATEMÁTICA DISCRETA I () Aritmética Modular F. Informática.

MANUAL SOBRE FIRMA ELECTRÓNICA

Una Introducción Matemática a la Criptografía (para mis alumnos de Álgebra I)

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

Seguridad y Alta Disponibilidad. Realizar CISCO CCNA Security 2.0. Laboratorio: Explorando métodos de cifrado

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

Capítulo 8 Seguridad en redes

Introducción SSL con la transacción y el intercambio de paquetes de la muestra

C - Criptografía

Matemáticas Discretas. Tema 2. Introducción a la teoría de núm

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

jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 1

ASIMETRICA I CRIPTO II UT II N 03

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

Transcripción:

Seguridad Informática Criptografía de clave pública Ramón Hermoso y Matteo Vasirani Universidad Rey Juan Carlos

Índice 1 Introducción 2 Clave pública 3 Intercambio de claves (Diffie-Hellman) 4 Cifrado de clave pública Cifrado RSA Cifrado de El Gamal Seguridad IND-CCA Funciones hash 5 Firma digital

Índice 1 Introducción 2 Clave pública 3 Intercambio de claves (Diffie-Hellman) 4 Cifrado de clave pública Cifrado RSA Cifrado de El Gamal Seguridad IND-CCA Funciones hash 5 Firma digital

Limitaciones de l criptografía de clave secreta I Necesidad de compartir una clave La clave debe transmitirse por un canal seguro (hay que implementarlo!) No siempre es posible No es eficiente/fiable en grupos grandes que se comunican dos a dos Además: Almacenamiento de claves: 1 Tiene que hacerse de forma segura 2 Una clave para cada usuario distinto con el que se establece comunicación Sistemas abiertos: existen entornos, en los que por su naturaleza, no se puede distribuir las claves de forma físicamente segura (teléfono, Internet,...)

Limitaciones de l criptografía de clave secreta II Solución parcial: Centro de Distribución de Claves (KDC) Cada usuario guarda una única clave secreta para comunicarse con el KDC (que las guarda todas) Si B quiere comunicarse con C envía al KDC el mensaje B quiere hablar con C autenticado con su clave secreta El KDC genera una clave de sesión que envía cifrada a B y C B y C se pueden comunicar de manera segura con esta clave, que desechan al terminar

Limitaciones de l criptografía de clave secreta III Ventajas: Cada usuario almacena una única clave Cuando llega un usuario nuevo sólo tiene que intercambiar la clave con el KDC Desventajas: Si se rompe el KDC, el sistema ya no sirve para ningún usuario Si el KDC falla se corta la comunicación entre todos los usuarios No resuelve el problema de los sistemas abiertos

Índice 1 Introducción 2 Clave pública 3 Intercambio de claves (Diffie-Hellman) 4 Cifrado de clave pública Cifrado RSA Cifrado de El Gamal Seguridad IND-CCA Funciones hash 5 Firma digital

Nacimiento de la clave pública I

Nacimiento de la clave pública II En 1976 W. Diffie y M. Hellman publican el artículo New Directions in Cryptography donde establecen las bases de la criptografía pública Introducen tres primitivas de clave pública (o asimétrica): 1 Esquemas de cifrado de clave pública 2 Esquemas de firma digital 3 Protocolos de intercambio de claves

Cifrado con clave pública A genera dos claves: pk y sk Asimetría en las claves: una para cifrar (pk) y otra para descifrar (sk) La seguridad del esquema sólo depende de que sk se mantenga en secreto pk se hace pública: cualquiera puede enviar un mensaje a A utilizando pk (de A) Resuelve los problemas de distribución y almacenamiento de claves

Firma digital Preserva la autenticidad de los mensajes Sólo A puede firmar sus mensajes usando su sk Cualquiera puede verificar la firma de un mensaje utilizando la pk de A Se obtiene no repudio: sólo A puede haber firmado el mensaje, la firma es una prueba

Intercambio de claves Dos partes que no comparten información a priori intercambian mensajes por un canal inseguro para acabar compartiendo un valor común Los mensajes intercambiados no permiten obtener información de manera eficiente del valor común compartido A Canal inseguro B #@ # @ # ###@ #??!" $ @ 3%$ %&$ s k Protocolo de intercambio de claves s k

Implementación de la primitivas En el artículo de 1976, Diffie y Hellman introducen las primitivas, pero sólo presentan un protocolo de intercambio de claves En 1977 Rivest, Shamir y Adleman presentan esquemas de cifrado y firma En 1985, El Gamal publica un esquema de cifrado basado en el protocolo Diffie-Hellman

Índice 1 Introducción 2 Clave pública 3 Intercambio de claves (Diffie-Hellman) 4 Cifrado de clave pública Cifrado RSA Cifrado de El Gamal Seguridad IND-CCA Funciones hash 5 Firma digital

Intercambio de claves Diffie-Hellman I Protocolo: Parámetro de seguridad común: n 1 A usa un algoritmo de generación y obtiene: G grupo cíclico de orden q (con q = n) g un generador de G 2 A elige x Z q u.a.a. y calcula h = g x 3 A envía (G,q,g,h) a B 4 B recibe (G,q,g,h) y: Elige y Z q u.a.a. Calcula l = g y Envía l a A Obtiene la clave k B = h y 5 A recibe l y genera la clave k A = l x

Intercambio de claves Diffie-Hellman II El protocolo es correcto si: k A = l x = (g y ) x = g yx k B = h y = (g x ) y = g xy Para poder usarlo es necesario tener una forma adecuada de codificar elementos de G en cadenas de bits

Seguridad I Si DLP (Problema del Logaritmo Discreto) se puede resolver eficientemente en G, la clave común se recupera a partir de los mensajes intercambiados por A y B Teorema: si el algoritmo de generación hace que DDH sea difícil con (G,q,g) entonces el protocolo es seguro Para que DDH sea difícil se cree conveniente que G sea de orden primo

Seguridad II Una elección habitual, para la que se cree que DDH es difícil, es la siguiente: 1 Se elige p primo fuerte 2 Dentro de Z p se elige un elemento g de orden q y se toma G =< g > Observación: los elementos de G son exactamente los elementos de Z p con raíz cuadrada

Seguridad III Vulnerable a ataques MitM (Man in the Middle) Existe un adversario capaz de interceptar los mensajes enviados por A y B y sustituirlos por otros de su elección Al final, el adversario es capaz de que A y B terminen el protocolo con claves distintas y conocidas por él

Seguridad IV Ataque Man-in-the-Middle Pierre Elmo Susi Hola Susi, soy Elmo, dame tu pk Hola Susi, soy Elmo, dame tu pk pk susi pk pierre Enc pk_pierre ("Quedamos a las 10")... Enc pk_susi ("Me duele la cabeza, quedamos otro día")

Índice 1 Introducción 2 Clave pública 3 Intercambio de claves (Diffie-Hellman) 4 Cifrado de clave pública Cifrado RSA Cifrado de El Gamal Seguridad IND-CCA Funciones hash 5 Firma digital

Esquema de cifrado de clave pública Consta de 3 algoritmos (Gen, Enc, Dec) (pk,sk) Gen(1 n ) genera un par clave pública / clave privada c Enc pk (m) cifra el texto en claro m = Dec sk (c) descifra el texto cifrado. En algunos casos Dec sk (c) = (mensaje de error) Corrección: m = Dec sk (Enc pk (m))

Experimento IND-CPA I A es el adversario y C el retador Se genera (pk,sk) mediante Gen(1 n ) A recibe como input (1 n,pk) A devuelve dos mensajes m 0,m 1 de la misma longitud Se elige b {0,1} C envía Enc pk (m b ) a A A devuelve un bit b Si b = b se dice que Succ(A,n) = 1

Experimento IND-CPA II Decimos que un esquema de cifrado es IND-EAV seguro si para cualquier adversario PPT A se tiene P(Succ(A,n) = 1) 1 2 + negl(n) En el contexto de clave pública el acceso a un oráculo de cifrado no aporta nada a A Por tanto, seguridad IND-EAV y seguridad IND-CPA son equivalentes (se suele usar la segunda)

Observaciones sobre seguridad Importante NO es posible conseguir secreto perfecto (seguridad incondicional o contra adversarios sin limitaciones computacionales) en cifrado de clave pública Similitudes con clave secreta: Al igual que en clave secreta, cualquier esquema determinista no puede ser IND-CPA seguro Como en clave secreta, seguridad IND-CPA cifrando un único mensaje es equivalente a seguridad IND-CPA cifrando múltiples mensajes

Cifrado híbrido I Característica fundamental El cifrado de clave secreta es significativamente más eficiente que el de clave pública Importante Por lo que para cifrar mensajes largos es habitual usar clave secreta y clave pública de manera conjunta

Cifrado híbrido II Se tiene a disposición un esquema de clave secreta y uno de clave pública En primer lugar B cifra una clave k para el esquema de clave secreta utilizando la pk de A Después, B cifra el mensaje m con el esquema de clave secreta utilizando k B envía ambos textos cifrados a A

Cifrado híbrido III (Gen h, Enc h, Dec k ) (Gen, Enc, Dec) esquema de cifrado de clave secreta (ECCS) (Gen,Enc,Dec ) esquema de cifrado de clave pública (ECCP) Gen h (1 n ): genera (pk,sk) Gen (1 n ) Enc h (pk,m): Genera k Gen(1 n ) c 1 = Enc pk (k) c 2 = Enc k (m) c = c 1 c 2 Dec h (sk,c 1 c 2 ): Calcula k = Dec sk (c 1) Calcula m = Dec k (c 2 )

Cifrado híbrido: seguridad El cifrado híbrido se ajusta a la definición de esquema de cifrado de clave pública Teorema Teorema: si el ECCS es IND-EAV seguro y el ECCP es IND-CPA seguro, entonces el esquema híbrido es IND-CPA seguro

Algoritmo RSA I GenRSA(1 n ): Genera al azar dos primos p,q de n bits Para ello, se generan al azar números de n bits y se les pasa un test de primalidad hasta que se consiga un número primo N = p q φ(n) = (p 1) (q 1) Elige e tal que mcd(e,φ(n)) = 1 Calcula d = [e 1 mod φ(n)]] Devuelve (N,e,d)

Algoritmo RSA II Gen(1 n ): 1: (N,e,d) GenRSA(1 n ) 2: pk = (N,e) 3: sk = (N,d) Enc pk (m) = [m e mod N] donde m Z N Dec sk (c) = [c d mod N] donde c Z N

Algoritmo RSA III Corrección: Dec sk (Enc pk (m)) = [m e mod N] d = [m ed mod N] = [m mod N] = m Observación: la penúltima igualdad es cierta porque φ(n) es el orden de Z N y ed = 1 mod φ(n)

Seguridad en RSA Saber factorizar N permite recuperar la clave secreta de forma sencilla Este esquema NO es IND-CPA seguro puesto que es determinista Se puede probar una noción débil de seguridad (OW-CPA): si el problema RSA es difícil entonces la probabilidad de recuperar el mensaje completo a partir del texto cifrado es despreciable

Implementación de RSA Es necesario determinar una manera de codificar cadenas de bits en elementos de Z N Es posible acelerar el proceso de descifrado utilizando el teorema chino del resto La elección de e es importante. Una elección popular fue e = 3 (para acelerar el cifrado). Pero ésto hace el esquema vulnerable a diversos ataques

Ataques contra RSA I Al cifrar mensajes cortos cuando e es pequeño: Por ejemplo, si e = 3 y m < N 1/3, entonces [m 3 mod N] = m 3 Por lo tanto, para descifrar, basta con obtener la raíz cúbica del texto cifrado en los números enteros (y ésto se puede hacer eficientemente)

Ataques contra RSA II e pequeño y mismo mensaje con distintos módulos: Por ejemplo, e = 3 y tres claves públicas para tres usuarios distintos: pk 1 = (N 1,3) pk 2 = (N 2,3) pk 3 = (N 3,3) Al cifrar el mismo mensaje con las tres claves: c 1 = [m 3 mod N 1 ] c 2 = [m 3 mod N 2 ] c 3 = [m 3 mod N 3 ]

Ataques contra RSA III Usando el teorema chino del resto se puede construir c < N = N 1 N 2 N 3 tal que: c = c 1 mod N 1 c = c 2 mod N 2 c = c 3 mod N 3 Por lo tanto, c = m 3 mod N y se puede aplicar el ataque anterior (hallar la raíz cúbica de c en los números enteros)

Ataques contra RSA IV Al usar el mismo módulo para usuarios distintos (un usuario interno puede descifrar mensajes dirigidos a otros): Esto sucede porque a partir de dos números tales que: ed 1 mod φ(n) es posible hallar eficientemente la factorización de N

Ataques contra RSA V Al usar el mismo módulo para usuarios distintos (un adversario externo puede descifrar un mensaje si se le envía a dos usuarios distintos) Si un adversario intercepta: c 1 = [m e 1 mod N] c 2 = [m e 2 mod N] y mcd(e 1,e 2 ) = 1 entonces puede calcular X e Y tales que X e 1 + Y e 2 = 1 (con el algoritmo de Euclides) Luego recupera m de la siguiente forma: c x 1 cy 2 = m mod N

Padded RSA Idea: completar el mensaje de forma aleatoria antes de cifrar Visión general: Se cifran mensajes de longitud fija l(n) 2n 2 Un mensaje de longitud l(n) se completa con una cadena aleatoria de bits r de longitud N l(n) 1 antes de cifrar Se cifra el mensaje r m (visto como un elemento de Z N ) Después de descifrar se descarta la parte superflua

Seguridad de padded RSA I Si l(n) está demasiado cerca de 2n, es posible un ataque por fuerza bruta probando con todos los valores aleatorios posibles y el esquema no será IND-CPA seguro Si l(n) = cn con c < 2, es razonable pensar que el esquema es seguro, pero no se conoce demostración Si l(n) es pequeño, l(n) = O(logN), se puede demostrar que el esquema es IND-CPA seguro, suponiendo que el problema es RSA difícil

Seguridad de padded RSA II Ejemplo: PKCS #1 v1.5 Si pk = (N,e) se toma k = longitud de N en bytes Se cifran mensajes de longitud D k 11 bytes Enc pk (m) = [(00000000 00000010 r 00000000 m) e mod N] donde r es una cadena generada al azar de (k D 3) bytes Esencialmente es un caso concreto de Padded RSA Con el límite para la longitud de m se asegura que r tiene, al menos, 8 bytes Se cree que es IND-CPA seguro (pero no hay demostración)

Cifrado de El Gamal I Gen(1 n ) Se eligen (G,q,g) como en el intercambio de claves de Diffie-Hellman x Z q h = g x pk = (G,q,g,h) sk = (G,q,g,x) Enc pk (m) y Z q c 1 = g y c 2 = h y m Devuelve c = (c 1,c 2 ) Dec sk (c) Devuelve m = c 2 /c x 1

Cifrado de El Gamal II Corrección: supongamos (c 1,c 2 ) = Enc pk (m) = (g y,h y m). Entonces: c 2 /c x 1 = hy m/(g y ) x = (g x ) y m/(g y ) x = m

Seguridad de El Gamal Teorema Si DDH es difícil con la generación elegida de (G,q,g), entonces el esquema de cifrado de El Gamal es IND-CPA seguro La demostración se basa en que, si no se tiene ningún conocimiento del exponente y, entonces c 2 = h y m es, esencialmente un one-time pad de m

Implementación Compartiendo parámetros En lugar de que cada usuario genere (G,q,p) se puede optar por que un administrador del sistema los fije para un grupo de usuarios Cada usuario elige: sk = x Z q pk = g x A diferencia de lo que ocurre con RSA, esto no compromete la seguridad del sistema

Implementación Codificando mensajes Hace falta codificar las cadenas de bits como elementos del grupo Por ejemplo, supongamos p = 2q + 1, con p y q primos, y que tomamos G =< g > donde g es un elemento de Z p de orden q Para codificar la cadena m de longitud n 1, construimos m = [(m + 1) 2 ) mod N]. A continuación, ciframos m utilizando El Gamal Después de descifrar, para recuperar m a partir de m, obtenemos las dos raíces cuadradas de m (se puede hacer eficientemente), nos quedamos con la menor y le restamos 1

Implementación: un ejemplo I q = 83; p = 2q + 1 = 167 (p, q primos) g = 2 2 = 4 mod 167 G =< g > de orden 83 dentro de Z167 sk = 37 Z 83 pk = (167,83,4,[4 37 mod 167]) = (167,83,4,76) n = q = 7 Queremos el mensaje de 6 bits m = 011101

Implementación: un ejemplo II Interpretamos m como 29 [(29 + 1) 2 mod 167] = 65 Para cifrar elegimos y = 71 Z 83 c = ([4 71 mod 167],[76 71 65 mod 167]) = (132,44)

Implementación: un ejemplo III Para descifrar: [132 37 mod 167] = 124 66 = [124 1 mod 167] m = [44 66 mod 167] = 65 65 proviene de dos posibles raíces cuadradas mod 167, son 30 y 137; elegimos la menor, 30 m = 30 1 = 29 = 011101

Seguridad IND-CCA en clave pública Definición análoga a la de clave secreta El adversario tiene acceso a la clave pública y a un oráculo de descifrado (al que no le puede pedir el reto ) Ninguno de los esquemas vistos hasta ahora es seguro ante este tipo de ataques

Experimento IND-CCA Se genera (pk,sk) mediante Gen(1 n ) A recibe el input (1 n,pk) y acceso a un oráculo Dec sk (.) A devuelve dos mensajes m 0,m 1 de la misma longitud Se elige b {0,1} Se envía c Enc pk (m b ) a A A ya no puede solicitar Dec sk (c) A devuelve un bit b Si b = b se dice que Succ(A,n) = 1

Ataque (CCA) contra algoritmo RSA (básico) A intercepta c = [m e mod N] A elige r Z N A pide descifrar c = [r e c mod N] Dec sk (c ) = (r e c) d = r c d = r m = m mod N A recupera m = r 1 m mod N

Ataque (CCA) contra El Gamal A intercepta c = (c 1,c 2 ) = (g y,h y m) A elige m G A pide descifrar c = (c 1,c 2 m ) A recibe respuesta m m = m A recupera m = (m ) 1 m

Hay esquemas INC-CCA seguros? I Padded RSA también es vulnerable a este tipo de ataques El primer esquema de cifrado eficiente para el que se demostró seguridad INC-CCA fue introducido por Crame y Shoup en 2003 Es una evolución de El Gamal y su seguridad está basada en la dificultad de DDH

Hay esquemas INC-CCA seguros? II No se conocen esquemas prácticos y seguros IND-CCA basados en el problema RSA En general, hay pocos esquemas seguros IND-CCA y suelen ser complejos y tener problemas de eficiencia El enfoque que se ha usado con mucha frecuencia es construir esquemas eficientes cuya seguridad IND-CCA se puede demostrar en un modelo idealizado llamado Random Oracle Model (ROM)

Funciones hash (funciones resumen) I Son funciones H : {0,1} {0,1} k computables en tiempo polinomial (Asocian a una cadena de bits de longitud arbitraria otra cadena de bits de longitud fija más corta) Tiene aplicaciones criptográficas en códigos de autenticación de mensajes (MAC), esquemas de cifrado de clave pública y de firma digital

Funciones hash (funciones resumen) II Dado un valor m, se espera que H(m) sea un valor que sólo es asociable a m Para conseguir ésto es necesario que la función hash tenga la propiedad de resistencia a colisiones: Es computacionalmente difícil encontrar valores x y tales que H(x) = H(y)

Ejemplos de funciones hash Familia MD: MD4, MD5,... Familia SHA: SHA-0, SHA-1, SHA-2 Desde 2009 se está desarrollando SHA-3, mediante una competición abierta similar a la convocada para diseñar AES

Índice 1 Introducción 2 Clave pública 3 Intercambio de claves (Diffie-Hellman) 4 Cifrado de clave pública Cifrado RSA Cifrado de El Gamal Seguridad IND-CCA Funciones hash 5 Firma digital

Firma digital Sirve para garantizar la autenticidad de los mensajes, es decir, da una prueba al receptor de que el mensaje ha sido enviado por un emisor en concreto. B genera un par (pk,sk). Para firmar un mensaje m que quiere enviar, usa sk para producir una firma σ(m). Cualquiera que conozca pk puede comprobar si σ(m) es una firma válida de m relativa a pk

Esquema de firma Consiste en tres algoritmos: (Gen, Sign, Vrfy) (pk,sk) Gen(1 n ) σ Sign sk (m) b = Vrfy pk (m,σ) donde b = 1 significa válido y b = 0 significa no válido

Definición de seguridad: experimento forge I Se genera (pk,sk) Gen(1 n ) A recibe pk y acceso al oráculo Sign sk (.) Se almacena en una lista Q todos los mensajes cuya firma solicita A al oráculo A devuelve un par (m,σ) Succ(A,n) = 1 si y sólo si: Vrfy pk (m,σ) = 1 m no está en Q

Definición de seguridad: experimento forge II Corrección: m Vrfy pk (m,sign sk (m)) = 1 Ataques CMA Decimos que un esquema de firma es existencialmente infalsificable para ataques CMA (Chosen Message Attack) si para cualquier adversario PPT A se tiene, en el experimento forge que: P(Succ(A,n) = 1) negl(n)

Firma RSA (básica) Gen(1 n ) (N,e,d) GenRSA(1 n ) pk = (N,e) sk = (N,d) σ = Sign sk (m) = [m d mod N] Vrfy pk (σ,m) = 1 si y sólo si: m = [σ e mod N]

Ataques contra firma RSA I Un adversario que tenga acceso a pk puede obtener una firma válida sin acceder a ningún par firmado por el usuario legítimo (no-message attack): Elige σ cualquiera Calcula m = σ e Observación: el adversario no controla qué mensaje está firmando

Ataques contra firma RSA II Con dos peticiones al oráculo de firma, A es capaz de generar una firma válida para cualquier mensaje: A quiere obtener una firma de m A elige un m 1 cualquiera m 2 = [m/m 1 mod N] A obtiene firmas σ 1 y σ 2 σ = σ 1 σ 2 es firma válida de m

Firma RSA con hash Se dispone de una función hash H : {0,1} Z N Para firmar m {0,1} se calcula: σ = [H(m) d mod N] Para verificar se comprueba si: σ e = H(m) mod N

Seguridad Firma RSA con hash Los ataques anteriores ya no funcionan de forma inmediata si H es difícil de invertir RSA con hash cumple la definición de seguridad (es existencialmente infalsificable para ataques CMA) en el ROM (es decir, en el modelo ideal en el que H es un oráculo aleatorio) bajo la suposición de que el problema es RSA difícil No hay demostración de seguridad en el modelo estándar

DSS (o DSA) I DSS (Digital Signature Standard), también llamado DSA (Digital Signature Algorithm), fue propuesto por el NIST de EE.UU. en 1991 y se ha usado desde entonces sin que se hayan encontrado ataques relevantes Su seguridad está basada en la dificultad de DLP. Sin embargo, no se conocen demostraciones de seguridad ni en el modelo estándar ni en el ROM

DSS (o DSA) II Gen(1 n ) produce: p y q primos, q = n, p = 2q + 1 g generador de un subgrupo de orden q de Z p H : {0,1} Z q una función hash x Z q y = g x pk = (H,p,q,g,y) sk = (H,p,q,g,x)

DSS (o DSA) III Sign sk (m) calcula: k Z q r = [[g k mod p] mod q] s = [(H(m) + x r)/k mod q σ = (r,s)

DSS (o DSA) IV Vrfy pk (m,σ) calcula: σ = (r,s) u = [H(m)/s mod q] v = [r/s mod q] y comprueba si: [[g u y v mod p] mod q] = r Si se cumple se devuelve VÁLIDO, en caso contrario, devuelve NO VÁLIDO