3 CriptografIA

60
1 SEGURIDAD INFORMÁTICA SEGURIDAD INFORMÁTICA Criptografía

Transcript of 3 CriptografIA

Page 1: 3 CriptografIA

1

SEGURIDAD INFORMÁTICASEGURIDAD INFORMÁTICA

Criptografía

Page 2: 3 CriptografIA

2

Objetivos Específicos de la UnidadObjetivos Específicos de la Unidad

• Conocer las diferencias técnicas criptográficas para asegurar la información, algoritmos populares y los métodos para romperlos de manera de poder planificar mejor las técnicas criptográficas a usar en una organización.

Page 3: 3 CriptografIA

3

ContenidosContenidos

• Conceptos preliminares.• Algoritmos criptográficos.• Llaves publicas y privadas• PKI• Firmas Digitales• Técnicas Hashing• Algoritmo RSA y MD5. Detección de

colisiones.• PGP

Page 4: 3 CriptografIA

4

ConceptosConceptos

• En la jerga de la criptografía, la información original que debe protegerse se denomina texto en claro.

• El cifrado es el proceso de convertir el texto plano en un galimatías ilegible, denominado texto cifrado o criptograma.

• Por lo general, la aplicación concreta del algoritmo de cifrado (también llamado cifra) se basa en la existencia de una clave: información secreta que adapta el algoritmo de cifrado para cada uso distinto.

• Las dos técnicas básicas de cifrado en la criptografía clásica son:– la sustitución, que supone el cambio de significado de los elementos básicos del

mensaje -las letras, los dígitos o los símbolos- y – la transposición: que supone una reordenación de las mismas;

La gran mayoría de las cifras clásicas son combinaciones de estas dos operaciones básicas.

• El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la clave.

• El protocolo criptográfico especifica los detalles de cómo se utilizan los algoritmos y las claves (y otras operaciones primitivas) para conseguir el efecto deseado.

• El conjunto de protocolos, algoritmos de cifrado, procesos de gestión de claves y actuaciones de los usuarios, en su globalidad es lo que constituyen un criptosistema, que es con lo que el usuario final trabaja e interactúa.

Page 5: 3 CriptografIA

5

TérminosTérminos

• Texto original (plaintext): La información se encuentra en su forma original. Conocido también como texto simple (cleartext).

• Texto cifrado (ciphertext): La información después que ha sido ofuscada por el algoritmo de encriptación.

• Algoritmo: Método de manipulación utilizado para cambiar el texto original a texto cifrado.

• Clave: Datos de entrada al algoritmo para que transforme el texto original a cifrado.

Page 6: 3 CriptografIA

6

Términos (2)Términos (2)

• Encriptación: Proceso de realizar el cambio de texto original al cifrado.

• Desciframiento: Proceso de efectuar el cambio del texto cifrado al original.

• Criptografía: Arte de encubrir la información mediante el uso de encriptación.

• Criptógrafo: Individuo que practica la Criptografía.• Análisis criptográfico: Arte de analizar algoritmos

criptográficos con la intención de identificar debilidades.

• Analista criptográfico: Individuo que utiliza análisis criptográfico para identificar y utilizar las debilidades en los algoritmos criptográficos.

Page 7: 3 CriptografIA

7

Ataques en contra de la Ataques en contra de la encriptaciónencriptación

Los sistemas de encriptación pueden ser atacados de tres maneras:

1. A través de las debilidades en el algoritmo.

2. Mediante la fuerza bruta en contra de la clave.

3. Por medio de las debilidades en el sistema de entorno.

Page 8: 3 CriptografIA

8

Llaves publicas y privadasLlaves publicas y privadas

Existen dos grandes grupos de cifras: 1. Algoritmos que utilizan una única clave

tanto en el proceso de cifrado como en el de descifrado: se denominan cifras simétricas o de clave simétrica y son la base de los algoritmos de cifrado clásico.

2. Los que utilizan una clave para cifrar mensajes y una clave distinta para descifrarlos: se denominan cifras asimétricas, de clave asimétrica o de clave pública y clave privada y forman el núcleo de las técnicas de cifrado modernas.

Page 9: 3 CriptografIA

9

Encriptación de clave privadaEncriptación de clave privada

• Requiere que todas las partes que están autorizadas para leer la información tengan la misma clave.

• El problema de proteger la información se reduce a proteger la clave: Sólo quien la conoce puede descifrar el mensaje.

• Es el tipo mas utilizado de encriptación.• Proporciona confidencialidad de la información y

cierta garantía respecto a que no pueda ser modificada mientras se encuentra en tránsito.

• No proporciona autentificación, ya que cualquiera que conozca la clave puede descifrar el mensaje.

• También se conoce como encriptación de clave simétrica: se usa la misma clave para cifrar y descifrar la información.

• Es rápida y puede ser fácilmente implementada tanto por hardware como en software.

Page 10: 3 CriptografIA

10

Códigos de sustituciónCódigos de sustitución

• Reemplaza ó cambia elementos en el texto por otros.

• Es simple, y funciona bien mientras que el remitente y el receptor usen el mismo esquema de sustitución: la clave es el “libro de códigos” usado para los reemplazos.

