“ESTUDIO MONOGRÁFICO SOBRE TÉCNICAS DE CRIPTOGRAFÍA” TRABAJO DE GRADUACIÓN PREPARADO PARA LA FACULTAD DE INGENIERÍA PARA OPTAR AL GRADO DE: INGENIERÍA EN CIENCIAS DE LA COMPUTACIÓN POR: NURY MERCEDES MARTÍNEZ SILVA JUNIO DE 2004 SOYAPANGO – EL SALVADOR – AMÉRICA CENTRAL UNIVERSIDAD DON BOSCO RECTOR ING. FEDERICO MIGUEL HUGUET RIVERA SECRETARIO GENERAL LIC. MARIO RAFAEL OLMOS DECANO DE LA FACULTAD DE INGENERÍA ING. ERNESTO GODOFREDO GIRÓN ASESOR DEL TRABAJO DE GRADUACIÓN ING. OSCAR DURÁN VIZCARRA JURADO EVALUADOR LIC. SANTIAGO ABARCA ING. EDUARDO RIVERA ING. CARLOS GIOVANNI VÁSQUEZ TUTOR DEL TRABAJO DE GRADUACIÓN LIC. JORGE MAURICIO COTO UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA EN CIENCIAS DE LA COMPUTACIÓN JURADO EVALUADOR DEL TRABAJO DE GRADUACIÓN LIC. SANTIAGO ABARCA ING. EDUARDO RIVERA JURADO JURADO ING. CARLOS GIOVANNI VÁSQUEZ JURADO ING. OSCAR DURÁN VIZCARRA LIC. JORGE MAURICIO COTO ASESOR TUTOR AGRADECIMIENTOS Gracias a Dios y a la Virgen María por haberme dado fuerzas para poder finalizar este trabajo, uno de mis tantos sueños, y a las personas que a lo largo de mi camino, de una u otra forma, contribuyeron a este logro: A mi madre, Quien estoy segura siempre ha seguido mis trabajos, esfuerzos, dificultades y progresos. A mis hermanos, Por ser ejemplo de superación y porque esos recuerdos de infancia, y esos niños que aún queremos conservar dentro de nosotros, nos permiten reunirnos y creer que el tiempo no ha pasado. A la familia Silva, Mi abuelita Herminia, y mis tías Yolanda y Elsa, por su cariño, comprensión y por su permanente apoyo. A la familia Acuña, Mis tíos Carlos, Arnoldo, Agenor y mi primo Carlos, por brindarme siempre ese cariño tan especial y sus palabras de aliento. A mi tía Carmen por esa dulzura y sencillez con las que siempre me animó a superarme. A Oscar Durán y Margot de Durán, Por haberme permitido invadir su casa mientras trabajaba en este proyecto, por brindarme su confianza y cariño e incentivarme a seguir adelante. A Oscar Durán Vizcarra, Por creer en mí y en el proyecto, por exigirme y enseñarme a trabajar con calidad, por ser un gran amigo, por su apoyo y ayuda incondicional. A mis amigos y compañeros de trabajo, Cecyl, Ernesto, Luis y Nixon, por esa amistad tan bonita que nos une y porque desinteresadamente realizaron mis tareas mientras yo me encontraba dedicada a finalizar este proyecto. A mi jefe, Carlos Gómez, por todo el tiempo que me permitió tomarme para dedicarme a concluir esta ardua tarea. A la familia Thumann, Por sus palabras de aliento, cariño, colaboración y apoyo. A mi amiga Carmen Aida Mojica, Quien tanto me apoyó para concretar esta meta y quien ahora desde el cielo se regocija al verla finalizada. DEDICATORIA A mi padre, Francisco Javier Martínez, Por haberme enseñado a luchar, a vivir la vida con optimismo, y a creer en mí y en mis propias fuerzas. Por haberme corregido a tiempo para luego dejarme tomar mis propias decisiones, y sentirse orgulloso de ellas. Por nunca haber escatimado esfuerzos para instruirme. Por contagiarme de ese espíritu de superación y esas ganas infinitas de vivir que él mismo ha mostrado. Por enseñarme el significado de la palabra sacrificio. Por señalar mis errores con el único afán de hacerme crecer como persona. Por enseñarme que aun en la peor de las situaciones siempre la vida deja una lección y que por lo tanto la palabra derrota no existe. Por el cariño, la comprensión, el respeto y confianza que siempre ha tenido hacia mí. Porque un día el soñó con que su única hija se graduara de la Universidad y porque dedicó su vida a guiarme por ese camino. Porque me dio lo que nunca tuvo. Papá, este triunfo es, sobre todo, para tí. INDICE INTRODUCCIÓN.......................................................................................................................... i OBJETIVOS.................................................................................................................................. ii ALCANCES...................................................................................................................................iv LIMITACIONES.......................................................................................................................... v 1 ASPECTOS INTRODUCTORIOS...................................................................................... 1 1.1 RAMAS DE LA CRIPTOGRAFÍA.............................................................................................. 5 1.1.1 Esteganografía..................................................................................................................... 5 1.2 CODIFICACIÓN ...................................................................................................................... 6 1.2.1 Ruptura de códigos.............................................................................................................. 7 1.3 CIFRADO ................................................................................................................................ 8 1.3.1 Sustitución y transposición ................................................................................................. 8 1.3.1.1 Sustitución monoalfabética monográmica ....................................................................... 9 1.3.1.2 Sustitución monoalfabética poligrámica .......................................................................... 9 1.3.1.3 Sustitución monoalfabética tomográmica ........................................................................ 9 1.3.1.4 Sustitución polialfabética ................................................................................................. 9 1.3.1.5 Sustitución polialfabética con clave progresiva ............................................................. 10 1.3.1.6 Sustitución polialfabética con palabra clave .................................................................. 10 1.3.1.7 Sustitución polialfabética con clave automática ............................................................ 10 2 EVOLUCIÓN HISTÓRICA............................................................................................... 11 2.1 ERA ARTESANAL ................................................................................................................ 12 2.1.1 Métodos artesanales .......................................................................................................... 18 2.1.1.1 Atbash ............................................................................................................................ 18 2.1.1.2 Método de Escítalo......................................................................................................... 19 2.1.1.3 Método de César ............................................................................................................ 19 2.1.1.4 El Kama Sutra ................................................................................................................ 19 2.1.1.5 Nomenclator................................................................................................................... 20 2.1.1.6 Método de Alberti .......................................................................................................... 20 2.1.1.7 Método de Trithemius.................................................................................................... 20 2.1.2 Sistema de autoclave ......................................................................................................... 20 2.1.2.1 Método de Porta ............................................................................................................. 21 2.1.2.2 Método de Vigenère....................................................................................................... 22 2.1.2.3 Método de Playfair......................................................................................................... 23 2.1.2.4 Caracterización de la era artesanal................................................................................. 24 2.1.2.5 Criptosistema de Vernam............................................................................................... 24 2.1.2.6 ADFGVX....................................................................................................................... 25 2.1.3 Otros métodos ................................................................................................................... 26 2.2 ERA TÉCNICA ...................................................................................................................... 27 2.2.1 Modelos de máquinas de cifrado....................................................................................... 27 2.2.1.1 Aparato de discos codificadores de Alberti.................................................................... 27 2.2.1.2 El cilindro de Jefferson .................................................................................................. 27 2.2.1.3 El cilindro de ruedas codificadas M-94/CSP-488 .......................................................... 28 2.2.1.4 La máquina ENIGMA.................................................................................................... 29 2.2.1.5 Las máquinas de Hebern ................................................................................................ 30 2.2.1.6 El convertidor M-209 (CSP-1500) de Hagelin .............................................................. 30 2.2.1.7 La máquina Khrya.......................................................................................................... 31 2.2.1.8 Las máquinas TYPEX y SIGABA................................................................................. 31 2.2.1.9 La máquina NEMA........................................................................................................ 32 2.2.2 Caracterización de la era técnica....................................................................................... 33 2.3 ERA DIGITAL ....................................................................................................................... 33 2.3.1 Los aportes de Shannon .................................................................................................... 33 2.3.2 Surgimiento de los conceptos de complejidad, clave pública y zero-knowledge ............. 35 3 MÉTODOS MODERNOS DE CRIPTOGRAFÍA DIGITAL ......................................... 40 3.1 SISTEMAS DE CIFRADO DE BLOQUE ................................................................................... 40 3.1.1 Sistemas de cifrado de bloque simétrico........................................................................... 40 3.1.2 Modos de cifrado de bloque.............................................................................................. 41 3.1.2.1 ECB - Electronic codebook............................................................................................ 41 3.1.2.2 CBC – Cipher block chaining ........................................................................................ 42 3.1.2.3 CFB – Cipher-Feedback................................................................................................. 43 3.2 SISTEMA DE CIFRADO DE FLUJO ........................................................................................ 43 3.2.1 Sistemas de cifrado de flujo síncrono ............................................................................... 44 3.2.2 Sistemas de cifrado de flujo asíncrono o autosincronizante.............................................. 45 3.2.3 Diferencia básica entre el cifrado de flujo síncrono y el autosincronizante...................... 45 3.3 MODOS DE CIFRADO DE FLUJO .......................................................................................... 46 3.3.1.1 OFB – Output feedback ................................................................................................. 46 3.3.1.2 CTR – Counter ............................................................................................................... 46 4 ALGORITMOS DE LLAVE PRIVADA .......................................................................... 49 4.1 ELEMENTOS ESTRUCTURALES DE USO FRECUENTE ......................................................... 49 4.1.1 Redes de Feistel ................................................................................................................ 49 4.1.2 Cajas de sustitución........................................................................................................... 50 4.2 LUCIFER .............................................................................................................................. 51 4.2.1 La función F ...................................................................................................................... 53 4.2.2 Cajas de sustitución y transposición ................................................................................. 53 4.2.3 Ataques a Lucifer .............................................................................................................. 54 4.3 DATA ENCRYPTION STANDARD (DES) .................................................................... 54 4.3.1 Establecimiento del estándar............................................................................................. 56 4.3.2 Descripción del DES......................................................................................................... 56 4.3.3 Estructura interna del algoritmo........................................................................................ 57 4.3.4 La permutación inicial....................................................................................................... 59 4.3.5 La transformación de la llave............................................................................................ 60 4.3.6 La permutación de expansión............................................................................................ 61 4.3.7 Las cajas de sustitución..................................................................................................... 62 4.3.8 Las cajas de permutación .................................................................................................. 64 4.3.9 La permutación final ......................................................................................................... 65 4.3.10 Proceso de descifrado del DES ....................................................................................... 65 4.3.11 Modos de operación del DES.......................................................................................... 65 4.3.11.1 ECB (Electronic Code Book)....................................................................................... 65 4.3.11.2 CBC (Cipher Block Chaining) ..................................................................................... 66 4.3.11.3 CFB (Cipher Feedback) ............................................................................................... 66 4.3.11.4 OFB (Output Feedback)............................................................................................... 67 4.3.12 Seguridad del DES.......................................................................................................... 68 4.3.13 Llaves débiles del DES ................................................................................................... 68 4.3.14 Longitud de la llave......................................................................................................... 69 4.3.15 Críticas al diseño del DES............................................................................................... 69 4.3.16 Resultados adicionales .................................................................................................... 70 4.3.17 Variantes del DES........................................................................................................... 71 4.3.17.1 Triple DES ................................................................................................................... 71 4.3.17.2 DES con sub-llaves independientes ............................................................................. 73 4.3.17.3 DESX ........................................................................................................................... 73 4.3.17.4 CRYPT(3) .................................................................................................................... 73 4.3.17.5 DES generalizado......................................................................................................... 73 4.3.17.6 DES con cajas de sustitución alternativas .................................................................... 74 4.3.17.7 RDES ........................................................................................................................... 74 4.3.17.8 SnDES........................................................................................................................... 74 4.3.17.9 DES con cajas dependientes de llaves.......................................................................... 74 4.3.18 ¿Qué tan seguro es DES ahora? ...................................................................................... 75 4.4 INTERNATIONAL DATA ENCRYPTION ALGORITHM (IDEA)............................................ 75 4.4.1 Proceso de cifrado............................................................................................................. 77 4.5 MADRYGA ........................................................................................................................ 78 4.5.1 Descripción del algoritmo ................................................................................................. 79 4.6 SKIPJACK ......................................................................................................................... 81 4.7 BLOWFISH........................................................................................................................ 82 4.7.1 El funcionamiento de Blowfish......................................................................................... 82 4.7.2 La seguridad de Blowfish.................................................................................................. 85 4.8 RIJNDAEL ......................................................................................................................... 85 4.8.1 Especificaciones del algoritmo ......................................................................................... 86 4.8.1.1 Los Estados, las llaves y el número de vueltas .............................................................. 86 4.8.1.2 Número de vueltas.......................................................................................................... 88 4.8.1.3 Operaciones en cada vuelta............................................................................................ 88 4.8.1.4 Transformación BytesSub............................................................................................. 89 4.8.1.5 La transformación ShiftRow.......................................................................................... 90 4.8.1.6 La transformación MixColumn...................................................................................... 91 4.8.1.7 La adición de las sub llaves - AddRoundKey ................................................................ 92 4.8.1.8 Gestión de llaves ............................................................................................................ 93 4.8.1.9 Expansión de la llave ..................................................................................................... 93 4.8.1.10 Selección de llave en cada vuelta - Round Key Selection ........................................... 94 4.8.2 Aspectos de implementación............................................................................................. 94 4.8.2.1 Procesadores de 8 bits .................................................................................................... 94 4.8.2.2 Procesadores de 32 bits .................................................................................................. 95 4.8.2.3 Paralelismo..................................................................................................................... 95 4.8.2.4 Adaptación de hardware................................................................................................. 95 4.8.3 Proceso de descifrado........................................................................................................ 95 4.8.4 Implementación del descifrador Rijndael ......................................................................... 96 4.8.4.1 Adaptabilidad al hardware ............................................................................................. 96 4.8.5 Incremento del número de vueltas .................................................................................... 96 4.8.6 Llaves débiles.................................................................................................................... 97 4.8.7 Fortaleza estimada............................................................................................................. 97 4.8.8 Metas de seguridad............................................................................................................ 98 4.8.8.1 Seguridad K.................................................................................................................... 98 4.8.8.2 Cifradores de bloque herméticos.................................................................................... 98 4.8.8.3 Metas.............................................................................................................................. 98 4.8.9 Ventajas y limitaciones de Rijndael.................................................................................. 99 4.9 COMPARACIÓN ENTRE EL DES Y EL RIJNDAEL ............................................................. 100 4.9.1 Ámbitos de uso................................................................................................................ 100 4.9.2 Llaves de cifrado............................................................................................................. 101 4.9.3 Tamaño de bloque de datos............................................................................................. 103 4.9.4 Aumento en la seguridad................................................................................................. 103 4.9.4.1 Variación de la velocidad............................................................................................. 104 4.9.5 Estructura interna de los algoritmos................................................................................ 104 4.9.5.1 Representación de la información................................................................................ 104 4.9.5.2 Permutaciones empleadas ............................................................................................ 104 4.9.5.3 Estructura de la red....................................................................................................... 105 4.10 RESISTENCIA FRENTE A LOS PRINCIPALES ATAQUES ................................................... 106 4.10.1.1 Criptoanálisis diferencial ........................................................................................... 106 4.10.1.2 Criptoanálisis lineal.................................................................................................... 106 4.10.1.3 Ataques por análisis temporal (Timing attacks) ......................................................... 107 4.10.1.4 Ataque mediante la existencia de llaves débiles ........................................................ 107 4.11 DE LA CRIPTOGRAFÍA SIMÉTRICA A LA ASIMÉTRICA................................................... 107 5 ALGORITMOS DE LLAVE PÚBLICA......................................................................... 109 5.1 EL PROTOCOLO DIFFIE HELLMAN PARA INTERCAMBIO DE LLAVES ............................ 109 5.2 RSA.................................................................................................................................... 110 5.2.1 Seguridad del RSA.......................................................................................................... 111 5.2.2 Firmas digitales y RSA ................................................................................................... 111 5.2.3 Firmando un documento utilizando RSA........................................................................ 112 5.3 USOS DEL RSA .................................................................................................................. 112 5.4 CIFRADO UTILIZANDO ALGORITMOS DE LLAVE PÚBLICA ............................................. 112 5.5 SISTEMAS DE CIFRADO HÍBRIDOS .................................................................................... 114 5.5.1 Cifrado con sistemas de cifrado híbridos ........................................................................ 114 5.5.2 El sistema híbrido de cifrado más importante: PGP ....................................................... 114 5.5.3 Cifrado utilizando sistemas de cifrado híbrido ............................................................... 116 5.6 FUNCIONES RESUMEN (HASH) ......................................................................................... 117 5.6.1 MD4 – Message Digest 4................................................................................................ 119 5.6.2 MD5 – Message Digest 5................................................................................................ 119 5.6.3 El SHA como estándar .................................................................................................... 119 5.6.4 Seguridad del algoritmo SHA ......................................................................................... 119 5.6.5 SHA-256, SHA-384 y SHA-512..................................................................................... 120 5.7 ¿CUÁL FUNCIÓN RESUMEN SE DEBE UTILIZAR? ............................................................. 120 5.8 FIRMAS DIGITALES ........................................................................................................... 120 5.9 PGP PRETTY GOOD PRIVACY ......................................................................................... 125 5.9.1 Debilidades de PGP......................................................................................................... 126 CONCLUSIONES BIBLIOGRAFIA ANEXOS ANEXO I – Criptoanálisis ANEXO II – Ejemplo de la primera iteración de un texto al que se aplica el algoritmo DES ANEXO III – Tabla comparativa entre cifrado de llave secreta y cifrado de llave pública ANEXO IV – Tabla comparativa de estructuras de algunos algoritmos de cifrado de bloques ANEXO V – Tabla comparativa del rendimiento de algunos algoritmos de cifrado de bloque ANEXO VI – El Modelo OSI ANEXO VII – SSL - Secure Socket Layer ANEXO VIII – Kriptonita - Aplicación para cifrado y descifrado de datos i Introducción Esta monografía recoge información sobre las bases, historia y una importante serie de algoritmos utilizados para el cifrado de datos, con el propósito de que el lector cuente con información suficiente que le permita explorar desde distintas perspectivas el campo de la criptografía. A fin de lograr lo anterior, este trabajo ha sido estructurado en cinco capítulos. En el primero se exploran aspectos generales que están a la base de este campo de estudios; se hace particular énfasis en la teoría de la información, debido al impulso que esta brindó al desarrollo de la criptografía y el criptoanálisis contemporáneos. En el segundo capítulo se presenta una reseña histórica de la evolución que la criptografía ha experimentado desde sus orígenes hasta la actualidad. Se destacan tres períodos a lo largo de la historia que están delimitados por determinantes cambios de paradigmas. El tercer capítulo presenta información sobre algunas técnicas importantes de las que se hace uso en algunos de los algoritmos de cifrado contemporáneos. Se da especial énfasis a los modos de operación más utilizados y se efectúa una comparación entre ellos. El cuarto capítulo esta destinado a la descripción de una serie de algoritmos de llave privada. Se brinda mayor atención a los algoritmos DES y Rijndael por la importancia que reviste el hecho de que se les haya adoptado por estándares. El quinto capítulo aborda el estudio de los algoritmos de llave pública. Adicionalmente se ofrecen detalles acera de sistemas híbridos en los que se explotan las cualidades de los algoritmos de llave ii privada y de llave pública, también se provee información sobre firmas digitales y funciones resumen. El lector encontrará también una serie de anexos que pretenden documentar de forma resumida aspectos importantes que permiten complementar las ideas vertidas en este trabajo. Además, se incluye el código fuente de la aplicación que se desarrolló para poder realizar pruebas con tres de los algoritmos descritos a lo largo del documento. La elaboración del trabajo requirió una intensa consulta de material bibliográfico. Es de destacar que mucha información importante esta contenida en artículos y que por lo tanto la información disponible se encuentra dispersa. Se ha procurado recoger en este trabajo la información que se consideró más relevante integrándola en este documento. iii Objetivos Objetivo General Estudiar, describir y analizar el funcionamiento de las diferentes técnicas que se utilizan para el cifrado de datos. Objetivos específicos Investigar las técnicas de cifrado existentes, sus orígenes y el porqué son necesarias. Generar un documento que describa el funcionamiento de cada una de las técnicas de encriptación. Comparar las técnicas sometidas a análisis considerando aspectos como eficiencia y seguridad. Desarrollar una aplicación utilizando lenguaje C, que sirva como herramienta de apoyo en la enseñanza de materias relacionadas a la criptografía de datos. iv Alcances El estudio describe técnicamente los orígenes de la criptografía. Se identifican las técnicas de criptografía existentes y los diferentes campos en que éstas son aplicadas. Se describe paso a paso el funcionamiento de las técnicas de criptografía existentes y sus áreas de aplicación. Se demuestra el proceso de cifrado de datos para algoritmos mediante una aplicación desarrollada para tal fin. Limitaciones El estudio no involucra el desarrollo de nuevas técnicas para el cifrado de datos. La aplicación demostrativa sólo incluye algunos de los algoritmos más importantes en la actualidad. 1 1 1 Aspectos introductorios La necesitad de privacidad en la información es tan antigua como la comunicación. En la actualidad esta necesidad adquiere mayor relevancia debido al nivel de desarrollo y expansión de las de redes de comunicación, así como al extensivo uso de equipo informático en el procesamiento y transmisión de información crítica. El proceso de comunicación puede ser modelado de acuerdo a lo que se presenta en la figura 1.1 ������ ����� � ���� ��������� � ��� � �� �������� ��������������� �������������� ��������� � ��� � ������� ��� ���� ���� �������� �������� ���� � � ��������� ��� ������� � ����������������� ���� Figura 1.1 Modelo genérico de sistema de comunicación. 2 La Figura 1.1 representa el esquema de comunicación comúnmente conocido como el paradigma de Shannon. Una fuente genera un mensaje con la intención de hacerlo llegar a un destino. La fuente y el destino son dos entidades separadas (eventualmente distantes) que están vinculadas por un canal, que es el soporte de la comunicación por una parte, pero que por otra es donde se alojan perturbaciones. Las perturbaciones tienen por efecto crear una diferencia entre el mensaje emitido y el recibido. Estas perturbaciones son de naturaleza aleatoria, es decir que no es posible (ni para la fuente ni para el destino) prever de forma certera su efecto. El canal no sólo está expuesto al ruido, sino también a ataques. Existen diferentes tipos de ataques, tal como se ilustra en la Figura 1.2, el ataque puede ser pasivo, si se limita a la intercepción del mensaje o activo cuando el mensaje ha sido capturado, modificado o eliminado. Fuente Destino Tercero no deseado Intercepción Ataque pasivo Fuente Destino Tercero no deseado Eliminación Ataques activos Fuente Destino Tercero no deseado Modificación Fuente Destino Tercero no deseado Fabricación Figura 1.2 Tipos de ataque. 3 En trabajos realizados en Bell Labs por Claude Shannon1, se contempla la conveniencia de efectuar codificación de fuente y canal para contrarrestar los efectos nocivos de las perturbaciones en la comunicación. Los resultados fundamentales de la teoría de la información fueron establecidos públicamente por Shannon desde 1948 (a la óptica de las telecomunicaciones), y en particular el hecho capital, y totalmente imprevisto en la época, de que es posible establecer una transmisión de información exenta de errores, pese a la existencia de ruido de fondo, pero ello supone una representación apropiada de la información (normalmente identificada con en término codificación) y la imposición de restricciones al caudal (o densidad) de información transmitida, que dependen de las características del canal. Sin embargo, hubo que esperar los desarrollos recientes en informática y telecomunicaciones para ver aparecer sistemas que se aproximen efectivamente a las condiciones extremas enunciadas por Shannon. ������ ����� � ���� ����� �� �������� ������� �� �������� ����� �� �������� � �� � Figura 1.3 Modelo de comunicación con codificación/decodificación de fuente/canal. El modelo de comunicación "ideal" puede ser esquematizado tal como se representa en la Figura 1.3. Ahí se ven aparecer dos conjuntos de codificación CS y CC (y los elementos de decodificación correspondientes DS y DC): CS codifica el mensaje emitido por la fuente de manera que se elimine (o reduzca) la redundancia que contenga; CC codifica los mensajes a la entrada del canal, introduciendo redundancia bajo una forma apropiada que permita la utilización del canal sin errores (o con una tasa de errores que responda a las especificaciones técnicas del sistema). Es de notar que en este esquema las conversiones físicas necesarias para la utilización del canal están implícitamente representadas en el bloque "canal". Nótese que el estudio de canales físicos y técnicas de conversión asociadas constituye una parte importante de las telecomunicaciones, de la que no nos ocupamos sin embargo en el marco de este trabajo.2 Si bien los trabajos de Shannon datan de los años 40, a lo largo de la historia siempre se ha recurrido a técnicas que procuran proteger la información del conocimiento de personas distintas del destinatario originalmente previsto por quien la emite. Estas técnicas pueden consistir en ocultar la información, en representarla mediante códigos de uso restringido o en el desordenamiento de los elementos del mensaje. El conjunto de estas técnicas recibe el nombre de Criptografía.3 1 Shannon, C. “The Mathematical Theory of Communication”. Reprinted with corrections from The Bell System Technical Journal. Vol. 27. pp. 379-423, 623-656. July-October, 1948. 2 Wehenkel, L. Théorie de l'information et du codage. Faculté des Sciences Appliquées. Université de Liège. Liège. 2001. pp. 7-8. 3 Este término procede del las palabras griegas “kryptos” que significa oculto o secreto, y “graphein” que significa escritura o tratado 4 También existe una serie de técnicas cuyo objeto es volver ininteligible a terceros la información que fluye entre fuente y destino sin el consentimiento de éstos. El conjunto de tales técnicas se denomina Criptoanálisis. La suma de conocimientos de la criptografía y el criptoanálisis integra la Criptología. Para volver ininteligible un mensaje, al que se le llama mensaje claro, la fuente o emisor aplicará un método criptográfico al que de forma genérica se denomina algoritmo, así como una llave, que especifica los detalles exactos para un procedimiento criptográfico en particular, esto arroja al canal de comunicación la misma información contenida en el mensaje claro pero de forma que no es comprensiva para terceros, a esto se le llama criptograma. Para recuperar el mensaje claro, que era la forma que tenía originalmente la información, el destino o receptor debe tomar el criptograma y aplicarle el algoritmo y la llave previamente convenidos con la fuente o emisor. Todo esto se ilustra en la figura 1.4. Saludemo s la patria orgullosos de hijos suyos podernos llamar y juremos Saludemo s la patria orgullosos de hijos suyos podernos llamar y juremos Mensaje claro Mensaje claro Algoritmo Algoritmo Criptograma Fuente (emisor) Destino (receptor) Clave Clave Figura 1.4 Esquema de un proceso criptográfico En la jerga técnica se suele llamar encriptamiento o crifrado al proceso por medio del cual se vuelve ininteligible un mensaje claro, y se habla casi indistintamente de decriptamiento o descifrado para referirse al proceso contrario (recuperar el mensaje claro a partir del criptograma recibido). A este respecto es conveniente precisar que en español los términos encriptamiento y decriptamiento no existen. En inglés y en francés, sin embargo, existe cierto matiz entre las nociones de descifrado y decriptamiento: mientras el término descifrado (to decipher en inglés, y dechiffrer en francés) se refiere a la recuperación del mensaje claro por parte del destinatario a partir de la aplicación del algoritmo y la llave convenidos con la fuente, el término decriptar (to decrypt en inglés, y decrypter en francés) se refiere a obtener el mensaje claro sin conocimiento a priori del mecanismo criptográfico utilizado, por lo cual este último término, siendo más juiciosos en el uso del lenguaje, debería utilizarse más para aludir al caso de la intervención de un tercero que trata de conocer el mensaje claro sin el aval de la fuente y el destino, es decir, en caso de un ataque.4 4 Real Academia Española. Diccionario de la lengua española. Real Academia Española. Madrid. 1992. 21ª Edición. CLE International. Dictionaire du Français. Dictionaires LeRobert. CLE International. Paris. 1999 Stern, J. La science du secret. Éditions Odile Jacob. Paris. 1998. pp. 10-11. 5 1.1 Ramas de la Criptografía Antes se dijo que para proteger la información, a lo largo de la historia, se ha recurrido a tres tipos de técnicas: o Aquellas en las que la información se oculta reciben el nombre de esteganografía; o Aquellas en las que la información es representada mediante códigos que sólo conocen la fuente y el destino se denominan codificación; y o Aquellas en las que el mensaje es desordenado mediante la sustitución o cambio de posición de sus elementos, recibe el nombre de cifrado. Lo anterior se ilustra en el esquema de la figura siguiente: Figura 1.5 Técnicas comprendidas en la Criptología. En los siguientes apartados nos dedicaremos a la descripción de las tres ramas de la criptografía. 1.1.1 Esteganografía Esta rama de la criptografía consiste camuflar o enmascarar el mensaje de forma que mientras se le transporta permanezca oculto. Es decir que para proteger la información, pretende esconder la existencia del mensaje. El término esteganografía, que viene del griego stegos (cubierta), significa "escritura oculta" o "escritura encubierta" y es el conjunto de técnicas que nos permiten ocultar o camuflar cualquier tipo de datos. La esteganografía tiene un origen muy antiguo. Una de las primeras y sencillas técnicas esteganográficas era la tinta invisible que consistía en ocultar los mensajes escritos con jugo de limón en un papel en el que al calentarlo aparece lo escrito. Criptología Criptografía Criptoanálisis Esteganografía Códigos Cifras 6 Herodoto narra en sus Historias los conflictos entre Grecia y Persia en el siglo V AC. De acuerdo a lo que relata, la utilización de ciertas técnicas criptográficas salvo a Grecia de ser conquistada por Jerjes, rey déspota de los persas. Es precisamente Herodoto el primero en registrar el uso de técnicas esteganográficas. Un cierto Histio, queriendo establecer contacto secreto con su superior, Aristágoras de Mileto, escogió a un esclavo leal, hizo afeitar su cabeza y escribió sobre su cuero cabelludo el mensaje que deseaba enviar; esperó a que le creciera de nuevo el cabello y lo envió al encuentro de Aristágoras con la instrucción de hacerse rapar nuevamente para dejar visible el mensaje.5 Herodoto también relata que para informar a los espartanos de un ataque inminente de los persas, el rey Demaratos utilizó una estrategia muy elegante: pegó tablillas, les retiró la cera, grabó en la madera el mensaje secreto y los recubrió nuevamente con cera. De este modo, las tablillas, aparentemente vírgenes, no llamaron la atención. El problema era que los griegos no sabían qué ocurría cuando Gorgo, la esposa de Leonidas, tuvo la idea de raspar la cera.6. Las técnicas antes explicadas se han adaptado a los nuevos tiempos y, en muchas ocasiones, aparecen combinadas con métodos criptográficos. Las técnicas esteganográficas más comunes en informática se basan en ocultar la información en archivos gráficos7 o archivos de sonido. Cuando se usan archivos de sonido la información oculta aparece como ruido de fondo, pudiendo confundirse fácilmente con una simple grabación con algo de ruido. Para ocultar información dentro de una imagen requiere de dos archivos. El primero es la imagen que contendrá la información a ser ocultada, llamada imagen cubierta, y el segundo archivo es el mensaje a ocultar, este mensaje puede ser texto claro, cifrado u otras imágenes. Luego que ambos archivos son combinados, la imagen resultante es denominada estego-imagen8. 1.2 Codificación Un código es esencialmente un lenguaje secreto inventado para esconder el sentido de un mensaje. 5 Herodoto. Los nueve libros de la Historia. Clásicos Jackson. México DF. 1966. pp. 291-294. 6 Herodoto. Op. Cit. pp. 348-356. 7 Para una computadora, una imagen es un arreglo de números que representan intensidades de luz en varios puntos (píxeles). Un tamaño común de imagen es 640 X 480 píxeles y 256 colores, u 8 bits por píxel, así, una imagen podría contener alrededor de 300kb de datos. Las imágenes digitales son típicamente almacenadas en archivos de 24 u 8 bits. Una imagen de 24 bits provee más espacio para ocultar información; sin embargo, puede ser una imagen muy grande (a excepción de imágenes JPEG). Todos las variaciones de color por píxeles son derivadas de los tres colores primarios: rojo, verde y azul. Cada color primario es representado por 1 byte; una imagen de 24 bits ocupará 3 bytes por píxel para representar un color determinado, estos tres bytes pueden ser representados como valores hexadecimales, decimales y binarios. En muchas páginas web, el color de fondo es representado por un número hexadecimal, un fondo color blanco tendrá el valor de FFFFFF: 100 por cierto rojo (FF), 100 por ciento verde (FF) y 100 por ciento azul (FF). Su valor decimal es 255, 255, 255 y su valor binario 11111111, 11111111, 11111111, los cuales son los tres bytes que componen el color blanco. 8 Johnson, N., Jajodia, S. Exploring Steganography: Seeing the Unseen. Computer Practices. S/l,. S/f. Pp. 26-34. 7 Sea el caso del texto “Águila 3, aquí águila 2, el león está en la jaula”. En esta frase, por ejemplo, el agente “Águila 2” usa palabras código para avisar al agente “águila 3” que el sujeto sometido a espionaje (león) entró en una casa (jaula). Los códigos de espionaje o militares son denominados comúnmente de números-código en lugar de palabras-código. Se utilizan libros de código que proveen un diccionario de números-código y sus respectivas palabras. El mensaje anterior podría ser codificado como: 85772 24799 10090 59980, donde, “85772" significa “águila 3”, "24799" significa “águila 2”, "10090" significa “león” y "59980" significa “jaula”. El conjunto de palabras–código y números-código es denominado grupos de código (59980 - jaula). Las palabras que representan son llamadas de texto claro (casa, residencia). Originalmente, los grupos de código estaban en el mismo orden que sus respectivas palabras claras. Por ejemplo, una palabra que comenzaba en “a” tendría un número de código bajo y una palabra que comenzara por “z” tendría uno alto. Esto permitía que el mismo libro de código fuera utilizado tanto para codificar como para decodificar un mensaje. Estos códigos eran relativamente previsibles y permitían que lectores indeseados descubriesen el patrón y por consiguiente el mensaje, revelando secretos. Para dificultar más las cosas a posibles intrusos, los creadores de códigos elaboraron unos donde la relación entre los grupos y las palabras no es previsible. Esto significa que se necesitan dos libros de códigos, uno para localizar el texto claro y encontrar los grupos de código correspondientes (codificar) y otro para localizar los grupos de código y texto claro correspondiente (decodificar). Estos códigos de dos partes son más difíciles de crear y usar, pero tienen la ventaja de ser más difíciles de romper. 1.2.1 Ruptura de códigos Descifrar un mensaje codificado es un tanto parecido a la traducción de un documento a otro idioma, donde la tarea básica es construir un “diccionario” de los grupos de código con las palabras claras que ellos representan. Una de las características de un código simple es el hecho de que algunas palabras son más frecuentes que otras, como “de” y “un” en español. En mensajes telegráficos el grupo de código para “punto” (fin de una oración) generalmente también es común. Esto ayuda a definir la estructura de un mensaje en términos de oraciones, y hasta de su sentido. Lo anterior también ayuda a romper un código y juntar muchos mensajes codificados con el mismo código y después obtener evidencias como el lugar de donde fueron enviadas y hacia donde las dirigieron; la hora en que fue enviado; eventos que ocurrieron antes y después que el mensaje fuera enviado y los hábitos de las personas que los enviaron. Se pueden usar varios trucos para insertar información deliberadamente. Por ejemplo, hacer un ataque contra el enemigo en una determinada hora en un determinado lugar y después examinar mensajes codificados enviados por ellos como reacción al ataque. Los errores de codificación son especialmente útiles y es claro que tarde o temprano las personas cometerán errores, algunos de ellos desastrosos. 8 La forma más obvia de romper un código es obteniendo el libro de códigos mediante un soborno, robo o invasión. Esta es la flaqueza de los códigos. Un buen código puede ser más difícil de romper que un cifrado de sustitución, pero la elaboración y distribución de libros de código pueden ser deficientes. Preparar un nuevo código es como construir un nuevo idioma y elaborar un diccionario para ella es un trabajo intenso, si un código estuviera comprometido, toda tarea requeriría ser replanteada, lo que significaría mucho trabajo para los codificadores y los usuarios del código. En la práctica, después de un tiempo de uso los códigos son alterados para frustrar los intentos de ruptura. Automáticamente esto trae consigo mucho tiempo y trabajo. Una vez habiendo sido creados, la distribución de los códigos es complicada y fácilmente puede comprometerlos. Se dice que dos personas pueden guardar un secreto sí una de ellas estuviera muerta. Puede ser exagerado, pero el hecho es que un secreto es más difícil de ser mantenido mientras más personas tengan conocimiento de él. Sí sólo una pocas personas hicieran uso de un código, éste estaría razonablemente seguro, pero si ejércitos enteros hacen uso del mismo código, la dificultad de mantenerlo seguro es mucho mayor. 1.3 Cifrado Para el análisis de las cifras es interesante clasificarlas en grupos basados en su funcionalidad. Es a este tipo de procedimiento criptográfico al que se dedicará mayor atención a lo largo de éste documento, dado que es el que sustenta la mayoría de aplicaciones criptográficas de la actualidad. 1.3.1 Sustitución y transposición El cifrado por sustitución es un criptograma en el cual las letras originales del texto original, tratadas individualmente o en grupos de longitud constante, son sustituidas por otras letras, figuras, símbolos o una combinación de éstos de acuerdo a un sistema definido y una llave. El cifrado por transposición es un criptograma en el cual las letras originales sólo son reordenadas de acuerdo a un sistema definido. En otras palabras, para cifrar se recurre a sustitución o transposición, la diferencia fundamental entre esos métodos es que en la sustitución el valor normal o convencional de las letras del texto original se cambia, sin que su posición sea modificada; en la transposición sólo se altera la posición de las letras del texto original sin que haya modificaciones en su valor normal o convencional. Como los métodos de cifrado son radicalmente diferentes, los principios involucrados en el criptoanálisis de ellos también son fundamentalmente diferentes. El cifrado puede efectuarse por sustitución o transposición. La sustitución puede ser monoalfabética o polialfabética. El método monoalfabético puede ser de tres tipos: monográmico, poligrámico y tomográmico. A continuación se describen las características de cada uno: 9 1.3.1.1 Sustitución monoalfabética monográmica En la sustitución monoalfabética, también conocida como sustitución simple, se reemplaza uno de cada dos caracteres del texto original por otros, de acuerdo con una tabla preestablecida para obtener el texto cifrado. Como consecuencia, la frecuencia de aparición de las letras (números o símbolos) del mensaje cifrado es la misma de las letras del idioma usado en el mensaje original. Se le llama monográmica (o monográfica) porque cada letra del mensaje original es sustituida por una sola letra número o símbolo. Por tanto, la longitud del mensaje cifrado es la misma que la del mensaje original. Las cifras más antiguas de sustitución monoalfabéticas son el Atbash y el código de César. En la criptografía contemporánea, se sustituyen bloques de bits en lugar de caracteres. El principio, sin embargo, es el mismo. Este tipo de cifra solo es relativamente seguro sólo en textos muy cortos. Un simple criptoanálisis probabilística, basado en la caracterización estadística del idioma, es suficiente para descifrar el texto. Para aumentar la seguridad de estas cifra se pueden usar nulos, homófonos, polifónicos o repertorios (o nomenclaturas). 1.3.1.2 Sustitución monoalfabética poligrámica El término poligrámica o poligráfica denota la utilización de varios caracteres. Esta técnica de sustitución tiene las mismas características de la sustitución simple, con la diferencia de que se sustituye uno o más caracteres del mensaje original por uno o más letras, números o símbolos. Por tanto, la longitud del mensaje cifrado no siempre es la misma que la del mensaje original. Esta es la sustitución más genérica posible. Dentro de las sustituciones monoalfabéticas poligrámicas figura la llamada homofónica. El término homofónico procede del griego y significa “mismo sonido”. Es el concepto de tener tres secuencias diferentes de letras que son pronunciadas de forma semejante. En criptología es un cifrado que traduce un único símbolo del texto claro para uno de muchos símbolos cifrados, todos con el mismo significado. 1.3.1.3 Sustitución monoalfabética tomográmica Los sistemas tomográmicos son aquellos en los cuales cada letra es representada por un grupo de dos o más letras o números. Estas letras o números son obtenidos mediante un cifrado por sustitución o por transposición separada. Se puede decir que la sustitución monoalfabética monográmica es una sustitución uniliteral (no confundir con unilateral), pues se cambia cada uno de los caracteres del texto claro por otro cifrado. Cuando los grupos de sustitución están constituidos por más de una letra o símbolo, decimos que la sustitución es multiliteral. 1.3.1.4 Sustitución polialfabética El término alfabeto se aplica al conjunto de símbolos que serán utilizados para sustituir los símbolos (letras) originales. En una sustitución polialfabética se utilizan múltiples alfabetos para llevar a cabo la sustitución de un mismo mensaje. 10 Los alfabetos no requieren necesariamente tener orígenes diferentes, por ejemplo, un alfabeto romano y otro cirílico. El simple hecho de alterar el orden en la secuencia de las letras ya caracteriza un “nuevo” alfabeto. Por ejemplo, z-y-x-...-c-b-a es un alfabeto de sustitución; b-a-d- c-... es un alfabeto de sustitución diferente. Si ambos fueran utilizados para cifrar un mismo mensaje, reemplazando las letras originales, entonces se trataría de una sustitución polialfabética. La forma más antigua de cifrado polialfabético fue desarrollada por Leon Battista Alberti en 1466. Su sistema consistía en escribir el texto cifrado en letras minúsculas y usar las mayúsculas como símbolos denominados indicadores, para enfatizar cuando la sustitución cambiaba. El alfabeto cifrante del disco de Alberti estaba ordenado e incluye los dígitos del 1 al 4, usados para formar palabras código de un pequeño vocabulario. Posteriormente, formas más modernas fueron desarrolladas, en las cuales la sustitución cambiaba para cada letra del texto claro. 1.3.1.5 Sustitución polialfabética con clave progresiva Un sistema de clave progresiva es uno donde los alfabetos cifrantes (o claves) son usados unos después de otros en un orden normal. Este cifrado fue publicado póstumamente en un libro de Johannes Trithemius que apareció en 1518. En la tabla recta de Trithemius, la clave ABCD...Z es usada como alfabeto regular en la forma indicada por el autor. 1.3.1.6 Sustitución polialfabética con palabra clave Es una sustitución polialfabética donde una palabra clave indica los alfabetos cifrantes que deben ser usados. A pesar de ser este sistema atribuido a Vigenère, debe originalmente su origen a Giovanni Battista Bellaso en 1553. Diez años más tarde, en 1563, Giambattista Della Porta agregó el uso de alfabetos mixtos a éste sistema. 1.3.1.7 Sustitución polialfabética con clave automática En un sistema de este tipo hay una clave que indica la elección inicial del alfabeto cifrante y después el propio mensaje determina los alfabetos subsecuentes. La primera propuesta fue de Girolamo Cardano, sin embargo poseía fallas. Fue Blaise de Vigenère quien publicó la forma moderna del cifrado con clave automática en 1585. 11 2 2 Evolución histórica La criptografía ha pasado, desde sus orígenes hasta la fecha, por tres etapas, que son la era artesanal o manual, la era técnica o mecánica y la era digital9. La transición de un período a otro se dio por una especie de ruptura o salto cualitativo que permitió a los criptólogos superar obstáculos que limitaban el florecimiento de su arte. En la Figura 2.1 se ilustran los límites de las eras antes mencionadas. Figura 2.1 Eras de la criptografía 9 Jacques Stern se refiera a esta última como “era de las paradojas”, pero ubica su inicio no con los trabajos de Claude Shannon, sino unos treinta años más tarde con los de Diffie-Hellman. Stern J. Op. Cit. pp 9-17 Era artesanal Era técnica Empirismo Atbash Julio César Trithemius Porta Vigenère Playfair Beaufort Mecanización Hebern Hagelin Enigma Khrya Typex Nema Teorización Shannon Turing Establecimiento de estándares Diffie-Hellman Surgimiento de sistemas híbridos Guerras mundiales Postguerra Era digital 12 2.1 Era Artesanal La era artesanal se extiende desde los orígenes de la criptografía hasta el período comprendido entre las dos guerras mundiales, a pesar de que ciertos procedimientos continuaron coexistiendo con métodos mecánicos durante la segunda guerra mundial. Este período tiende a ejercer entre legos cierta fascinación, quizá porque la criptología de la Edad Media y el Renacimiento realzaba un know how esotérico que la relacionaba con la Alquimia10 y la Cábala11. Desde que la confidencialidad fue una necesidad social, la criptografía se convirtió en un corolario interesante de la escritura; por consiguiente no son sorprendentes las primicias encontradas desde la época de los jeroglíficos egipcios o textos cuneiformes12. En 1900 A.C., un escriba egipcio usó un tipo de jeroglíficos en la inscripción de tumbas. Su intención no era hacer más difícil la lectura del texto, sino dar realce a lo escrito. La inscripción no contenía un mensaje secreto, pero incorporaba uno de los elementos esenciales de la criptografía: una transformación deliberada de la escritura13. Similarmente, varias tabletas conteniendo escritura cuneiforme transforman las fórmulas finales (llamadas colofones) de firma y fechado de las tabletas con la ayuda de signos raros, algunos incluso representan el nombre del escriba en serie cifrada14. En la antigua China se escribían mensajes sobre seda fina. Después se hacía una bolita que era envuelta en cera. En seguida, el mensajero engullía la bola. Evidentemente, se trataba de una forma de esteganografía. Se dice que la cultura china no desarrolló criptografía a partir de técnicas de cifrado debido a que, aunque el uso de la escritura era extremadamente antiguo, la literatura estaba siempre restringida a una minoría en la cual el mero acto de escribir algo equivalía a codificarlo15. El primer caso claro de uso de métodos criptográficos se dio durante la guerra entre Atenas y Esparta (431-404 AC), el cifrado se basaba en la alteración del mensaje original mediante la inclusión de símbolos innecesarios que desaparecían al enrollar la lista en un rodillo llamado 10 El Diccionario de la Real Academia Española la define como el conjunto de especulaciones y experiencias generalmente de carácter esotérico, relativas a la transmutaciones de la materia, que influyó en el origen de la ciencia química. Tuvo como fines principales la búsqueda de la piedra filosofal y de la panacea internacional. 11 El Diccionario de la Real Academia Española ofrece varias definiciones de ésta, de las cuales la más completa se lee como el conjunto de doctrinas teosóficas basadas en la Sagrada Escritura, que a través de un método esotérico de interpretación y transmitidas por vías de iniciación, pretendía revelar a los iniciados doctrinas ocultas acerca de Dios y del mundo. Otra de las definiciones vertidas en el mismo diccionario se refiera a ella como un cálculo supersticioso para adivinar una cosa. 12 Según Pastor y Sarasa, “El nacimiento del lenguaje escrito en sus formas más primitivas (ideográficas y jeroglíficas) puede considerarse a su vez como el origen de la criptografía, puesto que eran muy pocos los que podían leer o interpretar los símbolos utilizados.” Pastor, J., Sarasa, M. Criptografía digital. Fundamentos y aplicaciones. Prensas Universitarias de Zaragoza. Zaragoza. 1998. pp. 567. 13 David Kahn lo señala como el criptograma más antiguo del que se tiene conocimiento. Kahn, D. The Code Breakers, The Comprehensive History of Secret Communication from Ancient Times to the Internet. Scribner. New York. 1996. 2nd Edition. pp 71. 14 Kahn, D. Op. Cit. Pp 75. Stern J. Op. Cit. pp 22. 15 Kahn, D. Op. Cit. pp. 74. 13 escitalo, el mensaje quedaba claro cuando se enrollaba la tira de papel alrededor de un rodillo de longitud y grosor adecuados. En tiempos de Roma, se sabe que Julio César empleaba un código secreto que consistía en sustituir cada letra del mensaje por otra que en el alfabeto estuviese a tres posiciones de ella. Posteriormente, el escritor Aulio Gelio sugirió la idea de que en realidad Julio César recurría a procedimientos más complicados. El emperador Augusto, sobrino de Julio César, utilizó un sistema similar, pero Suetonio registra que simplemente sustituía una letra del alfabeto por la siguiente, salvo en el caso de la X (la última letra del alfabeto romano), a la que sustituía por AA.16 Uno de los más famosos manuscritos con contenido presuntamente mágico, el papiro Leiden, descubierto en Tebas y escrito en el siglo III en griego y más tarde en forma demótica17, una versión ampliamente simplificada de jeroglíficos empleados para cifrar fragmentos cruciales de recetas y conjuros importantes. Por ejemplo, en una sección se explica cómo enfermar a un hombre con una enfermedad incurable de la piel, el papiro usaba signos secretos para cifrar las palabras “enfermedad de la piel” y nombres de variedades de lagartija: ”Si desea enfermar a alguien con una enfermedad de la piel que no pueda ser curada, una lagartija hantous y otra lagartija hafleele, se cocinan con aceite, y se baña al hombre con la poción”18. Son de especial relevancia los desarrollos en materia de cifrado y criptoanálisis alcanzados por los árabes. Las revelaciones de Mahoma fueron registradas por varios escribas mientras él aun vivía, pero solo como fragmentos y correspondió a Ab� Bakr, primer califa19 del Islam, dar inicio a la compilación en un texto único. El trabajo fue continuado por Omar, el segundo califa, y su hija Hafsa, y fue eventualmente culminado por Uthm�n, el tercer califa. Cada revelación se convirtió en uno de los 114 capítulos del Corán. El califa gobernante era responsable de llevar a cabo el trabajo del profeta, preservando y difundiendo su palabra. Durante el gobierno de los primeros cuatro califas, el Islam se extendió hacia la mitad del mundo conocido. En 750, después de un siglo de consolidación, el ascenso de la dinastía Abbasid trajo consigo la época dorada de la civilización islámica. Entre otras áreas del saber, son innumerables sus aportes a las matemáticas. Los califas de la dinastía Abbasid parecían menos interesados que sus predecesores en la expansión territorial y se concentraron en el establecimiento y organización de su sociedad. Menores impuestos impulsaron los negocios y posibilitaron un crecimiento comercial e industrial, además que una serie de estrictas leyes redujo la corrupción y llevó seguridad a la ciudadanía. Todo esto obtuvo soporte en comunicaciones seguras a partir de del cifrado de documentos, que era utilizada tanto para asuntos de gobierno como comerciales, a tal grado que está documentado el hecho de que funcionarios de gobierno protegían los registros de impuestos haciendo uso rutinario de procedimientos criptográficos. Llegaron a elaborarse manuales administrativos que daban instrucciones al respecto, tales como el Adab al-Kutt�b o “Manual de los secretarios” que data del siglo X, que incluye secciones completas dedicadas a la criptografía. 16 Kahn, D. Op. Cit. pp. 84. 17 El Diccionario de la Real Academia Española indica que se trata de un género de escritura cursiva empleado por los antiguos egipcios para diversos actos privados, así como también una variedad de la lengua griega moderna. 18 Kahn, D. Op. Cit. pp. 91. 19 Según el Diccionario de la Real Academia Española el término deriva del árabe jalifa que significa sucesor o lugarteniente. Era el título de los príncipes sarracenos que, como sucesores de Mahoma, ejercieron la suprema potestad religiosa y civil en Asia, África y España. 14 Los árabes llegaron a familiarizarse con formas de cifrado basadas en sustituciones monoalfabéticas, que en realidad no constituyen recursos extremadamente relevantes por su fortaleza en la historia de la criptografía. Sin embargo, además de estas técnicas, se dotaba a escolares de conocimientos y procedimientos que permitían romper ciertos esquemas de cifrado, debido a lo que puede considerárseles los creadores del criptoanálisis. Sobre esto hay que remarcar el hecho de que el criptoanálisis solo pudo ser inventado cuando una civilización alcanzó un nivel de escolaridad lo bastante sofisticado en disciplinas tan diversas como las matemáticas, la estadística y la lingüística, así como a la formación teológica. Los árabes llegaron a dominar las bases del criptoanálisis basado en la observación de la frecuencia de letras. Aunque no se sabe exactamente quien fue el primero en emplearlo, las descripciones más antiguas de la técnica datan del siglo IX y se atribuyen al científico Ab� Y�s�f Ya’q�b ibn Is-h�q ibn as-Sabb�h ibn ‘omr�n ibn Ismail al-Kindi. 20. Como puede notarse, por cuestiones religiosas, los árabes avanzaron más en la creación y divulgación de las ciencias, la criptografía y el criptoanálisis no habría de ser la excepción. Mientras tanto, los reinos cristianos estaban inmersos en el apogeo del oscurantismo. Durante la Edad Media e incluso durante el Renacimiento, la criptografía servía a menudo para propósitos mágicos. Un manuscrito compilado en Nápoles entre 1473 y 1490 por Arnaldus de Bruxella usa cinco líneas de cifrado para encubrir la parte más relevante del procedimiento para hacer la piedra filosofal. La asociación entre magia y criptografía se vio reforzada por varios aspectos. Símbolos misteriosos eran usados en campos tales como la astrología y la alquimia y también para fines criptográficos. Palabras cifradas y encantamientos tales como abracadabra parecían carecer de sentido, pero en realidad portaban mensajes presumiblemente importantes entre quienes los usaban. Por otra parte, otro factor importante que abonó a esta confusión fue la propagación de la curiosidad que suscitaba la cábala tanto entre judíos como cristianos21. Se sabe que San Bernardino evitaba la regularidad de los signos (con lo que el criptoanálisis por el método de las frecuencias no era efectivo) sustituyendo letras por varios signos distintos, así tenía un símbolo para cada consonante, usaba tres signos distintos para cada una de las vocales y utilizaba signos sin ningún valor. Son particularmente interesantes los aportes de Roger Bacon (1210-1214), monje, filósofo, sabio, científico y teólogo inglés: es el único escritor de la Edad Media que no se limitó a usar la criptografía sino que llegó a describirla en su obra Secret Works of Art and the Nulity of Magic. Listó varios métodos de cifrado, entre ellos, algunos que usan sólo consonantes, expresiones figuradas, letras de alfabetos exóticos, caracteres inventados, taquigrafía, figuras mágicas y hechizos22. Geoffrey Chaucer, el poeta inglés, escribió el libro The Equatorie of the Planetis, el cual contiene varios pasajes cifrados hechos de letras, dígitos y símbolos, en los cuales, por ejemplo, la letra a es representada por un símbolo parecido a la letra V y b por uno parecido a la letra alfa. 20 Singh, S. The code book. The Science of Secrecy from Ancient Egypt to Quantum Cryptography. Anchor books. New York. 1999. pp. 14-17. 21 Kahn, D. Op. Cit. pp. 91-92. 22 Kahn, D. Op. Cit. pp. 90. 15 En la Edad Media y el Renacimiento, los criptólogos eran a menudo matemáticos, los períodos siguientes los reemplazarían con frecuencia por militares, lo cual sin duda, no se debía más que a una cuestión de organización social. Los duques de Sforza, gobernantes oligárquicos de Milán, también se sirvieron de la criptología. Uno de sus secretarios, Cicco Simonetta escribió uno de los primeros tratados dedicados enteramente al criptoanálisis: el Liber Zifrorum, en julio de 1474. En él establecía trece reglas para resolver cifrados de sustitución monoalfabética en los que se mantenían divisiones entre palabras. El manuscrito comenzaba diciendo: “el primer requisito es ver si el documento se encuentra en latín o en lengua vernácula, este puede determinarse de la siguiente manera: ver si las palabras del documento en cuestión tienen más o menos de cinco diferentes terminaciones; si hay cinco o menos puede concluirse que esta en lengua vernácula...”. Otras cortes europeas también tenían criptoanalístas a su servicio. En Francia, Philibert Babou, señor de Bourdaisière, que ocupaba el cargo de primer secretario de estado resolvía despachos interceptados para Francisco I. Babou fue capaz de resolver criptogramas de lenguas que no sabía hablar, o que entendía muy poco, como el español, italiano o alemán23. El conocimiento de la criptología llegó hasta Iberia en la época en que los Reyes Católicos expulsaron a los moros y unificaron el país para comenzar a erigirlo como potencia mundial. Los primeros sistemas, introducidos en 1480 por Miguel Pérez Alzamán, transformaban el texto claro en numerales romanos, el resultado era tan difícil de decodificar que algunos descifradores marginaron las notas con frases como: “sin sentido”, “imposible”, “no puede ser entendido”, “ordene al embajador enviar otro despacho”. Se considera a Johannes Trithemius como el padre de la criptografía moderna. Nacido en Trittenheim, una pequeña ciudad alemana de la que le viene el nombre, era un abad benedictino que se interesó por las ciencias naturales y se ganó fama de mago lo que hizo que el mismo terminara siendo declarado hereje por la Inquisición. Este religioso escribió en 1530 Poligrafía, uno de los libros más importantes que abordan el tema. Trithemius introdujo el concepto de tabla ajustada, en el cual el alfabeto normal es permutado para codificar los mensajes. El noble de Brescia, Giovan Battista Belaso, publicó en 1553 El auténtico modo para escribir en cifra. También había descrito los cifrarios polialfabéticos. Belaso y Blaise de Vigenère ofrecieron un sistema de autoclave para incrementar la seguridad de los criptogramas. Felipe II ascendió al trono de España en 1556 a los 29 años de edad, y notificó a su tío Fernando I de Hungría, que había decidido cambiar el cifrado usado durante el reinado de su padre Carlos V porque éste había caído en desuso, y podía haberse comprometido. Así, Felipe II entregó a su emisario Juan de Moreo, un sistema que contenía alrededor de 400 grupos de código. François Viète, al servicio de Enrique IV de Francia, trabajó entre 1589 y 1590 para romper el acertijo, luego brindó una solución completa a su rey. Luego Felipe II descubrió que un mensaje que él consideraba irrompible estaba comprometido y se quejó ante el Vaticano argumentando que Enrique IV había recurrido a la magia negra para romper su código. El Papa estaba mejor 23 Es posible resolver un criptograma en un lenguaje que no se conoce, partiendo de que ese desconocimiento significa sólo que no se comprende el significado de las palabras. Kahn, D. Op. Cit. pp 110-111. 16 informado, pues su propio criptólogo Giovanni Battista Argenti también había roto el código, con lo que el Felipe II se convirtió en el hazmerreír de Europa24. En Francia, el cardenal Richelieu (1585–1642), quien fuera Primer Ministro de Luis XIII, tuvo a su servicio al primer criptólogo de tiempo completo Antoine Rossignol, quien se convirtió en un importante bastión en la lucha contra los hugonotes y las potencias europeas de la época. La descendencia de Antoine Rossignol también habría de consagrarse en trabajos criptográficos al servicio de la Corona francesa. Por ejemplo su hijo Bonaventure y su nieto Antoine- Bonaventure también hacía criptoanálisis para corona en tiempos de Luis XIV y Luis XV. En el siglo XVI, Girolamo Cardano, físico y matemático italiano, utilizó el método de la tarjeta con agujeros perforados, que se debía colocar sobre un texto para poder leer el mensaje cifrado, además fue el creador del primer texto que versaba sobre la teoría de la probabilidad. Inventor del primer e imperfecto sistema de autoclave, en el cual cada mensaje de texto claro tiene la clave para cifrarse a sí mismo. Cardano publicó 131 libros y 111 manuscritos, en los cuales discutía sobre matemáticas, astronomía, astrología, física, ajedrez, apuestas, la inmortalidad del alma, curas milagrosas, dialectos, la muerte, gemas y colores, venenos, aire, agua, sueños, orina, dientes, música, moral y sabiduría. Nunca publicó un libro sobre criptología, pero sí abordaba el tema en sus dos libros más difundidos: De Subtilitate y De Returm Varietate, en los cuales describía los métodos clásicos de cifrado de la antigüedad. Blaise de Vigenère publicó en 1586 su Traicté des Chiffres donde recoge los distintos métodos utilizados en su época, el método Vigenère es un método clásico de cifrado por sustitución que utiliza una clave, del cual se dan más detalles en apartados posteriores. Fue también en 1586 que Thomas Phelippes rompió el cifrado de la Reina Maria de Escocia. Sir Francis Bacon (1561-1626) inventó el uso de dos tipos de letra para transportar un mensaje secreto. Él describió su método en la versión latina De dignitate et augmentis scientiarum (1623) de un libro titulado Proficience and Advancement que había publicado en 1605.Su método nunca logró gran importancia práctica25. Carlos I de Inglaterra usó en el siglo XVII códigos de sustitución silábica. Napoleón, en sus campañas militares y en los escritos diplomáticos, usó los llamados métodos Richelieu y Rossignol y para evitar la regularidad de los símbolos asignaba números a grupos de una o más letras. Las continuas guerras e innumerables confabulaciones y conspiraciones en Europa dieron lugar a que las cortes de las grandes potencias europeas organizaran sus correspondientes y departamentos expertos de criptoanálisis: son famosos el siniestro Cabinet Noir, de París, y la Geheime Kabinets - Kanzlei, de Viena. El siglo XVIII no fue una época de grandes avances criptográficos. El telégrafo, inventado por Samuel Morse a principios del siglo XIX, y la aparición de la radio revolucionaron las 24 Bauer, F. Decrypted Secrets. Methods and Maxims of Cryptology. Springer Verlag. New York. 2002. pp. 68. Singh, S. Op. Cit. pp. 28-29. 25 Bauer, F. Op. Cit. pp. 9. 17 comunicaciones y obligaron a la criptografía a desarrollarse como ciencia. Ambos medios eran fáciles de interceptar lo que dio lugar a que en los ámbitos militares y diplomáticos se buscaran nuevas maneras de mantener en secreto importantes mensajes. En el año de 1857, en Inglaterra, se presentó un nuevo sistema de escritura secreta “adaptado para telegramas y postales”, consistía en una tarjeta de 4x5 pulgadas con el alfabeto impreso en color negro y rojo. Su creador fue el almirante Sir Francis Beaufort, quien dio origen a su cifrado utilizando la escala mediante la cual los meteorólogos indicaban la velocidad del viento, con números desde 0 (calmado) hasta 12 (huracán). Después de la muerte del almirante, fue su hermano quien hizo público el criptosistema. Usa un cuadro alfabético esencialmente similar al de Vigenère, pero se diferencia de él al repetir el alfabeto. El sistema había sido originalmente propuesto por Giovanni Sestri casi 150 años que Beaufort, en un libro publicado en Roma en 1710, que fue ampliamente ignorado. Si embargo, bajo el nombre de Beaufort, este cifrado se convirtió en un estándar del repertorio de la criptografía, pese a que su importancia teórica no es significativa. En el siglo XIX se utiliza ampliamente el método de transposición, consistente en la reordenación según distintos criterios de los símbolos del mensaje. Auguste Kerckhoffs, lingüista holandés naturalizado francés, indica las reglas que a su juicio debía cumplir un buen sistema criptográfico: o El sistema debe ser materialmente, y matemáticamente, indescifrable; o El hecho de que caiga en manos del enemigo no debería posibilitar el descubrimiento del secreto; o La clave debe poder ser comunicada y retenida sin el envío de notas escritas, así como cambiada y modificada según el criterio de las partes; o Debe ser aplicable a la correspondencia telegráfica; o Debe ser portátil, y su manipulación o funcionamiento no debe exigir el concurso de muchas personas; o Finalmente, es necesario, vistas las circunstancias requeridas para su aplicación, que el sistema sea de fácil uso, que no demande ni tensión de ánimo ni el conocimiento de una larga serie de reglas a observar.26 De lo anterior puede considerarse que la seguridad, la simplicidad y la rapidez son los conceptos clave de un sistema criptográfico. Sin embargo, la idea más relevante de las expresadas por Kerckhoffs es la que enuncia que mientras la clave permanezca secreta, no importa tanto si el algoritmo es público, pues es una idea que aun conserva validez. Otro teórico del siglo XIX llamado Wilhelm Kasiski, oficial prusiano, revolucionó la criptología casi sin darse cuenta y abrió las puertas a la criptología moderna en una obra que publicó en 1863 titulada Les chiffres et l’art du décryptement, que expone por primera vez métodos estructurados de criptoanálisis, en particular su método de decriptamiento de sustituciones polialfabéticas.27 Charles Babbage diseñó en 1823 la Difference Engine No. 1, una calculadora mecánica que constaba de alrededor de 25,000 piezas de precisión, además de dedicarse al diseño de máquinas de este tipo, Babbage tenía sólidos conocimientos de criptoanálisis, a tal grado que fue capaz de romper el cifrado de Vigenère, para lo cual Babbage se valió del análisis de frecuencia. Kasiski también habría de romper dicho esquema de cifrado basándose en el método de incidencia de las coincidencias en que publicó en la obra de 1863 a la que se hizo referencia antes. La 26 Kerckhoffs, A. La cryptographie militaire. Journal des Sciences Militaires. Janvier 1883. 27 Stern, J. La science du secret. Éditions Odile Jacob. Paris. 1998. Pp. 28-29. 18 repetición de un determinado grupo de letras en el criptograma, proveniente de un mismo grupo de letras en el texto claro, tiene lugar a una distancia múltiplo de la longitud de la palabra clave. Estudiando estas repeticiones puede determinarse la longitud de la palabra clave, conocida dicha palabra, el criptograma se descompone en criptogramas sencillos correspondientes a cifrados de César. Durante la Primera Guerra Mundial, el trasatlántico Lusitania fue hundido por los alemanes en 1915, pereciendo más de 1,200 personas. Este hecho polarizó la opinión pública norteamericana apoyando la entrada de los Estados Unidos en la guerra. El presidente T. Woodrow Wilson, quien había fomentado activamente la no beligerancia de su país, se oponía. Sin embargo, el 17 de enero de 1917 los servicios secretos ingleses interceptaron un telegrama cifrado del ministro de Asuntos Exteriores de Alemania, Arthur Zimmermann, dirigido al conde Heinrich A. von Bernstorff, embajador alemán en Washington. El mensaje se había cifrado por medio del código 0075, un diccionario de lista doble de 10,000 palabras o frases que los ingleses ya habían conseguido descifrar parcialmente. En él se hacía referencia a otro telegrama que debía enviarse a México. Los ingleses consiguieron interceptar este segundo telegrama y observaron que se había cifrado con otro código, el 13040, que constaba de 25,000 palabras, esto representó un grave error criptográfico ya que permitió a los ingleses descifrar el mensaje. El resultado fue sorprendente: si México declaraba la guerra a los Estados Unidos para recuperar sus antiguos territorios de Nuevo México, Arizona y Texas, Alemania le apoyaría. Wilson se vio forzado a entrar en guerra contra Alemania. 2.1.1 Métodos artesanales 2.1.1.1 Atbash Método hebreo de alrededor de los años 600–500 A.C., que consistía en tomar cada letra, calcular el número de lugares que lo separan de la primera letra del alfabeto y reemplazarla con una letra que se encuentra en la misma distancia del final del mismo. En alfabeto español equivale a reemplazar: o La letra "a", al principio alfabeto, por la letra "z"; o La letra "b" se cambia por la letra "y". El nombre Atbash proviene de las dos primeras y las dos ultimas letras del alfabeto hebreo, combinadas de la siguiente forma: aleph, taw, beth, shin. Un ejemplo de Atbash aparece en Jeremías 25:26 y 51:41, donde el nombre “Babel” es reemplazado por la palabra “Sheshach”, la primera letra de Babel beth, segunda letra del alfabeto hebreo, y es reemplazada por shin, la penúltima; en hebreo la segunda letra de Babel es también beth, y nuevamente es reemplazada por shin; la última letra de Babel es lamed, duodécima letra del alfabeto hebreo y es reemplazada por kaph, que es la que se encuentra a doce posiciones de la última letra del alfabeto28. 28 Kahn, D. Op. Cit. pp 76-80. Singh, S. Op. Cit. pp 26. 19 aleph beth gimel dalet he waw zayin heth teth yod Kaph � � � � � � � � � � � � � � � � � � � lamed mem Nun samekh ayin pe sadhe qoph resh shin Taw Tabla 2.1: Alfabeto hebreo 2.1.1.2 Método de Escítalo En la Grecia clásica, los éforos (gobernantes) espartanos transmitían sus instrucciones a sus estrategas (generales) utilizando un bastón, el escitalo, siglo IV A.C. El historiador griego Plutarco describe la el escitalo o scitala espartana como una vara de la que se preparaban dos o más bastones idénticos. Las órdenes se escribían en una tira de pergamino o papiro enrollada a lo largo del bastón. Desenrollada, solamente contenía una sucesión de letras inconexas que se enviaba al destinatario, para poder leer el mensaje éste debía tener en su poder una copia del bastón. Al colocar de nuevo la cinta en el bastón aparecía el mensaje29. Figura 2.2: Escitalo 2.1.1.3 Método de César El algoritmo de César, llamado así porque es el que empleaba Julio César para enviar mensajes secretos, es uno de los algoritmos criptográficos más simples. Consiste en sumar 3 números de orden de cada letra. De esta forma a A le corresponde D, a Be la E, y así sucesivamente. Para descifrar basta con restar 3 al número de orden de las letras del criptograma30. 2.1.1.4 El Kama Sutra El libro erótico más famoso de Vãtsy�yana, el Kama Sutra, lista la escritura secreta como una de las 64 artes o yogas que las mujeres deben saber y practicar, es la número 45 de una lista que inicia con la música vocal, pasando por prestidigitación, solución de rompecabezas verbales, y ejercicios de poesía enigmática. Este arte es llamado mlecchita-vikalpa, una de sus ramas llamada kautiliyam en la cual la sustitución de letras estaba basada en relaciones fonéticas, por ejemplo, las vocales se convertían en consonantes. El texto claro en la mayor parte de las secciones cifradas estaba escrito en griego, y el alfabeto cifrado consistía básicamente en símbolos de letras griegas. 29 Kahn, D. Op. Cit. pp 82. Singh, S. Op. Cit pp 8-9. 30 Brisson, R., Théberge, F. Un aperçu de l’histoire de la cryptologie. Descargado de http://collection.nlc- bnc.ca/100/200/301/cse-cst/overview-f/musee.pdf el 7 de diciembre de 2003. 20 2.1.1.5 Nomenclator A petición de Clemente VII, Gabrieli di Lavinde que era uno de sus secretarios, compila un conjunto de llaves individuales para un alfabeto de sustitución en un código pequeño. Su colección de llaves (la más antigua existente en la civilización occidental moderna) incluía varias que combinaban elementos para código y cifrado. Cada clave correspondía a un pequeño repertorio de una docena o más palabras comunes o nombres equivalentes de dos letras. El Nomenclator unía alfabetos de sustitución y listas de códigos de palabras, sílabas y nombres equivalentes. Esta clase de sistema criptográfico permaneció en uso entre diplomáticos y algunos civiles durante los siguientes 450 años31. 2.1.1.6 Método de Alberti Leon Battista Alberti (1402-1472), uno de los más famosos exponentes del Renacimiento italiano, escribió un tratado titulado Modus scribendi in ziferas, donde describe, entre otras cosas, unos discos con los que se podían cifrar mensajes. Este hombre fue secretario de claves de la Curia Vaticana, otra potencia de la época, su contribución fue tan importante que ha merecido el título de "padre de la criptografía occidental". 2.1.1.7 Método de Trithemius En 1508 inició la publicación de su Polygraphiæ, obra en seis volúmenes que presentaba una colección de palabras en latín que codificaba a las letras del alfabeto, lo que se conoció posteriormente como el código Ave Maria. A Deus A clemens B Creator B clementissimus C Conditur C pius D Opisex D pijssimus E Dominus E magnus F Dominator F excelsus G Consolator G maximus H Arbiter H optimus Tabla 2.2 Código Ave Maria Así, por ejemplo la palabra ACECHA podría cifrarse como: DEUS PIUS DOMINUS MAGNUS CONDITOR OPTIMUS CLEMENS 2.1.2 Sistema de autoclave Girolamo Cardano fue el creador de éste sistema, en el cual se utiliza el mensaje claro para generar su propia clave. La principal observación es que la clave es función del texto claro y que además la clave puede cambiar con cada mensaje. 31 Bauer, F. Op. Cit. pp. 68-70. Kahn, D. Op. Cit. pp. 107. 21 2.1.2.1 Método de Porta Este sistema fue puesto en marcha en 1563 por Giovanni Battista da Porta. Su método es descrito por medio de la Tabla 2.3 Requiere una palabra clave cuyas letras formen letras clave. La primera columna, que contiene pares de letras secuencialmente ordenadas del alfabeto, contiene la componente de la palabra clave. La fila de arriba, contiene la componente primaria del texto claro. Su asociación permite una sustitución recíproca para una letra clave en particular. Supongamos una letra clave, si la letra del texto claro figura en la fila de arriba, se le sustituye por la letra que aparece en la intersección con la columna donde se encuentra la letra en claro y la fila donde se encuentra la letra clave. Si la letra del texto claro no forma parte de la fila de arriba, se le busca en la fila donde se encuentra la letra clave y se le sustituye por la letra correspondiente. a b c d e F g h i j k l M AB n o p q r S t u v w x y Z CD z n o p q R s t u v w x Y EF y z n o p Q r s t u v w X GH x y z n o P q r s t u v w IJ w x y z n O p q r s t u V KL v w x y z N o p q r s t U MN u v w x y Z n o p q r s T OP t u v w x Y z n o p q r S QR s t u v w X y z n o p q R ST r s t u v W x y z n o p Q UV q r s t u V w x y z n o P WX p q r s t U v w x y z n O YZ o p q r s T u v w x y z N Tabla 2.3. Tabla de Porta Cifremos ENVIAR MEDICINAS utilizando como palabra clave la palabra GUAZAPA. Texto claro: ENVIAR MEDICINAS Palabra clave: GUAZAPA A b c d e F g h i j k l m GH X y z n o P q r s t u v w UV Q r s t u V w x y z n o P AB N o p q r S t u v w x y Z YZ O p q r s T u v w x y z N AB N o p q r S t u v w x y Z OP T u v w x Y z n o p q r S AB N o p q r S t u v w x y Z Palabra clave: GUAZAPAGUAZAPAG Texto claro: ENVIARMEDICINAS Texto cifrado: OKIWNLZOTVQVTNI 22 2.1.2.2 Método de Vigenère Este método de cifrado es el fruto del trabajo de Blaise de Vigenère, un francés que vivió entre 1523 y 1596. Al parecer que el método fue puesto a punto por Vignère durante sus visitas al Vaticano. El principio de este método consiste en utilizar una sustitución alfabética diferente para cada posición, lo cual torna el análisis de frecuencias un poco menos atractivo. Una palabra clave es utilizada y escrita en muchas ocasiones sobre el texto claro tal como en el método de Porta. En el ejemplo que sigue, la palabra clave es VOLCAN. Para cifrar, se elige la fila de la Tabla 3 que corresponde a la letra apropiada de la palabra clave y se opera una sustitución alfabética con la letra situada en la intersección de la columna correspondiente a ésta y de la fila correspondiente a la letra del texto claro. El cifrado del texto claro se efectúa entonces para tantas sustituciones diferentes como letras hay en la palabra clave. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z Tabla 2.4 Tabla de Vigenère Palabra clave: VOLCANVOLCANVOLC Texto claro: SALIRDESANMIGUEL Texto cifrado: NOWKRQZGLPMVBIPN Para este método, el destinatario debe conocer la palabra clave y la tabla de cifrado. Esta tabla puede ser tan simple como la antes presentada. El proceso de descifrado se completa simplemente procediendo a la inversa. 23 2.1.2.3 Método de Playfair El cifrado de Playfair en realidad fue inventado por Charles Wheatstone, para comunicaciones telegráficas secretas en 1854, no obstante se le atribuye a su amigo el científico Lord Playfair. Utilizado por el Reino Unido en la Primera Guerra Mundial, este sistema consiste en separar el texto en claro en diagramas y proceder a su cifrado de acuerdo a una matriz alfabética de dimensiones 5 X 5 en la cual se encuentran representadas las 26 letras del alfabeto ingles, aunque para una mayor seguridad se puede agregar una palabra clave. La clave se coloca al comienzo de la matriz quitando las repeticiones y a continuación el resto de las letras del alfabeto. A B C D E F G H I/J K L M N O P Q R S T U V W X Y Z Tabla 2.5 Matriz alfabética A continuación se presenta una versión simplificada de este método: o Llenar una tabla de dimensiones 5x5 con letras del alfabeto en pares. Esta puede ser complementada con una palabra clave inscribiendo consecutivamente en la tabla la primera aparición de cada letra de la palabra clave seguida de las otras letras del alfabeto. La Tabla 3 se ha construido a partir de la palabra clave PERRO agrupando I y J. P E R O A B C D F G H I/J K L M N Q S T U V W X Y Z Tabla 2.6 Matriz alfabética de tipo Playfair o Escribir el texto claro por grupos de dos letras. Si un par contiene la misma letra dos veces, se agrega una letra complementaria (como la X) entre ellas. Por ejemplo, CARRETERA BLOQUEADA se escribe CA RX RE TE RA BL OQ UE AD AX. o La letra complementaria es X y es utilizada en dos ocasiones, la segunda de las cuales fue para completar el último par del mensaje. o Para cada par de letras, la Tabla 2.6 es utilizada como sigue: - Si las letras están en la misma columna, cada una de ellas es reemplazada por la letra situada inmediatamente abajo; si una letra está debajo de la columna, es reemplazada por la primera de la columna; 24 - Si las letras están en la misma fila, cada una es reemplazada por la letra situada inmediatamente a su derecha; si una de las letras es la última de la fila, es reemplazada por la primera de esa misma fila. - Si las dos letras no se encuentran ni en la misma fila ni columna, se les reemplaza de la manera siguiente: la primera letra cifrada es obtenida tomando la letra situada en la intersección de la fila que contiene la primera letra del texto claro; la segunda letra cifrada se obtiene tomando la intersección de la columna que contiene la primera letra del texto claro y de la fila que contiene la segunda letra del texto claro. Texto claro Caso Texto cifrado CA Diferente fila y columna GE RX Diferente fila misma columna DR RE Misma fila diferente columna OR TE Diferente fila y columna QO RA Misma fila diferente columna OP BL Diferente fila y columna FH OQ Diferente fila y columna ET UE Diferente fila y columna QA AD Diferente fila y columna RG AX Diferente fila y columna RZ Tabla 2.7 Proceso de cifrado de tipo Playfair Las etapas de cifrado del texto claro del ejemplo anterior son presentadas en el cuadro siguiente. El texto cifrado es en seguida escrito como una secuencia continua de letras: GEDRORQOOPFHETQARGRZ. 2.1.2.4 Caracterización de la era artesanal Entre los orígenes de la criptografía y la primera guerra mundial, los métodos artesanales fueron mejorando lentamente, permaneciendo bastante vulnerables, debido a dos factores, el primero, la pobreza del entorno tecnológico, y el empirismo reinante. Son notorios los límites de las defensas que los criptógrafos oponían a los criptoanalistas de la era artesanal. Dichos límites estaban ligados a la restringida capacidad física de cifrar y descifrar sin el auxilio de documentos específicos, cuya seguridad seguía siendo problemática. Estos inconvenientes no carecen de consecuencias sobre el desarrollo de los principios mismos de la criptografía; es así que los métodos polialfabéticos, en los que la clave evoluciona durante el proceso de cifrado, no pudieron imponerse en ausencia de máquinas (pese a haber sido ya vislumbrados), pues el menor error se podía propagar hasta el final del texto volviéndolo ininteligible también al destinatario32. 2.1.2.5 Criptosistema de Vernam El método de Vigenère fue llevado a su máxima extensión lógica en 1935 por el criptógrafo estadounidense Gilbert S. Vernam. Este investigador demostró que para que el cifrado de Vigenère fuera seguro no solamente era necesario que la clave de cifrado fuese más larga que el 32 Stein, J. Op. Cit. pp. 38-39. 25 mensaje, sino que además debería ser utilizado una sola vez. Bajo estas condiciones el cifrado de Vernam (también denominado one time pad) es un cifrado perfecto, tal como demostró Shannon posteriormente. Es conveniente hacer notar en este punto que el cifrado perfecto de Vernam es de difícil e incluso imposible implementación práctica con la tecnología actual. A pesar de ello, es el que sirve como modelo de referencia para muchos otros procedimientos de cifrado desarrollados en la criptografía moderna, en particular para los de flujo33. 2.1.2.6 ADFGVX Este cifrado, inventado por Fritz Nebel (1891-1967), se instaló en el frente occidental alemán que estaba bajo el mando del General Erich Ludendorff, para la transmisión inalámbrica. Este método fue de los primeros en unir la transposición y la sustitución dos procesos que producen, en la terminología actual, difusión y confusión34. El cifrado inicia al dibujar una cuadrícula de 6x6 las filas y las columnas se encabezan con las letras ADFGVX, se llenan los 36 cuadros con las 26 letras del alfabeto anglosajón y 10 dígitos, el modo de ordenar letras y números en la cuadrícula forma parte de la clave y necesita ser comunicada al receptor del mensaje. A D F G V X A 0 q 9 z 7 c D m u 1 h f 2 F 4 8 w n r g G l 6 v t p a V y 3 d 5 e k X j s i o b x Tabla 2.8 Matriz ADFGVX Por ejemplo: La primera fase para realizar el cifrado consiste en tomar cada letra del mensaje claro y sustituirla por las letras correspondientes a su fila y columna. Por ejemplo el número 5 sería sustituido por las letras VG y la j por el par de letras XA. El mensaje claro: ENVIEN MUNICIONES E N V I E N M U N I C I O N E S VV FG GF XF VV FG DA DD FG XF AX XF XG FG VV XD Hasta aquí solo se ha realizado la parte de sustitución. 33 Pastor, J., Sarasa, M. Op Cit pp. 575. 34 Bauer, F. Op. Cit. pp. 51 y 159. Singh, S. Op. Cit. pp. 103-104. 26 La segunda fase es en la cual se utiliza la trasposición que depende de una palabra clave. Si la clave es WHISKY. Las letras de la clave se escriben en la cabecera de una cuadrícula. El texto que hemos cifrado antes se escribe por filas en dicha cuadrícula: W H I S K Y V V F G G F X F V V F G D A D D F G X F A X X F X G F G V V X D 0 0 0 0 Tabla 2.9 Matriz ADFGVX con palabra clave Se añaden caracteres de relleno (00) para que el cuadro quede completo. Ahora las columnas de la cuadrícula se cambian de posición de modo que las letras de la clave queden en orden alfabético: H I K S W Y V F G G V F F V F V X G A D F D D G F A X X X F G F V G X