Métodos Encriptación Tópicos en Sistemas de Computación Módulo de Seguridad Temario Introducción Breve historia Algoritmos simétricos Algoritmos asimétricos Protocolos seguros Ejemplos Introducción ¿Porqué es necesario la criptografía? Para transmitir un mensaje en forma segura a través de un medio inseguro Definición según la RAE (criptografía): ”el arte de escribir con clave secreta o de modo enigmático” Definición interesante y llamativa pero poco acorde a nuestros tiempos Problemas con la definición Ya no es un arte No solo se escriben documentos Supone el uso de UNA clave. Actualmente se utilizan 2 o más claves No necesariamente la clave debe ser secreta. Actualmente la infraestructura PKI utiliza una clave que es pública Escribir en forma enigmática. Escribir en binario no es enigmático para un computador Mejor definición ”Rama inicial de las Matemáticas y en la actualidad también de las TICs, que hace uso de métodos y técnicas con el objeto principal de cifrar, y por tanto proteger, un mensaje o archivo por medio de un algoritmo, usando una o más claves.” Permite asegurar la: Confidencialidad Integridad Autenticidad (no repudio) Breve Historia Se cree que su origen se remonta a los romanos Ejemplo el cifrado de César Cifrado por desplazamiento o sustitución Breve Historia No hubo mayor desarrollo hasta la segunda guerra mundial con la aparición del ENIGMA Máquina usada por los alemanes para el cifrado y descifrado de sus mensajes Breve Historia Criptografía moderna Se considera su inicio con la aparición de las publicaciones de Claude Shanon sobre criptografía matemática y teoría de información y comunicación En el año 70 surge el DES Data Encryption Standard Estándard de cifrado emitido por el NIST Suplantado por el AES el año 2001 luego de que se quebrara por ataque de fuerza bruta Aparición de algoritmos de clave pública RSA en 1977 Algotimos Simétricos Conocida como criptografía de clave privada Emisor y receptor comparten la misma clave Algoritmos simétricos Existirá una única clave (secreta) que deben compartir emisor y receptor. Con la misma clave se cifra y se descifra por lo que la seguridad reside en mantener dicha clave en secreto Algotimos Simétricos Existen 3 familias de algoritmos simétricos Algoritmos simétricos de bloque Algoritmos simétricos de flujo (stream) Funciones HASH Los más conocidos son los algoritmos de bloque El más conocido es el cifrado tipo Feistel Cifrado tipo Feistel Horst Feistel: inventor (IBM) del algoritmo LUCIFER a comienzos de los años 70. El algoritmo fue utilizado por el Reino Unido. En 1974 se propone a la NSA como estándar y en ese año dará origen al DES. Dado un bloque de N bits (típico 64) éste se dividirá en dos mitades. ●Existirá una función unidireccional F (muy difícil de invertir). ●Se realizan operaciones con la clave ki sólo con una mitad del bloque, y se permutan en cada vuelta las dos mitades, operación que se repite durante n vueltas. ● Cifrados de bloques más conocidos Algoritmo Bloque (bits) Lucifer Clave (bits) Vueltas 128 128 16 DES 64 56 16 Loki 64 64 16 RC2 64 variable -- CAST 64 64 8 Blowfish 64 variable 16 IDEA 64 128 8 Skipjack 64 Rijndael 128 80 32 128 o más flexible Características Lucifer: algoritmo original tipo Feistel usado a comienzos de los años 70 por en el Reino Unido y que posteriormente dará lugar al DES. DES: algoritmo tipo Feistel que se convirtió en estándar durante casi treinta años. Hoy es vulnerable por su pequeña longitud de clave y ha dejado de ser estándar mundial. Loki: algoritmo australiano similar al DES, también de tipo Feistel. RC2: algoritmo propuesto por Ron Rivest y que se incluye en navegadores de Internet desde 1999. CAST: algoritmo canadiense tipo Feistel que se ofrece como uno de los algoritmos de cifra en últimas versiones de PGP. Características Blowfish: algoritmo de tipo Feistel propuesto por Bruce Schneier. IDEA: algoritmo europeo usado principalmente en el correo electrónico PGP. Skipjack: propuesta de nuevo estándar en USA a finales de los 90 para comunicaciones oficiales (tiene puerta trasera). Rijndael: nuevo estándar mundial desde finales de 2001, conocido como AES, Advanced Encryption Standard. Algorimos simétricos de flujo Usados para flujos de datos Ej. WEP, WAP Se utiliza cifrado bit a bit o byte a byte Deben ser rápidos Independientes de los bloques tránsmitidos Funciones HASH Herramienta fundamental en la criptografía Usadas para resolver el problema de la integridad, autenticidad y origen del mensaje Muy usado en la firma digital, pues genera un ”resúmen” de un documento, de largo fijo y único Las funcionas HASH más usadas son: MD5 SHA-1 Funciones HASH Propiedades de funciones HASH h(M) será segura si tiene las siguientes características: 1)Unidireccionalidad: conocido un resumen h(M), debe ser computacionalmente imposible encontrar M a partir de dicho resumen. 2)Compresión: a partir de un mensaje de cualquier longitud, el resumen h(M) debe tener una longitud fija. Lo normal es que la longitud de h(M) sea menor que el mensaje M. 3)Facilidad de cálculo: debe ser fácil calcular h(M) a partir de un mensaje M. 4)Difusión: el resumen h(M) debe ser una función compleja de todos los bits del mensaje M: si se modifica un solo bit del mensaje M, el hash h(M) debería cambiar la mitad de sus bits aproximadamente. Pros algoritmos simétricos El emisor y el receptor comparten una misma clave. La seguridad depende sólo del secreto de la clave. La velocidad de cifra es muy alta y los sistemas con un espacio de clave con cientos de bits son muy seguros. Permitirán autenticar los mensajes con MACs. Contras Es imposible establecer un sistema de distribución y gestión de claves eficiente entre emisor y receptor. Carecen de una firma digital, al menos en un sentido amplio y sencillo. Algoritmos Asimétricos Utiliza 2 pares de claves Una pública para cifrar y otra privada para descifrar Nació como respuesta a la necesidad de mejorar el mecanismo de intercambio de llaves Propuesto por Diffie Hellman Popularizado por Rivest Shamir y Adleman RSA Basado en la imposibilidad computacional de factorizar números enteros grandes Algoritmos Asimétricos Algoritmos Asimétricos Utilizan una llave o clave de mayor tamaño Normalmente 1024 bits Son computacionalmente más complejos y costosos Soluciona, en parte, el intercambio de llaves Combinado con funciones HASH y algoritmos simétricos permiten el intercambio de mensajes en forma segura y eficiente Protocolos Seguros Utilizando herramientas criptográficas buscan resolver los problemas de integridad, confidencialidad y autenticidad en la comunicación de datos El más utilizado el SSL, Secure Socket Layer Ej. HTTPS: Web seguro SSH: Secure Shell PGP: Preety Good Privacy, correo seguro Utiliza deversos algoritmos: DES, RCA, SHA-1, 3DES, DH, etc. Ejemplos OpenSSL Implementación OpenSource de algorimos de cifrado y funciones de HASH Ej. # openssl enc -blowfish -in archivo.txt -out archivo_salida.cif # openssl dgst -sha1 hola.txt # openssl genrsa