• Puede ser descifrado empleando análisis de la frecuencia de los códigos presentes en el mensaje cifrado.

Page 11: 3 CriptografIA

11

Libretas de un único usoLibretas de un único uso

• Las libretas de un único uso (one-time pads - OTP) constituyen el único sistema de encriptación teóricamente indescifrable.

• Una OTP es una lista de números en orden completamente aleatorio que se emplea para codificar un mensaje.

• Sólo debe utilizarse una vez.• Si los números en la OTP son verdaderamente aleatorios y la

OTP es mas larga que el mensaje, el texto cifrado no proporciona ningún mecanismo para recuperar la clave original.

• Si las libretas no son verdaderamente aleatorias, surgen patrones que pueden emplearse para realizar un análisis de frecuencias.

• Si las OTP se utilizan mas de una vez, pueden ser analizadas y descifradas.

• Su uso no es viable generalmente en entornos con abundante tráfico.

Page 12: 3 CriptografIA

12

Estándar de encriptación de Estándar de encriptación de datos (DES)datos (DES)• Data Encryption Standard – DES, fue

desarrollado por IBM a principios de lo 70’s. Adoptado por NIST en 1977 y reafirmado en 83, 88, 93 y 99

• Utiliza una clave de 56 bits: 7 bits de 8 bytes, quedando el octavo bit para paridad.

• Es un cifrado en bloque que funciona sobre un bloque de 64 bits del texto original.

• Existen 16 rondas de encriptación, cada una con una subclave diferente.

• La clave pasa a través de su propio algoritmo para derivar las 16 subclaves.

Ver en el manual Linux: man des

Page 13: 3 CriptografIA

13

Estructura general de Feistel Estructura general de Feistel en DES en DES

La estructura básica del algoritmo aparece representada en la figura. Hay 16 fases idénticas de proceso, denominadas rondas. También hay una permutación inicial y final denominadas PI y PF, que son funciones inversas entre sí (PI "deshace" la acción de PF, y viceversa). PI y PF no son criptográficamente significativas, pero se incluyeron presuntamente para facilitar la carga y descarga de bloques sobre el hardware de mediados de los 70. Antes de las rondas, el bloque es dividido en dos mitades de 32 bits y procesadas alternativamente. Este entrecruzamiento se conoce como esquema Feistel.

Page 14: 3 CriptografIA

14

Estructura general de Feistel Estructura general de Feistel en DES (2)en DES (2)

La estructura de Feistel asegura que el cifrado y el descifrado sean procesos muy similares — la única diferencia es que las subclaves se aplican en orden inverso cuando desciframos. El resto del algoritmo es idéntico. Esto simplifica enormemente la implementación, en especial sobre hardware, al no haber necesidad de algoritmos distintos para el cifrado y el descifrado.El símbolo rojo "⊕" representa la operación OR exclusivo (XOR). La función-F mezcla la mitad del bloque con parte de la clave. La salida de la función-F se combina entonces con la otra mitad del bloque, y los bloques son intercambiados antes de la siguiente ronda. Tras la última ronda, las mitades no se intercambian; ésta es una característica de la estructura de Feistel que hace que el cifrado y el descifrado sean procesos parecidos.

Page 15: 3 CriptografIA

15

La función (F) de Feistel La función (F) de Feistel

Opera sobre medio bloque (32 bits) cada vez y consta de cuatro pasos:

1. Expansión — la mitad del bloque de 32 bits se expande a 48 bits mediante la permutación de expansión, denominada E en el diagrama, duplicando algunos de los bits.

2. Mezcla — el resultado se combina con una subclave utilizando una operación XOR. Dieciséis subclaves — una para cada ronda — se derivan de la clave inicial mediante la generación de subclaves descrita más abajo.

3. Sustitución — tras mezclarlo con la subclave, el bloque es dividido en ocho trozos de 6 bits antes de ser procesados por las S-cajas, o cajas de sustitución. Cada una de las ocho S-cajas reemplaza sus seis bits de entrada con cuatro bits de salida, de acuerdo con una trasformación no lineal, especificada por una tabla de búsqueda Las S-cajas constituyen el núcleo de la seguridad de DES — sin ellas, el cifrado sería lineal, y fácil de romper.

4. Permutación — finalmente, las 32 salidas de las S-cajas se reordenan de acuerdo a una permutación fija; la P-caja Alternando la sustitución de las S-cajas, y la permutación de bits de la P-caja y la expansión-E proporcionan las llamadas "confusión y difusión" respectivamente, un concepto identificado por Claude Shannon en los 40 como una condición necesaria para un cifrado seguro pero práctico.

Page 16: 3 CriptografIA

16

Generación de subclavesGeneración de subclaves

• La figura representa la generación de claves para el cifrado — el algoritmo que se encarga de proporcionar las subclaves.

• Primero, se seleccionan 56 bits de la clave de los 64 iniciales mediante la Elección Permutada 1 (EP-1) — los ocho bits restantes pueden descartarse o utilizarse como bits de comprobación de paridad.

• Los 56 bits se dividen entonces en dos mitades de 28 bits; a continuación cada mitad se trata independientemente.

