Criptografía y Seguridad de Datos Criptografía de clave pública y autenticación de mensajes (II) Carlos Figueira. Universida Simón Bolívar Basado en láminas del Profesor Henric Johnson (http://www.its.bth.se/staff/hjo/ henric.johnson@bth.se) Contenido ● ● ● ● Principios de Criptografía de Clave Pública (CP) Algoritmos de criptografía CP Firmas digitales Administración de claves Carlos Figueira 2 Criptografía de clave pública: principios ● ● Tiene implicaciones en: distribución de claves, confidencialidad y autenticación Seis ingredientes (una clave más que en cifrado convencional) – – – – – Texto en claro Algoritmo de cifrado Clave Pública y Clave Privada Texto/mensaje cifrado Algoritmo de descifrado Carlos Figueira 3 Cifrado usando sistema de CP Carlos Figueira 4 Autenticación usando sistemas de CP Carlos Figueira 5 Aplicaciones de sistemas CP ● Tres categorías: – Cifrado/descifrado: Emisor cifra con clave pública del receptor – Firma digital: Emisor firma con su clave privada – Intercambio de claves: Ambos lados cooperan en intercambio de clave de sesión Carlos Figueira 6 Requerimientos 1. Computacionalmente fácil generar un par de claves (clave pública KUb, clave privada KRb) 2. Fácil para emisor generar texto cifrado C= E KUb M 3. Fácil para el receptor descifrar usando clave privada: M = DKRb C = DKRb [E KUb M ] Carlos Figueira 7 Requerimientos (cont.) 4.No computacionalmente factible determinar privada (KRb) a partir de la pública (KUb) 5.No computacionalmente factible recuperar M sabiendo KUb y cifrado C 6.Cualquiera de las claves puede usarse para cifrar y la otra para descifrar M = DKRb [ E KUb M ]= D KUb [ E KRb M ] Carlos Figueira 8 Algoritmos de CP ● ● RSA y Diffie-Hellman RSA - Ron Rivest, Adi Shamir y Len Adleman de MIT, en 1977. – RSA es cifrador de bloque – El más ampliamente usado ● Diffie-Hellman – Intercambia clave secreta de forma privada – Calcula logaritmos discretos Carlos Figueira 9 RSA: generación de claves ● ● ● ● ● ● ● Selecciona p,q p y q primos Calcula n=pxq Calcula f(n) = (p-1)(q-1) Selecciona entero e tal que gcd(f(n),e)=1; 1<e<f(n) Calcula d tal que 1=d e mod(f(n)) Pública KU = {e,n} Privada KR = {d,n} Carlos Figueira 10 RSA: Cifrado ● Texto claro: M<n ● Texto cifrado: C = Me (mod n) Carlos Figueira 11 RSA: descifrado ● Texto cifrado: C ● Texto claro: M = Cd (mod n) Carlos Figueira 12 Ejemplo de Algoritmo RSA (p=7, q=17, n=119) Carlos Figueira 13 Observaciones ● Ataque de Intermediario (man in the middle): – A pide clave pública a B; C la intercepta y envía la suya! ● RSA – escoger claves > 1024. – ¡Firmar primero y después cifrar! – Ataques ● ● texto claro escogido exponentes bajos (algunas implem.) Carlos Figueira 14 Intercambio de clave de Diffie-Hellman ● ● ● Ambos conocen q (número primo) y α (α < q y α raíz primitiva de q) Seleccionar un par de claves pública/privada Y/X en cada lado (X<q, Y=αX mod q) Para calcular la clave secreta: K=(YB)X A mod q = (YA)X B mod q Carlos Figueira 15 Intercambio de clave de Diffie-Hellman Carlos Figueira 16 Otros algoritmos de CP ● Estándar de firma digital (Digital Signature Standard DSS) – Creado en 1991 por NIST – Usa ● ● SHA-1(que fue creado para DSS) y posteriormente SHA-2 DSA (Digital Signature Algorithm), variante de ElGamal, como algoritmo de clave pública/privada para firma – No se usa para cifrado o intercambio de clave Carlos Figueira 17 Otros algoritmos de CP ● Criptografía de Curva Elíptica (ECC) – Mejor para claves menores – Menos confiable (por ser menos probado) que RSA – Muy complejo Carlos Figueira 18 Verificación de CP: certificados Carlos Figueira 19