



































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Historia e introducción de la encriptación, sistemas pgp y algoritmos
Tipo: Monografías, Ensayos
1 / 43
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




































-¿Cuánto tiempo quieres que sean secretos esos mensajes? -le preguntó Randy en el último mensaje antes de abandonar San Francisco-. ¿Cinco años? ¿Diez años? ¿Veinticinco años? Después de llegar al hotel esa tarde, Randy descifró y leyó la respuesta de Avi. Todavía la tiene colgada frente a los ojos, como la imagen remanente de un flash. Quiero que sigan siendo secretos mientras los hombres sean capaces del mal. Neal Stephenson, “Criptonomicón” Desde los tiempos del Antiguo Egipto hasta hoy en día ha pasado mucho tiempo, pero hay algo que no ha cambiado: el anhelo del ser humano por esconder sus secretos. Criptografía. Personajes como Cleopatra o El César ya aprendieron a valorar la importancia de esconder de ojos indiscretos sus mensajes. La Scilata que los espartanos usaban allá por el año 400 a.C., o el propio código César (un simple desplazamiento alfabético) fueron los inicios. Con el desarrollo de las ciencias, y más concretamente de las matemáticas, la criptografía creció como un hermano menor, de la mano. En la Edad Media comenzó a adquirir una gran importancia cuando un siervo del Papa Clemente VII escribió el primer manual sobre el tema de la historia en el viejo continente. En 1466 León Battista Alberti ideó el sistema polialfabético basado en la rotación de unos rodillos. Un siglo más tarde, Giovan Battista Belaso inventó la clave criptográfica basada en una palabra o texto que se transcribía letra a letra sobre el mensaje original... Pero si un punto ha marcado un antes y un después en la criptografía, ese ha sido la Segunda Guerra Mundial. Ya a principios del pasado siglo XX se idearon los denominados “traductores mecánicos”, basados en el concepto ideado en el siglo XV por Alberti de las ruedas concéntricas, y el sistema comenzó a tornarse sumamente complejo, ya no bastaba con analizarlo concienzudamente para comprenderlo. Y eso nos llevó a la Segunda Guerra Mundial, a los años 30 y 40 y a la máquina Enigma. Aunque mucha gente no lo sepa, la criptografía fue uno de los principales motivos para que los aliados ganaran la guerra, pues los alemanes creían el código de su máquina Enigma inviolable, y de hecho sí que era extremadamente complejo. Pero al igual que antes comentaba que el anhelo humano de esconder secretos es eterno, también lo es su anhelo por desenterrar secretos ajenos. Un equipo de criptoanalistas, matemáticos y demás mentes privilegiadas (entre ellos Alan Turing, uno de los padres de la informática) logró en 1942 lo que parecía imposible: romper el cifrado de Enigma. Para ello diseñaron las llamadas “bombas navales” (las bombes), aparatos de cálculo mecánicos que se encargaban de romper el cifrado alemán y entregar todos los secretos a los aliados. Igualmente, el Purple (versión japonesa de Enigma) fue roto en Midway por un equipo dirigido por el comandante Joseph J. Rochefort. El hecho de conocer los secretos, de tener todas las llaves (nunca mejor dicho), dio la vuelta a la guerra y cambió el curso de la historia. Y el mundo nunca volvió a ser el mismo. El nacimiento de la informática y de los criptosistemas informático supuso un cambio radical del concepto de criptografía, y también del criptoanálisis. Los criptosistemas y los algoritmos aumentaron repentinamente y de forma descomunal su complejidad. Desde el DES hace ya mucho, hasta los criptosistemas asimétricos de curvas elípticas actuales todo ha cambiado también mucho, pero uno de esos cambios ha supuesto el segundo gran punto de inflexión de la criptografía: PGP. Hasta entonces el privilegio de guardar secretos estaba exclusivamente en manos de los gobiernos o los poderosos, y hoy día, seguramente gracias a PGP, es un derecho de cualquier ciudadano por humilde que sea (aunque en algunos países no sea así). Arriesgando mucho, Philip Zimmermann nos abrió las puertas a la criptografía, y a la libertad de comunicarnos de forma segura. Por supuesto hay otros nombres que son capitales en el desarrollo de los criptosistemas informáticos, aparte de Zimmermann: Rivest, Shamir, Adleman, Diffie, Hellman, ElGamal, Rijmen, Daemen, Massey, Miller, Goldwaser... Todos ellos son padres de lo que hoy se llama criptografía. Gracias a todos.
Criptología Criptografía, el arte de ocultar. La palabra tiene su origen en el griego: kryptos (oculto, escondido) y graphein (escribir). El arte de ocultar un mensaje mediante signos convencionales es muy antiguo, casi tanto como la escritura. Y efectivamente siempre ha sido considerado un arte hasta hace relativamente poco, cuando Claude E. Shannon publicó en dos años dos documentos que supusieron la fundación de la moderna Teoría de la Información. Esos documentos son:
Algoritmo criptográfico Comenzaremos definiendo el término algoritmo por si algún despistado no sabe qué es. algoritmo (Quizá del lat. tardío *algobarismus, y este abrev. del ár. clás. hisābu lgubār, cálculo mediante cifras arábigas).
Longitud de clave A día de hoy, gracias a los ordenadores y los superordenadores (típicamente clusters) es posible realizar complejos cómputos matemáticos en un espacio de tiempo relativamente corto. Así pues, el campo del criptoanálisis está íntimamente ligado a esta potencia de cálculo. Para que un algoritmo se considere seguro, su criptoanálisis sin la clave necesaria debe ser computacionalmente imposible de resolver. Consideramos “imposible” de resolver un sistema cuya vulneración necesite mayores recursos (económicos o en tiempo) que el beneficio reportado. Por ejemplo, ser consideraría seguro un criptosistema que requisiera miles de años para ser descifrado. Para lograr semejante complejidad, se tratan números o conjuntos de números enormes. Es obvio que a mayor tamaño de estos números, existe un mayor número de claves posibles, y la posibilidad de éxito del criptoanálisis es menor. Hoy en día este tamaño se denomina longitud de clave , y se mide típicamente en los bits que ocupa la clave. Así, una clave de un número de 1024 bits sería un número cualquiera desde el 0 hasta el 1,8 * 10^ (2^1024). Al representar las longitudes de clave como potencias de dos, es importante darse cuenta de la relación existente entre las longitudes de clave. Una clave de 1025 bits es el doble de larga que una de 1024 (2^1025 frente a 2^1024). A día de hoy se usan claves que oscilan entre los 512 bits y los 4096 bits de longitud.
AES (Rijndael): Advanced Encryption Standard (2000) RFC's relacionados #3268 - “Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS)” - ftp://ftp.rfc-editor.org/in-notes/rfc3268.txt #3394 - “Advanced Encryption Standard (AES) Key Wrap Algorithm” - ftp://ftp.rfc-editor.org/in-notes/rfc3394.txt #3565 - “Use of the Advanced Encryption Standard (AES) Encryption Algorithm in Cryptographic Message Syntax (CMS)” - ftp://ftp.rfc-editor.org/in-notes/rfc3565.txt #3686 - “Using Advanced Encryption Standard (AES) Counter Mode With IPsec Encapsulating Security Payload (ESP)” - ftp://ftp.rfc-editor.org/in-notes/rfc3686.txt Descripción En 1977 el NIST organizó un concurso a nivel mundial para crear un sistema que cumpliera los requisitos de seguridad necesarios para convertirse en estándar a nivel mundial. Este estándar se denomina AES (Advanced Encryption Standard) y el algoritmo AEA (Advanced Encryption Algorithm). Muchos expertos presentaron sus propuestas, pero el ganador fue el conocido como algoritmo Rijndael , creado por los belgas Vincent Rijmen y Joan Daemen. Se trata de un algoritmo simétrico que puede funcionar mediante cifrado en bloques de longitud variable o en flujo y que se sirve de claves de longitud variable ( 128, 192 ó 256 bits ). Su algoritmo puede resumirse de la siguiente forma: A Toma el texto en claro y lo cifra en bloques para obtener el punto intermedio llamado^ Estado , que se representa como una matriz de bytes de cuatro filas. B A partir del^ Estado , se realizan las siguientes operaciones en forma de bucle durante un número determinado de iteraciones. b1 Sustitución de bytes^ no lineal , operando independientemente sobre cada uno de los bytes del Estado. b2 Desplazamiento de las filas del Estado cíclicamente con^ offsets diferentes. b3 Mezcla^ de^ columnas,^ que^ se^ realiza^ multiplicando^ las^ columnas^ del^ Estado^ módulo^ _x4+1_* , consideradas como polinomios en GF(28) , por un polinomio fijo c(x). b4 Adición de la clave de vuelta, en la que se aplica al Estado por medio de un simple^ XOR. La clave de cada vuelta se deriva de la clave de cifrado mediante el esquema de clave. C El esquema de clave consiste en dos operaciones, expansión de clave y selección de clave de vuelta de cifrado, y el proceso de cifrado consta de tres pasos: una adición inicial de la clave de vuelta, n-1 vueltas de cifrado y una vuelta final. _ FUENTE: HTML Web, Seguridad, Criptografía_* (http://www.htmlweb.net/) Se puede encontrar información mucho más detallada de la descripción algorítmica de AES en el siguiente enlace: http://home.ecn.ab.ca/~jsavard/crypto/co040401.htm. Hoy en día AES es, efectivamente, el estándar en cifrado simétrico, siendo usado por sistemas tan populares como Pretty Good Privacy (PGP).
IDEA: International Data Encryption Algorithm (1990) RFC's relacionados #3058 - “Use of the IDEA Encryption Algorithm in CMS“ - ftp://ftp.rfc-editor.org/in-notes/rfc3058.txt Descripción IDEA fue creado en 1990 por Xuejia Lai y L. Massey. Se trata de un algoritmo simétrico de cifrado en bloques de 64 bits. Su funcionamiento se basa en operaciones sencillas como multiplicaciones de enteros, sumas y XOR. IDEA trabaja con claves de 128 bits de longitud. Es importante reseñar que IDEA es un algoritmo que si bien es de uso libre para fines no comerciales, sí que está cubierto por patentes, concretamente:
Los criptosistemas de resumen, conocidos familiarmente como funciones o algoritmos hash, constituyen un tipo especial de criptosistemas. Muchos manuales de criptografía los sitúan como un subgrupo de los criptosistemas simétricos, pero a mí me gusta considerarlos como un grupo independiente debido a sus características especiales. Para empezar, en los algoritmos hash no existe el concepto de clave criptográfica, ni tampoco el concepto de descifrado; el concepto de algoritmo criptográfico se mantiene; y surge un nuevo concepto denominado fingerprint , huella digital , resumen ó hash. Así pues, un algoritmo tipo hash acepta como entrada un mensaje de longitud arbitraria, y tras efectuar sobre él los cálculos determinados por el algoritmo, devuelve una cadena de caracteres que representa el hash del mensaje al que aplicamos el algoritmo. Este hash NO puede ser denominado criptograma dado que no es posible el proceso de descifrado que nos devolvería el mensaje original. Para que quede más claro, vamos a ver las características que definen a los criptosistemas de tipo hash:
SHA-1: Secure Hash Algorithm - 1 (1994) RFC's relacionados #2841 - “IP Authentication using Keyed SHA1 with Interleaved Padding (IP-MAC)“ - ftp://ftp.rfc-editor.org/in-notes/pdfrfc/rfc2841.txt.pdf #3174 - “US Secure Hash Algorithm 1 (SHA1)“ - ftp://ftp.rfc-editor.org/in-notes/pdfrfc/rfc3174.txt.pdf Descripción SHA-1 fue ideado por el NIST en 1994 como ampliación al algoritmo SHA. Se trata de una función criptográfica de tipo hash que acepta una entrada de 2^64 bits como máximo (2048 Terabytes) y devuelve como salida una cadena de 160 bits. SHA-1 es ligeramente más lento que MD5, pero también es computacionalmente más complejo y su salida es de mayor longitud, por lo que se considera de forma global más seguro. RIPEMD-160: RACE Integrity Primitives Evaluation Message Digest - 160 (1996) RFC's relacionados #2286 - “Test Cases for HMAC-RIPEMD160 and HMAC-RIPEMD128“ - ftp://ftp.rfc-editor.org/in-notes/rfc2286.txt #2857 - “The Use of HMAC-RIPEMD-160-96 within ESP and AH“ - ftp://ftp.rfc-editor.org/in-notes/rfc2857.txt Descripción RIPEMD-160 fue ideado por Hans Dobbertin , Antoon Bosselaers , y Bart Preneel como ampliación del algoritmo RIPEMD. Se trata de una función criptográfica de tipo hash que acepta una entrada un mensaje de cualquier longitud y devuelve como salida una cadena de 160 bits. A pesar de haberse desarrollado mucho más libre que SHA-1, no es muy popular y tampoco ha sido muy estudiado por criptólogos. No obstante existen dos extensiones de este algoritmo (que son menos usadas aún) denominadas RIPEMD-256 y RIPEMD-320. Las longitudes de sus salidas son respectivamente 256 y 320 bits, con lo que se reduce significativamente las colisiones débiles y fuertes.
RSA: Rivest - Shamir - Adleman (1978) RFC's relacionados #2792 - “DSA and RSA Key and Signature Encoding for the KeyNote Trust Management System“ - ftp://ftp.rfc-editor.org/in-notes/rfc2792.txt #3110 - “RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)” - ftp://ftp.rfc-editor.org/in-notes/rfc3110.txt #3447 - “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1” - ftp://ftp.rfc-editor.org/in-notes/rfc3447.txt Documentos relacionados
Veamos un ejemplo eminentemente práctico de cómo generar un criptosistema RSA:
1 Serán de información pública un número primo grande p y a , una raíz primitiva de 1 módulo p (es decir, tal que a p-1^ ≡ (mod p) y a d-1^ ≠ (mod p) para todo d tal que 1 < d < p ) 2 La clave privada del usuario B es un entero^ k^ B^ escogido dentro del intervalo^ [1 , p-1] 3 La clave pública de B es el entero^ K^ B^ ≡ a^ k (^) B (^) (mod p) 4 Se supone que el emisor A quiere enviar un mensaje^ M (1^ ≤^ M^ ≤ p-1)^ al receptor B Proceso de Cifrado (e) 1e Escoger aleatoriamente un entero^ k^ A^ tal que^^1 ≤ k^ A^ ≤ p-1^ , que constitye su clave secreta 2e Calcular la clave de cifrado a partir de su propia clave privada y la clave pública de B, Q ≡ K kB A^ (mod p) 3e Cifrar el mensaje M según la expresión^ C^ ≡^ Q * M (mod p) Proceso de Descifrado (d) 1d Obtener Q gracias a la clave pública de A,^ K^ A^ , y a su propia clave secreta mediante la fórmula Q ≡ K kA B^ (mod p) 2d Recuperar M a partir de^ M^ ≡^ (Q^ -1) p * C (mod p) donde (Q -1) p denota el inverso de Q en módulo p _ FUENTE: Pino Caballero Gil, “Introducción a la Criptografía” 2ª Edición actualizada, Ra-Ma. (2002), 65. ISBN 84-7897-520-_* Es importante señalar que aunque el sistema Diffie-Hellman siempre ha sido libre, la patente que lo cubría (US 4.200.770) expiró el 6 de Septiembre de 1997.
RW: Rabin - Williams (1980) Documentos relacionados