• En rondas sucesivas, ambas mitades se desplazan hacia la izquierda uno o dos bits (dependiendo de cada ronda), y entonces se seleccionan 48 bits de subclave mediante la Elección Permutada 2 (PC-2) — 24 bits de la mitad izquierda y 24 de la derecha.

• Los desplazamientos (indicados por "<<<" en el diagrama) implican que se utiliza un conjunto diferente de bits en cada subclave; cada bit se usa aproximadamente en 14 de las 16 subclaves.

• La generación de claves para descifrado es similar — debe generar las claves en orden inverso. Por tanto los desplazamientos se hacen hacia la derecha, en lugar de hacia la izquierda.

Page 17: 3 CriptografIA

17

Modos de operación de DESModos de operación de DES1. Libro de código electrónico: Encriptación básica. El

texto y la clave combinados formando el cifrado. Una entrada idéntica produce salida idéntica.

2. Encadenamiento de bloques cifrados: Cada bloque es cifrado como un libro de código electrónico, pero se agrega un tercer factor derivado de la entrada anterior. Una entrada idéntica no produce una salida idéntica.

3. Retroalimentación del cifrado: Usa un texto cifrado y previamente generado como entrada para DES.

4. Retroalimentación de salida: Semejante al anterior, pero empleando la propia salida previa.

Page 18: 3 CriptografIA

18

Ataques a DESAtaques a DES

• Aunque se ha publicado más información sobre el criptoanálisis de DES que de ningún otro cifrado de bloque, el ataque más práctico a día de hoy sigue siendo por fuerza bruta.

• Se conocen varias propiedades criptoanalíticas menores, y son posibles tres tipos de ataques teóricos que, aún requiriendo una complejidad teórica menor que un ataque por fuerza bruta, requieren una cantidad irreal de textos planos conocidos o escogidos para llevarse a cabo, y no se tienen en cuenta en la práctica.

• Se han descubierto dos ataques que requieren menos cálculos que una búsqueda exhaustiva:

1. Análisis criptográfico diferencial2. Análisis criptográfico lineal

• Ver: RSA Laboratories' Frequently Asked Questions About Today's Cryptography, Version 4.1

• La clave de 56 bits es un problema: proporciona solamente 255 claves potenciales, lo que puede examinarse por fuerza bruta en un breve período.

• NIST ha reconocido este hecho, por lo que actualmente sólo se autoriza DES simple para sistemas heredados.

Page 19: 3 CriptografIA

19

Triple DES – TDES ó 3DESTriple DES – TDES ó 3DES

• Consiste en aplicar DES tres veces consecutivas con dos ó tres claves.

• Si sólo se usan dos claves, las claves 1 y 2 son diferentes.

• TDES es un algoritmo relativamente rápido. Puede implementarse en hardware.

• Se han propuesto ataques contra TDES, pero los requisitos en datos necesarios son muy elevados, por lo que es prácticamente inviable.

Page 20: 3 CriptografIA

20

Encriptación de contraseñaEncriptación de contraseña

• La función de encriptación de contraseñas es en un único sentido.

• El estándar utilizado en UNIX es una variación del DES. (man crypt)

• Las contraseñas encriptadas son fáciles de descifrar por fuerza bruta, por lo que se utilizan archivos de contraseña ocultos.

• La debilidad principal del sistema reside en la selección de contraseñas.

Page 21: 3 CriptografIA

21

Encriptación estándar Encriptación estándar avanzada (AES)avanzada (AES)• Con el fin de reemplazar a DES, el NIST propuso el

Advanced Encryptation Standard – AES desde 2000.• Rijndael es un cifrado en bloque que utiliza claves y

bloques de 128, 192 ó 256 bits.• El algoritmo se compone de 10 a 14 rondas o series

en dependencia del tamaño del texto original y de las dimensiones de la clave.

• Hasta 2005, no se ha encontrado ningún ataque exitoso contra el AES. La Agencia de Seguridad Nacional de los Estados Unidos (NSA) revisó todos los finalistas candidatos al AES, incluyendo el Rijndael, y declaró que todos ellos eran suficientemente seguros para su empleo en información no clasificada del gobierno de los Estados Unidos.

Page 22: 3 CriptografIA

22

Internatonal Data Encryption Internatonal Data Encryption AlgorithmAlgorithm - IDEA - IDEA

• En criptografía el Algoritmo Internacional de Encriptamiento de Datos (IDEA) es un cifrado de bloque descrito por primera vez en 1991.

• Fue una revisión menor a PES (Estándar de Encriptamiento Propuesto), un algoritmo de cifrado anterior.

• Originalmente IDEA fue llamado IPES, (PES Mejorado).

• Fue utilizado como el cifrador simétrico en las primeras versiones de PGP.

• Es libre para uso no comercial aunque fue patentado y sus patentes se vencerán en 2010 y 2011.

• Utiliza clave de 128 bits. • Empleado en PGP (man idea)

Page 23: 3 CriptografIA

23

Operación deOperación de IDEA IDEA

• Opera con bloques de 64 bits usando una clave de 128 bits y consiste en ocho transformaciones idénticas y una transformación de salida (media ronda).

