Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
La integridad y confidencialidad de las comunicaciones dependen de complejos códigos diseñados gracias a la matemática. Este libro propone un estimulante viaje a la aritmética de la seguridad y el secreto, con paradas, entre otras, en los cifrados que han decidido el destino de las naciones y en el lenguaje con que se comunican los ordenadores.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 182
Veröffentlichungsjahr: 2018
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
© 2010, Joan Gómez Urgellés por el texto
© 2012, RBA Coleccionables, S.A.
© de esta edición: RBA Libros, S.A., 2018.
Avda. Diagonal, 189 — 08018 Barcelona.
rbalibros.com
Diseño cubierta: Luz de la Mora
Infografías: Joan Pejoan
Fotografías: Age Fotostock; Album; Album-Lessing; Archivo militar de Ávila; Archivo RBA; Album-Akg; Corbis; iStockphoto; Joan Pejoan; National Cryptologic Museum, Maryland.
Primera edición: enero de 2018.
Ref.: ODBO171
ISBN: 978-84-8298-697-5
Composición digital: Newcomlab S.L.L.
Queda rigurosamente prohibida sin autorización por escrito del editor cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra, que será sometida a las sanciones establecidas por la ley. Pueden dirigirse a Cedro (Centro Español de Derechos Reprográficos, www.cedro.org) si necesitan fotocopiar o escanear algún fragmento de esta obra (www.conlicencia.com; 91 702 19 70 / 93 272 04 47). Todos los derechos reservados.
Índice
Prefacio
¿Cuán segura es la información?
Códigos, cifras y claves
Claves privadas y claves públicas
El «telegrama Zimmermann»
La Habitación 40 se pone a trabajar
La criptografía, de la Antigüedad al siglo XIX
La esteganografía
La criptografía por transposición
Al César lo que es del César
16=4. Aritmética modular y las matemáticas del cifrado César
Jugando a espías
Más allá del cifrado afín
El análisis de frecuencias
Un ejemplo en detalle
El cifrado polialfabético
La aportación de Alberti
El cuadrado de De Vigenère
Clasificar alfabetos
El criptoanalista anónimo
Máquinas que codifican
El código Morse
A 80 kilómetros de París
La máquina Enigma
Descifrar el código Enigma
Los británicos toman el relevo
Otros códigos de la Segunda Guerra Mundial
Los «hablantes en código» navajos
Vías de innovación: el cifrado de Hill
Dialogar con ceros y unos
El código ASCII
El sistema hexadecimal
Sistemas de numeración y cambios de base
Códigos contra la pérdida de información
Los «otros» códigos: los estándares de la industria y el comercio
Las tarjetas de crédito
Los códigos de barras
El código EAN-13
Un secreto a voces: la criptografía de llave pública
El problema de la distribución de la clave
El algoritmo de Diffie-Hellman
Los primos acuden al rescate: el algoritmo RSA
El algoritmo RSA, en detalle
¿Por qué deberíamos confiar en el algoritmo RSA?
Una privacidad razonable
Autenticación de mensajes y claves
Las funciones hash
Los certificados de clave pública
Pero ¿es seguro comprar en Internet?
Un futuro cuántico
La computación cuántica
El gato que no estaba ni vivo ni muerto
Del bit al qubit
¿El fin de la criptografía?
Lo que la mecánica cuántica quita, la mecánica cuántica lo da
La cifra indescifrable
32 centímetros de secreto absoluto
Anexo
Bibliografía
Prefacio
Un juego muy habitual en el patio de cualquier colegio es el de idear un alfabeto secreto con el que enviar y recibir mensajes confidenciales. El esfuerzo dedicado a estos códigos primerizos responde más al entusiasmo de los jóvenes espías que al interés de algún tercero por fisgonear la información así transmitida. En el mundo de los adultos, sin embargo, este interés existe, y la confidencialidad de las comunicaciones constituye un tema de extraordinaria importancia.
Antaño circunscritos a las actividades de una élite política y social, la llegada de la era de la información ha hecho de la los códigos y las cifras una necesidad de la sociedad en su conjunto. Este libro se propone explicar la historia de los códigos secretos de la mano del guía más cualificado para ello: las matemáticas.
La criptografía, es decir, el arte de escribir en clave, apareció con la escritura misma. Y aunque egipcios y mesopotámicos ya hicieron uso de métodos de cifrado, los primeros en aplicarse de lleno fueron los griegos y los romanos, culturas belicosas para las cuales comunicarse en secreto era un elemento clave para el éxito militar. Con ellos arrancó un conflicto de nuevo cuño: el que se declara entre los guardianes del secreto, los criptógrafos, y quienes pretenden desvelarlo, los criptoanalistas. Se trata de una lucha en la sombra que, en función de cada época, se decanta hacia un lado o hacia el otro sin acabar de resolverse nunca. En el siglo VIII, por ejemplo, el sabio árabe al-Kindi dio con una herramienta de descifrado, el análisis de frecuencias, que parecía que iba a dar al traste con las esperanzas de los codificadores. La respuesta de estos segundos, la cifra polialfabética, tardó siglos en llegar, y cuando lo hizo también pareció a su vez definitiva… hasta que una versión más sofisticada de criptoanálisis, alumbrada por un genio inglés en la intimidad de su despacho, de nuevo dio ventaja a los espías. Ya por aquel entonces el arma principal empleada por unos y otros fueron las matemáticas, de la estadística a la aritmética modular, pasando por la teoría de números.
Este toma y daca vivió un punto de inflexión con la aparición de las primeras máquinas de codificación, a las que siguieron, no mucho tiempo después, las dedicadas a la operación contraria. De estas últimas surgió el primer ordenador, el Colossus, ideado por los británicos para descifrar los mensajes de Enigma, el ingenio de cifrado alemán. Fue precisamente con la eclosión de la computación cuando los códigos adquirieron un papel protagonista en la transmisión de la información más allá de consideraciones relativas al secreto o a la confidencialidad. El auténtico lenguaje universal de la sociedad moderna no emplea letras ni ideogramas, sino ceros y unos, y es un código: el binario.
¿Qué bando se ha beneficiado más del advenimiento de las nuevas tecnologías, el de los criptógrafos o el de los criptoanalistas? ¿Sigue siendo posible la seguridad en esta era de virus, piratas informáticos y superordenadores? Lo cierto es que sí, y de nuevo hay que darle las gracias a las matemáticas: en este caso, a los números primos y a sus peculiares características. ¿Cuánto durará esta hegemonía momentánea del secreto? La respuesta a esta pregunta nos llevará a los horizontes últimos de la ciencia actual, dominados por la mecánica cuántica, cuyas asombrosas paradojas marcarán el final de este apasionante viaje por las matemáticas de la seguridad y del secreto.
Este libro se completa con una bibliografía esencial para quienes deseen profundizar más en el mundo de la codificación y la criptografía, y con un índice analítico que facilitará la consulta.
¿Cuán seguraes la información?
Criptografía: arte de escribir con clave secreta o de un modo enigmático.Diccionario de la Real Academia Española
El interés por transmitir un mensaje de forma que su significado quede oculto a los ojos de todo lector que no sea el destinatario o destinatarios es, posiblemente, tan antiguo como la propia escritura. De hecho, se tiene constancia de una serie de jeroglíficos «no estándar» de más de 4.500 años de antigüedad, aunque no se sabe con certeza si obedecían a un intento serio por ocultar información o si más bien respondían a algún tipo de ritual mistérico. Mayor seguridad se tiene con respecto a una tablilla babilónica fechada en el 2.500 a.C. En ella aparecen términos a los que se les ha sustraído la primera consonante, o se emplean caracteres en variantes poco habituales. Investigaciones posteriores han revelado que contiene la descripción de un método para la elaboración de cerámica vidriada, por lo que cabe pensar que fue grabada por un comerciante o tal vez un alfarero celoso de que otros competidores averiguaran los secretos de su oficio.
Con la expansión de la escritura y el nacimiento de grandes imperios en constante lucha fronteriza, la criptografía y, en general, la transmisión segura de información se convirtió en una prioridad creciente de gobiernos e individuos. Hoy en día, con el advenimiento de la era de la Información, la necesidad de proteger la integridad de las comunicaciones y mantener un adecuado nivel de privacidad es más importante que nunca. Apenas hay flujo de información que no se codifique de una forma u otra con el objeto de agilizar su transmisión y asegurar que ésta se produce de forma correcta; por ejemplo, convirtiéndola de texto a lenguaje binario, es decir, una ristra de ceros y unos que resulte comprensible para un ordenador. Una vez codificada, buena parte de esta información debe ser protegida de todo aquel que quiera interceptarla, es decir, debe ser encriptada. Por último, el receptor legítimo de la información debe ser capaz de entender aquello que se le dice, y por tanto tiene que ser capaz de desencriptarla. Codificación, encriptación y desencriptación son los pasos básicos de una «danza de la información» que se repite millones de veces por segundo todos y cada uno de los minutos, las horas y los días del año. Y la música que acompaña y gobierna esta danza no es otra que la matemática.
CÓDIGOS, CIFRAS Y CLAVES
Los entendidos en criptografía emplean el término codificar en una acepción distinta a la común. Para ellos, la codificación es un método de escritura en clave que consiste en sustituir unas palabras por otras. La alternativa a este método sería el cifrado o cifra, el cual sustituye letras o caracteres. Con el tiempo, este segundo se ha hecho tan prevalente que ha acabado por erigirse en sinónimo de escribir en clave. Si nos atenemos a la precisión anterior, el término correcto para este último caso sería encriptar (y desencriptar para el caso del proceso inverso). Excepto en aquellas ocasiones en que puedan inducir a confusión, en el presente libro se respetará el uso común de los diferentes términos para evitar pesadas reiteraciones.
Según lo visto, si quisiéramos transmitir de forma segura el mensaje «ATACAR», podríamos hacerlo de dos maneras básicas: sustituyendo la palabra (codificación) o sustituyendo alguna o la totalidad de las letras que la componen (cifrado). Una manera sencilla de codificar una palabra es traducirla a un idioma que los posibles «espías» desconozcan, mientras que para cifrarla bastaría, por ejemplo, con sustituir cada letra por otra situada más adelante en el alfabeto. En ambos casos es necesario que el destinatario conozca la regla que hemos empleado para encriptar el mensaje o corremos el riesgo de que no lo entienda. Si ya hemos acordado con él que íbamos a emplear una regla u otra («traducirla a otro idioma», «sustituir cada letra por otra situada más adelante en el alfabeto»), sólo necesitaremos comunicarle, en el primer caso, el idioma de destino, y en el segundo, el número de posiciones que hemos adelantado en el alfabeto para sustituir cada letra. En nuestro ejemplo de cifrado, si el destinatario recibe el mensaje «CVCECT», y sabe que hemos adelantado cada letra dos posiciones, podrá revertir el proceso fácilmente y desencriptar el mensaje.
EL CÓDIGO BINARIO
Para que un ordenador entienda y procese información, ésta tiene que traducirse del lenguaje en el que esté escrita al denominado lenguaje binario. Este lenguaje se compone únicamente de dos caracteres: el cero y el uno. La expresión binaria de las diez primeras cifras del sistema decimal es la de la tabla adjunta.
Por consiguiente, el número 9.780 se expresaría, en código binario, como 10011000110100.
001110211310041015110611171000810019101010¿TRADUCIR O DESENCRIPTAR?
Abordar la traducción de un texto escrito en un idioma cuya grafía nos es desconocida puede, en ocasiones, abordarse como un problema general de desencriptación: el mensaje original sería el texto ya traducido a nuestro idioma y el algoritmo de encriptación, las reglas gramaticales y sintácticas del idioma original. Las técnicas empleadas históricamente para uno y otro cometido (esto es, traducir y desencriptar) guardan muchas similitudes. En ambos casos, sin embargo, se tiene que dar una misma circunstancia: que emisor y receptor compartan, al menos, un idioma. Es por ello que la traducción de textos escritos en idiomas «perdidos», como el jeroglífico egipcio o el Linear B minoico, fue imposible hasta que se halló una correspondencia entre ellos y otro idioma conocido; en ambos casos, el griego. En la ilustración, tablilla hallada en Creta cuyas inscripciones corresponden al idioma conocido como Linear B.
¿CUÁNTAS CLAVES SE PRECISAN?
¿Cuál es el número mínimo de claves necesarias en un sistema de dos usuarios? ¿Y de tres? ¿Y de cuatro? Para que dos usuarios se comuniquen entre sí sólo se precisa una clave. Para el caso de tres, son necesarias tres de ellas: una para la comunicación entre A y B, otra para el par A y C, y una tercera para B y C. De forma análoga, cuatro usuarios necesitarán seis claves. Generalizando, para n usuarios se necesitarán tantas claves como combinaciones de n usuarios escogidos de dos en dos, es decir:
Así, un sistema relativamente pequeño de 10.000 usuarios interconectados requerirá 49.995.000 claves. Para el caso de una población mundial de 6.000 millones de individuos, la cifra resulta del todo mareante: 17.999.999.997.000.000.000.
La distinción que se ha establecido entre regla de encriptación (de aplicación general) y parámetro concreto de encriptación (específica de cada mensaje o de un grupo de mensajes) resulta de extrema utilidad, puesto que un eventual «espía» necesita conocer las dos para poder descifrar el mensaje. Así, el espía podría saber que la regla de cifrado es sustituir cada letra por la que le corresponde un número concreto x de posiciones más adelante en el alfabeto, pero si desconoce x deberá probar todas las combinaciones posibles: una para cada letra del alfabeto (si contamos la ñ, un total de 27). En este ejemplo, la cifra es sencilla y agotar todas las posibilidades –lo que se denomina desencriptación por fuerza bruta– no resulta extremadamente laborioso. Sin embargo, para el caso de técnicas más complejas este tipo de ataque, o criptoanálisis, resulta a menudo imposible. Además, la intercepción y el eventual descifrado de mensajes están sujetos, habitualmente, a importantes restricciones de tiempo: la información debe ser obtenida con margen suficiente para actuar en consecuencia.
A la regla general de encriptación se la denomina a menudo algoritmo de encriptación, mientras que el parámetro concreto empleado para cifrar o codificar el mensaje (en nuestro ejemplo de cifrado, el número de posiciones adelantadas que ocupa la letra con la que sustituimos a la del mensaje original, es decir, 2) se denomina clave. Es obvio que, dado un mismo algoritmo de encriptación, el número de claves puede ser muy grande, y ya hemos visto que, a la hora de desencriptar un mensaje, conocer el algoritmo puede muy bien ser inútil a menos que se sepa también la clave empleada para encriptarlo. Siendo las claves por lo general más fáciles de cambiar y de distribuir, parece lógico concentrar los esfuerzos en proteger un sistema de encriptación que mantenga en secreto las claves. Este principio fue consagrado de forma definitiva a finales del siglo XIX por el lingüista neerlandés Auguste Kerckhoffs von Nieuwenhof, en el que se conoce como «principio de Kerckhoffs».
Como resumen de lo expuesto hasta el momento, podemos plantear un sistema general de encriptación definido por los elementos siguientes:
Es decir, un emisor y un receptor del mensaje, un algoritmo de encriptación y una clave definida que permiten al emisor cifrar el mensaje y al receptor, descifrarlo. Más adelante veremos como este esquema se ha visto modificado en tiempos recientes en razón de la naturaleza y función de la clave, pero hasta ese momento nos ceñiremos a él.
¿CUÁNTAS CLAVES SE PRECISAN? 2ª PARTE
Como hemos visto, la criptografía clásica requería de un número enorme de claves. Sin embargo, en un sistema de criptografía pública, dos usuarios cualesquiera que intercambien mensajes necesitan sólo cuatro de ellas: sus respectivas claves públicas y privadas. En este caso tenemos que n usuarios «sólo» necesitan 2n claves.
Claves privadas y claves públicas
El principio de Kerckhoffs consagra la clave como el elemento fundamental en la seguridad de un sistema criptográfico. Hasta tiempos relativamente recientes, las claves de un emisor y de un receptor en todos los sistemas criptográficos concebibles tenían que ser iguales o cuando menos simétricas; es decir, tenían que servir igualmente para encriptar y desencriptar. La clave era, pues, un secreto compartido entre emisor y receptor, y por tanto, el sistema criptográfico en cuestión era vulnerable, por así decirlo, por ambos lados. Este tipo de criptografía dependiente de una misma clave compartida por emisor y receptor se denomina clásica o de clave privada (o, también, de llave privada, por analogía con el término inglés original «key», llave).
Todos los sistemas criptográficos ideados por el hombre desde el inicio de los tiempos, con independencia del algoritmo que se empleara y de la complicación del mismo, compartían esta característica. Que la clave de un sistema tiene que ser la misma para receptor y emisor parece una cuestión de sentido común. Al fin y al cabo, ¿cómo es posible cifrar un mensaje de acuerdo con una clave y descifrarlo de acuerdo con otra, esperando que el significado del texto se mantenga? Durante miles de años, esta posibilidad se antojaba un absurdo lógico. Sin embargo, y como veremos con más detalle más adelante, hace apenas cinco décadas lo absurdo acabó por tornarse plausible, y lo plausible supo implementarse de forma práctica.
Hoy en día, los algoritmos de encriptación empleados en la mayoría de las comunicaciones consisten en, al menos, dos claves: una privada, como era tradicional, y otra pública que conoce todo el mundo. El mecanismo de transmisión es como sigue: un emisor se hace con la clave pública del receptor a quien desea enviar el mensaje, y la emplea para encriptarlo. El receptor coge ahora su clave privada y la utiliza para descifrar el mensaje recibido. Este sistema posee, además, una importantísima ventaja adicional: ni el emisor ni el receptor han tenido que verse previamente para acordar ninguna de las claves implicadas, con lo que la seguridad del sistema se refuerza todavía más. Esta forma de encriptación absolutamente revolucionaria se conoce como de clave pública, y constituye la base de la seguridad de las redes globales de comunicación contemporáneas.
En la base del desarrollo de esta tecnología revolucionaria se encuentran las matemáticas. En efecto, y como se explicará en detalle, la criptografía moderna descansa en dos pilares: la aritmética modular, por un lado, y la teoría de números –en especial, la parte de ella concerniente al estudio de los números primos–, por otro.
EL «TELEGRAMA ZIMMERMANN»
La criptografía es uno de los ámbitos de la matemática aplicada donde se hace más evidente el contraste entre la limpieza y «frialdad» de los principios teóricos que la gobiernan y la enormidad de las consecuencias humanas de su puesta en práctica. Al fin y al cabo, del éxito o fracaso a la hora de mantener seguras las comunicaciones a menudo pende el destino de naciones enteras. Uno de los ejemplos más espectaculares de cómo la criptografía cambió el rumbo de la historia contemporánea se dio hace aproximadamente un siglo, en el caso conocido desde entonces como «el telegrama Zimmermann».
Portada del New York Times dando noticia del hundimiento del Lusitania.
El 7 de mayo de 1915, con media Europa sumida en un sangriento conflicto fraticida, un submarino alemán –los tristemente célebres U-Boat– torpedeó el barco de pasajeros Lusitania, que navegaba bajo bandera británica en las cercanías de Irlanda. El resultado fue una auténtica masacre: 1.198 civiles, de entre los cuales 124 eran de nacionalidad estadounidense, perdieron la vida en el naufragio. La noticia enfureció a la opinión pública de Estados Unidos, y el gobierno del presidente Woodrow Wilson advirtió a sus homólogos alemanes que cualquier acto similar llevaría consigo la inmediata entrada norteamericana en la guerra en el bando de los aliados. Además, Wilson exigió que los submarinos alemanes emergieran antes de llevar a cabo cualquier ataque, para evitar así nuevos hundimientos de navíos civiles. El potencial ofensivo de los U-Boat se veía, de este modo, seriamente comprometido.
En noviembre de 1916, Alemania designó a un nuevo ministro de Exteriores con fama de dialogante, Arthur Zimmermann. La noticia fue recibida con alborozo por la prensa estadounidense, que llegó a calificar su nombramiento como «un espléndido augurio de cara a las relaciones entre Alemania y Estados Unidos».
En enero de 1917, menos de dos años después de la tragedia del Lusitania, y con el conflicto en pleno auge, el embajador alemán en Washington, Johann von Bernstorff, recibió de Zimmermann el telegrama codificado siguiente, con instrucciones de remitirlo secretamente a su homólogo en México, Heinrich von Eckardt:
«Nos proponemos comenzar el primero de febrero la guerra submarina, sin restricción. No obstante, intentaremos mantener la neutralidad de los Estados Unidos de América.
En caso de no tener éxito, proponemos a México una alianza sobre las siguientes bases: hacer juntos la guerra, declarar juntos la paz. Aportaremos abundante ayuda financiera; y el entendimiento por nuestra parte de que México ha de reconquistar el territorio perdido en Nuevo México, Texas y Arizona. Los detalles del acuerdo quedan a su discreción [de Von Eckardt].
Queda usted encargado de informar al presidente [de México] de todo lo antedicho, de la forma más confidencial posible, tan pronto como el estallido de la guerra con los Estados Unidos de América sea un hecho seguro. Debe además sugerirle que tome la iniciativa de invitar a Japón a adherirse de forma inmediata a este plan, ofreciéndose al mismo tiempo como mediador entre Japón y nosotros.
Haga notar al Presidente que el uso despiadado de nuestros submarinos ya hace previsible que Inglaterra se vea obligada a pedir la paz en los próximos meses.»
Arriba, el telegrama Zimmermann en la versión que remitió el embajador alemán en Washington, Johann von Bernstorff, a su homólogo en México; abajo, la versión descifrada del mismo telegrama.
Parte del descifrado parcial del telegrama Zimmermann llevado a cabo por los británicos. En la parte inferior puede apreciarse cómo los alemanes, careciendo de un código para el término «Arizona», lo codificaron por partes: AR, IZ, ON, A.
En caso de hacerse público, este telegrama tendría como segura consecuencia el estallido de la guerra entre Alemania y Estados Unidos. Aunque el káiser Guillermo II sabía que ello sería inevitable una vez sus submarinos empezaran a operar sin emerger antes de un ataque, confiaba en que, por aquel entonces, el Reino Unido ya habría capitulado y, por tanto, no hubiera conflicto al que los norteamericanos pudieran sumarse. Si no se daba esta circunstancia, la amenaza activa de México a lo largo de la frontera sur de Estados Unidos podía igualmente disuadir a los norteamericanos de iniciar un doble conflicto a enorme distancia el uno del otro. Para ello, sin embargo, México iba a necesitar un mínimo de tiempo para organizar sus fuerzas. Por tanto, era vital que las intenciones germanas permanecieran en secreto el tiempo suficiente como para que la guerra submarina decantara la balanza del conflicto a su favor.
La Habitación 40 se pone a trabajar