• El proceso para encriptar y desencriptar es similar.

• Las tres operaciones en su proceso, con las cuales logra la confusión, se realizan con grupos de 16 bits y son:1. suma y aplica módulo 216 (cuadrado con

un más +) 2. multiplica y aplica módulo 216+1, que es

un número primo (círculo con punto ·) 3. operación O exclusiva (XOR) (círculo

con un más +)

Page 24: 3 CriptografIA

24

Ventajas de IDEAVentajas de IDEA

Este algoritmo presenta, a primera vista, diferencias notables con el DES que le hacen mas atractivo:

• El espacio de claves es mucho mas grande: 2128=3.4 x 1038

• Todas las operaciones son algebraicas. • No hay operaciones a nivel de bit, facilitando su

programación en alto nivel • Es mas eficiente que los algoritmos de tipo Feistel,

porque a cada vuelta se modifican todos los bits de bloque y no solamente la mitad.

• Se pueden utilizar todos los modos de operación definidos para el DES.

Page 25: 3 CriptografIA

25

Seguridad de IDEASeguridad de IDEA

• En primer lugar, el ataque por fuerza bruta resulta impracticable, ya que seria necesario probar 1038 claves, cantidad imposible de manejar con los medios informáticos actuales.Los diseñadores analizaron IDEA para medir su fortaleza frente al criptoanálisis diferencial y concluyeron que lo es bajo ciertos supuestos.

• No se han reportado debilidades frente criptoanálisis lineal o algebraico.

• Se han encontrado algunas claves débiles las cuales en la práctica son poco usadas siendo necesario evitarlas explícitamente.

• Es considerado por muchos como uno de los cifrados en bloque mas seguros que existen

Page 26: 3 CriptografIA

26

Otros algoritmos de clave Otros algoritmos de clave privadaprivada

• RC5: Permite claves de longitud variable• Skipjack: Usa clave de 80 bits• Blowfish: Clave de longitud variable hasta 448

bits (man blowfish)• Twofish: Usa bloques de 128 bits y puede

emplear claves de 128, 192 ó 256 bits• CAST-128: Usa clave de 128 bits. Empleado en

versiones recientes de PGP• GOST: Estándar ruso en respuesta a DES. Usa

clave de 256 bits

Page 27: 3 CriptografIA

27

Encriptación de clave públicaEncriptación de clave pública

• Utiliza dos claves: una para cifrar y otra diferente para descifrar.

• Es mas reciente que la clave privada.• Tanto el remitente como el receptor deben tener una clave.• La relación entre claves es tal que lo encriptado por K1 sólo

puede ser descifrado por K2 y viceversa. Si se tiene solamente una de las claves no puede calcularse la otra del par.

• En la práctica, una clave del par se conoce como clave privada y se mantiene en secreto por el propietario del par, mientras que la otra se conoce como clave pública, y se divulga con información respecto a quien es el propietario.

• Si se desea confidencialidad, la encriptación se realiza con clave pública.

• Si se desea autentificación, el propietario del par de claves encripta la información con la clave privada.

• La integridad de la información en tránsito es protegida en cualquiera de las dos operaciones anteriores.

Page 28: 3 CriptografIA

28

Intercambio de claveIntercambio de claveDiffieDiffie - Hellman - Hellman• Permite el intercambio secreto de claves entre dos partes que no han

tenido contacto previo, utilizando un canal inseguro, y de manera anónima (no autenticada).

• Se emplea generalmente como medio para acordar claves simétricas que serán empleadas para el cifrado de una sesión.

• Siendo no autenticado, sin embargo provee las bases para varios protocolos autenticados.

• Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un campo finito.

Page 29: 3 CriptografIA

29

RSARSA ((iniciales de los apellidos de sus autores) iniciales de los apellidos de sus autores)

• Algoritmo asimétrico cifrador de bloques, que utiliza una clave pública, que se distribuye en forma autenticada preferentemente, y otra privada, la cual es guardada en secreto por su propietario.

• Una clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje digital, como un archivo binario o como una cadena de bits o bytes.

• Cuando se envía un mensaje, el emisor busca la clave pública de cifrado del receptor y una vez que dicho mensaje llega al receptor, éste se ocupa de descifrarlo usando su clave oculta.

• Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para conformar la clave de descifrado.

• Emplea expresiones exponenciales en aritmética modular.• La seguridad de este algoritmo radica en que no hay maneras

rápidas conocidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales.

Page 30: 3 CriptografIA

30

Public-Key Infrastructure - Public-Key Infrastructure - PKIPKI

• La infraestructura de clave pública PKI es un término relativamente reciente que consiste de protocolos, servicios y estándares que soportan aplicaciones de Criptografía de clave pública.

• Entre los servicios comúnmente encontrados en una PKI se encuentran: – Key registration: El registro de claves permite emitir un

nuevo certificado para una clave pública. – Certificate revocation: Cancelación de un certificado

previamente emitido. – Key selection: Obtención de una clave pública para trabajo. – Trust evaluation: La evaluación de confianza determina si

un certificado es válido y a cuales operaciones autoriza.

• La recuperación de clave también ha sido sugerida como posible elemento de una PKI.

Page 31: 3 CriptografIA

31

Elementos de PKIElementos de PKI

• PKI es una combinación de hw y sw, políticas y procedimientos que permiten asegurar la identidad de los participantes en un intercambio de datos usando criptografía pública.

• El término PKI se utiliza para referirse tanto a la autoridad de certificación y al resto de componentes, como para referirse, de manera más amplia y a veces confusa, al uso de algoritmos de clave pública en comunicación electrónicas.

• Este último significado es incorrecto, ya que no se requieren métodos específicos de PKI para usar algoritmos de clave pública.

Page 32: 3 CriptografIA

32

PKI - Propósito y funcionalidad PKI - Propósito y funcionalidad

• Una PKI permite a los usuarios autenticarse frente a otros usuarios y usar la información de los certificados de identidad (por ejemplo, las claves públicas de otros usuarios) para cifrar y descifrar mensajes.

• En general, una PKI consiste en un software para los clientes, un software de servidor (como una autoridad de certificación), hardware (por ejemplo, tarjetas inteligentes o smart cards) y unos procedimientos operacionales.

• Un usuario puede firmar digitalmente mensajes usando su clave privada, y otro usuario puede validar que dicha firma pertenece al usuario anterior (usando la clave pública del usuario contenida en el certificado que ha sido emitido por una autoridad de certificación de la PKI).

• Esto permite a dos (o más) entidades establecer una comunicación que garantiza la integridad del mensaje, la autenticación de los usuarios y el no repudio del mensaje enviado sin tener que intercambiar previamente ninguna información secreta.

Page 33: 3 CriptografIA

33

Componentes de PKIComponentes de PKI

Los componentes más habituales de una infraestructura de clave pública son:

• La autoridad de certificación (o, en inglés, CA, Certificate Authority): Encargada de emitir y revocar certificados. Es la entidad de confianza que da legitimidad a la relación de una clave pública con la identidad de un usuario o servicio.

• La autoridad de registro (o, en inglés, RA, Registration Authority): Responsable de verificar el enlace entre los certificados (concretamente, entre la clave pública del certificado) y la identidad de sus titulares.

• Los repositorios: Estructuras encargadas de almacenar la información relativa a la PKI. Los dos repositorios más importantes son el repositorio de certificados y el repositorio de listas de revocación de certificados. En una lista de revocación de certificados (o, en inglés, CRL, Certificate Revocation List) se incluyen todos aquellos certificados que por algún motivo han dejado de ser válidos antes de la fecha establecido dentro del mismo certificado.

Page 34: 3 CriptografIA

34

Componentes de PKI (2)Componentes de PKI (2)

• La autoridad de validación (o, en inglés, VA, Validation Authority): Encargada de comprobar la validez de los certificados digitales.

• La autoridad de sellado de tiempo (o, en inglés, TSA, TimeStamp Authority): Encargada de firmar documentos con la finalidad de probar que existían antes de un determinado instante de tiempo.

• Los usuarios y entidades finales son aquellos que poseen un par de claves: pública y privada, y un certificado asociada a su clave pública. Utilizan un conjunto de aplicaciones que hacen uso de la tecnología PKI para validar firmar digitales, cifrar documentos para otros usuarios, etc.

Page 35: 3 CriptografIA

35

Empresas certificadoras PKIEmpresas certificadoras PKI

• Comerciales:– VeriSign http://www.verisign.com/– Thawte http://www.thawte.com/

• Otras con software disponible:– Computer Associates eTrust PKI – Entrust – Microsoft – Netscape CMS – Nexus – OpenCA – Open SSL Herramienta libre para crear CAs – Red Hat Certificate Management System – RSA Security – Safelayer – WISeKey

Page 36: 3 CriptografIA

36

Otros algoritmos de clave Otros algoritmos de clave públicapública

• Encriptación de curva elíptica • ElGamal• Algoritmo de firma digital (Digital

Signature Algorithm – DSA)

Page 37: 3 CriptografIA

37

Criptografía de curva elíptica Criptografía de curva elíptica

• Variante de la criptografía asimétrica o de clave pública basada en las matemáticas de las curvas elípticas.

• Se argumenta que puede ser más rápida y usar claves más cortas que otros métodos como RSA, al tiempo que proporcionan un nivel de seguridad equivalente.

• La utilización de curvas elípticas en criptografía fue propuesta de forma independiente por varios investigadores.

• Ha sido ampliamente reconocida como el algoritmo más fuerte para una determinada longitud de clave, por lo que podría resultar útil sobre enlaces que tengan requisitos muy limitados de ancho de banda.

Page 38: 3 CriptografIA

38

Cifrado Cifrado ElGamalElGamal

• El protocolo ElGamal de negociación de claves provee negociación en un solo paso y autenticación unilateral (del receptor hacia el emisor) si la clave pública del receptor es conocida de antemano por el emisor.

• Es un algoritmo para criptografía asimétrica basado en Diffie-Hellman.

• Es usado en el software libre GNU Privacy Guard, versiones recientes de PGP y otros sistemas.

• La seguridad del algoritmo depende en la dificultad de calcular logaritmos discretos. Específicamente, si el problema discreto del logaritmo se pudiera solucionar eficientemente, entonces ElGamal estaría roto.

• Consiste de tres componentes: el generador de claves, el algoritmo de encriptación, y el algoritmo de desencriptación.

• Es un ejemplo simple de un algoritmo dominante asimétrico semántico seguro del cifrado (bajo asunciones razonables).

• Es probabilístico, significando que un solo texto plano se puede cifrar a muchos textos cifrados posibles, con la consecuencia que un cifrado de general ElGamal produce una extensión de 2:1 de tamaño de texto plano al texto cifrado.

Page 39: 3 CriptografIA

39

Algoritmo de firma digitalAlgoritmo de firma digital

• El algoritmo de firma digital (Digital Signature Algorithm – DSA) fue propuesto por el NIST para firmas digitales.

• Se hizo público en 1991.• Sólo sirve para firmar y no para cifrar

información. • Una desventaja de este algoritmo es que

requiere mucho más tiempo de cómputo que RSA.

• Consta de tres partes: generación de llaves, firma y verificación.

Page 40: 3 CriptografIA

40

Firmas DigitalesFirmas Digitales

• Método criptográfico que asegura su integridad así como la identidad del remitente.

• La firma digital de un documento es el resultado de aplicar cierto algoritmo matemático, denominado función hash, al contenido.

• Esta función asocia un valor dentro de un conjunto finito (generalmente subconjunto de los números naturales) a su entrada.

• Cuando la entrada es un documento, el resultado de la función es un número que identifica casi unívocamente al texto.

• Si se adjunta este número al texto, el destinatario puede aplicar de nuevo la función y comprobar su resultado con el que ha recibido.

• No obstante esto presenta algunas dificultades.

Page 41: 3 CriptografIA

41

Técnicas HashingTécnicas Hashing

• Es un método para resumir o identificar datos a través de la probabilidad, utilizando una función hash o algoritmo hash.

• Un hash es el resultado de dicha función o algoritmo.

• Una función hash es una función para sumarizar o identificar probabilísticamente un gran conjunto de información (dominio), dando como resultado un conjunto imagen finito generalmente menor (un subconjunto de los números naturales por ejemplo).

• Varían en los conjunto de partida y de llegada y en cómo afectan a la salida semejanzas o patrones de la entrada.

Page 42: 3 CriptografIA

42

Técnicas Hashing (2)Técnicas Hashing (2)

• Una propiedad fundamental del hashing es que si dos hashes, utilizando la misma función, son diferentes, entonces las dos entradas que generaron dichos hashes también lo son.

• Son usadas en múltiples aplicaciones, como los arrays asociativos, criptografía, procesamiento de datos y firmas digitales entre otros.

• Una buena función hash es una que experimenta pocas colisiones en el conjunto esperado de entrada; es decir que se podrá identificar unívocamente las entradas.

Page 43: 3 CriptografIA

43

Ejemplo de función de hashEjemplo de función de hash

Page 44: 3 CriptografIA

44

RequisitosRequisitos

• Para que sea de utilidad, la función hash debe satisfacer dos importantes requisitos: 1. Debe ser difícil encontrar dos documentos cuyo valor para la

función "hash" sea idéntico. 2. Dado uno de estos valores, debería ser difícil recuperar el

documento que lo produjo.• Algunos sistemas de cifrado de clave pública se pueden usar

para firmar documentos. El firmante cifra el documento con su clave privada y cualquiera que quiera comprobar la firma y ver el documento, no tiene más que usar la clave pública del firmante para descifrarla.

• Existen funciones "hash" específicamente designadas para satisfacer estas dos importantes propiedades. SHA y MD5 son dos ejemplos de este tipo de algoritmos. Para usarlos un documento se firma con una función "hash", cuyo resultado es la firma. Otra persona puede comprobar la firma aplicando la misma función a su copia del documento y comparando el resultado con el del documento original. Si concuerdan, es casi seguro que los documentos son idénticos.

Page 45: 3 CriptografIA

45

Tablas Hash Tablas Hash

• Las tablas hash, una de las aplicaciones más extendidas de las funciones hash, aceleran el proceso de búsqueda de un registro de información según una clave (nota: este uso de la palabra poco se relaciona con su significado habitual). Por ejemplo, una cadena alfanumérica puede ser utilizada para buscar la información de un empleado en la base de datos de un sistema.

• La utilización de tablas hash provee de un acceso casi directo a dichos registros, lo que significa que, en promedio, una búsqueda puede llegar a requerir sólo uno o dos intentos en la memoria o el archivo que contiene la información. Naturalmente, se prefiere una buena función hash que evitará colisiones de hash.

• Si asumimos que la clave es una cadena de bytes, entonces la función hash debería ser como un índice de los registros que tiene una distribución aleatoria sobre las cadenas de entrada esperadas. De otra forma, habría más colisiones de hash degradando así el tiempo de búsqueda. Si, por ejemplo, la clave es alfabética, cada byte puede tener sólo 26 de sus 256 valores posibles. Funciones tan simples no distribuirán los índices de una forma pareja.

Page 46: 3 CriptografIA

46

ColisionesColisiones

• En informática y en especial en criptografía, una colisión de hash se produce cuando dos entradas distintas producen la misma salida.

• Es matemáticamente imposible que una función de hash carezca de colisiones, ya que el número potencial de posibles entradas es menor que el número de salidas que puede producir un hash. Sin embargo, las colisiones se producen más frecuentemente en los malos algoritmos.

• En ciertas aplicaciones especializadas con un relativamente pequeño número de entradas que son conocidas de antemano es posible construir una función de hash perfecta, que se asegura que todas las entradas tengan una salida diferente.

Page 47: 3 CriptografIA

47

Colisiones (2)Colisiones (2)

• En una función en la cual se puede introducir datos de longitud arbitraria y que devuelve un hash de tamaño fijo (como MD5), siempre habrá colisiones, dado que un hash dado puede pertenecer a un infinito número de entradas.

• Una de las propiedades deseables de las funciones de hash es que sea computacionalmente no factible encontrar una colisión.

• El valor de una función hash puede ser usado para certificar que un texto dado (o cualquier otro dato) no está modificado publicando su valor de hash si no es factible hallar una colisión.

Page 48: 3 CriptografIA

48

Algoritmo SHAAlgoritmo SHA

• La familia SHA (Secure Hash Algorithm, Algoritmo de Hash Seguro) es un sistema de funciones hash criptográficas relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos (NSA) y publicadas por el National Institute of Standards and Technology (NIST).

• El primer miembro de la familia fue publicado en 1993 es oficialmente llamado SHA. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de SHA-1.

• Existen cuatro variantes más que se han publicado desde entonces cuyas diferencias se basan en un diseño algo modificado y rangos de salida incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (todos ellos son referidos como SHA-2).

• Ha sido examinado muy de cerca por la comunidad criptográfica pública y no se ha encontrado ningún ataque efectivo.

Page 49: 3 CriptografIA

49

Algoritmo MD5Algoritmo MD5

• En criptografía, MD5 (acrónimo de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado.

• Durante el año 2004 fueron divulgados ciertos defectos de seguridad, lo que hará que en un futuro cercano se cambie de este sistema a otro más seguro.

Ejemplo de funcionamiento de SHA y MD5

Page 50: 3 CriptografIA

50

Ataques contra SHA-1 Ataques contra SHA-1

• La resistencia de SHA-1 se vió comprometida en 2005.

• Después de que MD5, entre otros, quedara seriamente comprometido en el 2004 por parte de un equipo de investigadores chinos, el tiempo de vida de SHA-1 quedó visto para sentencia.

• El mismo equipo de investigadores chinos ha demostrado que son capaces de romper el SHA-1 en al menos 269 operaciones, unas 2000 veces más rápido que un ataque de fuerza bruta (que requeriría 280 operaciones).

• Los últimos ataques contra SHA-1 han logrado debilitarlo hasta 263.

Page 51: 3 CriptografIA

51

Ataques contra SHA-1 (2) Ataques contra SHA-1 (2)

• Según el NIST, “este ataque es de particular importancia para las aplicaciones que usan firmas digitales tales como marcas de tiempo y notarías.

• Sin embargo, muchas aplicaciones que usan firmas digitales incluyen información sobre el contexto que hacen este ataque difícil de llevar a cabo en la práctica.”

• La importancia de la rotura de una función hash se debe comprender de la siguiente manera: – Un hash permite crear una huella digital, en teoría única,

de un archivo. – Si un hash fuese roto podría haber otro documento con la

misma huella. – La similitud podría ser que hubiese personas que

compartiesen las mismas huellas digitales, o peor aún, el mismo ADN: No habría manera de poder diferenciarlos usando estos medios de discriminación.

Page 52: 3 CriptografIA

52

Criptografía híbrida Criptografía híbrida • Método criptográfico que usa tanto un cifrado simétrico como uno asimétrico. • Emplea el cifrado de clave pública para compartir una clave para el cifrado

simétrico. • El mensaje que se esté enviando en el momento, se cifra usando la clave y

enviándolo al destinatario. • Ya que compartir una clave simétrica no es seguro, la clave usada es diferente

para cada sesión. • Tanto PGP como GnuPG usan sistemas de cifrado híbridos. La clave de sesión

es cifrada con la clave pública, y el mensaje saliente es cifrado con la clave simétrica, todo combinado automáticamente en un sólo paquete. El destinatario usa su clave privada para descifrar la clave de sesión y acto seguido usa la clave de sesión para descifrar el mensaje.

• Un sistema de cifrado híbrido no es más fuerte que el de cifrado asimétrico o el de cifrado simétrico de los que hace uso, independientemente de cuál sea más débil.

• En PGP y GnuPG el sistema de clave pública es probablemente la parte más débil de la combinación. Sin embargo, si un atacante pudiera descifrar una clave de sesión, sólo sería útil para poder leer un mensaje, el cifrado con esa clave de sesión. El atacante tendría que volver a empezar y descifrar otra clave de sesión para poder leer cualquier otro mensaje.

Page 53: 3 CriptografIA

53

““Pretty Good Privacity” - PGPPretty Good Privacity” - PGP• Privacidad bastante buena o PGP es un programa cuya

finalidad es proteger la información distribuida a través de Internet mediante el uso de criptografía de clave pública, así como facilitar la autenticación de documentos gracias a firmas digitales.

• Puede proporcionar un gran nivel de seguridad. Es más, observadores informados creen que ni siquiera las agencias del gobierno estadounidense como la NSA son capaces de descifrar directamente mensajes generados adecuadamente con PGP.

• PGP es más fácil de utilizar que muchos otros criptosistemas, pero como ocurre siempre en el campo de la criptografía, su implementación y su utilización influyen muchísimo en la seguridad lograda.

Page 54: 3 CriptografIA

54

PGP (2)PGP (2)

• Existe la posibilidad de que haya errores en la implementación, y si se utiliza descuidadamente es posible desproteger fácilmente un archivo de texto protegido. Cualquier criptosistema puede ser inseguro, independientemente de lo bueno que sea su diseño.

• A diferencia de protocolos de seguridad como SSL, que sólo protege los datos en tránsito (es decir, mientras se transmiten a través de la red), PGP también puede utilizarse para proteger datos almacenados en discos, copias de seguridad, etc.

Page 55: 3 CriptografIA

55

GnuPGGnuPG

• Reemplazo libre y completo de PGP. • Puede ser usado sin restricciones

debido a que no usa el algoritmo patentado IDEA.

• GnuPG es una aplicación que cumple el estándar RFC 2440 (OpenPGP).

Page 56: 3 CriptografIA

56

Esteganografía Esteganografía

• Rama de la criptología que trata sobre la ocultación de mensajes, para evitar que se perciba la existencia del mismo.

• Es el arte y ciencia de escribir mensajes secretos de tal forma que nadie fuera de quien lo envía y quien lo recibe sabe de su existencia; en contraste con la criptografía, en donde la existencia del mensaje es clara, pero el contenido del mensaje está oculto. Por lo general un mensaje de este tipo parece ser otra cosa, como una lista de compras, un artículo, una foto, etc.

• Los mensajes en la esteganografía muchas veces son cifrados primero por medios tradicionales, para posteriormente ser ocultados por ejemplo en un texto que pueda contener dicho mensaje cifrado, resultando el mensaje esteganográfico.

• Un texto puede ser manipulado en el tamaño de letra, espaciado, tipo y otras características para ocultar un mensaje, sólo el que lo recibe, quien sabe la técnica usada, puede extraer el mensaje y luego descifrarlo.

Page 57: 3 CriptografIA

57

John the Ripper John the Ripper

• Programa que aplica fuerza bruta para descifrar contraseñas.

• Capaz de romper varios algoritmos de encriptación, como DES, SHA-1 y otros.

• Es una herramienta de seguridad muy popular, ya que permite a los administradores de sistemas comprobar que las contraseñas de los usuarios son suficientemente buenas.

• John the Ripper es capaz de autodetectar el tipo de cifrado de entre muchos disponibles, y se puede personalizar su algoritmo de prueba de contraseñas, lo que ha hecho que sea uno de los más usados en este campo.

Page 58: 3 CriptografIA

58

PreguntasPreguntas

1. ¿Cuáles son las tres maneras de atacar un esquema de encriptación?

2. Explique las diferencias entre cifrado por clave pública y por clave privada.

3. ¿Cuáles son los componentes esenciales de un cifrador simétrico?

4. ¿Cuántas claves se necesitan para que dos personas se comuniquen usando un cifrador simétrico?

5. ¿Cuál es la principal debilidad de DES?6. ¿Qué es triple cifrado (TDES ó 3DES)?

Page 59: 3 CriptografIA

59

Preguntas (2)Preguntas (2)

7. Explique las ventajas de IDEA.8. ¿Qué es una firma digital?9. ¿En qué consiste PKI?10.¿En qué se diferencian la clave de sesión y

la clave maestra?11.¿Qué propiedades debe cumplir una

función hash para que sea útil?12.¿Cuáles son las componentes principales

de un criptosistema de clava pública?

Page 60: 3 CriptografIA

60

BibliografíaBibliografíaArchivos:• “CRIPTOSISTEMAS CLÁSICOS” (archivo CriptoClasica.ZIP)• “LIBRO ELECTRÓNICO DE SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA”

Jorge Ramió Aguirre (archivo SegInfoCrip_v41.ZIP): http://www.criptored.upm.es/guiateoria/gt_m001a.htm

• Criptografía y Seguridad en Computadores: http://wwwdi.ujaen.es/~mlucena/wiki/pmwiki.php?n=Main.LCripto

Textos:• Eric Maiwald “Fundamentos de Seguridad de Redes” Parte III Módulo 12

“Encriptación” pp 247-276• William Stalings “Fundamentos de Seguridad en Redes: Aplicaciones y

Estándares” Parte I “Criptografía” pp 25-88

Sitios Web:• Taller de Criptografía• Wikipedia: Criptografía• Introducción a la Criptografía• Openwall Project: bringing security into open environments