EL CASO DEL CRIPTOANALISTA BRUJO

La criptografía y el ocultismo han estado unidos durante gran parte de su historia. Es algo inevitable. La criptografía se dedica a la ocultación de la información, y su uso implica un ritual (ahora lo llamamos algoritmo) que ha de llevarse a cabo sin cometer un solo fallo. Cuando funciona, consigue convertir la información clara en un batiburrillo ilegible; y a la inversa. A veces, parece cosa de brujería. La magia, por su parte, intenta “descifrar” los misterios de la naturaleza, por medio de una serie de pasos que también han de cumplirse escrupulosamente. Suele ir acompañada de palabras mágicas, y durante siglos los abracadabra y los hocus pocus han actuado como contraseñas de lo oculto.

De sobra conocida es la siguiente anécdota. A mediados del siglo XVI, el criptoanalista francés Francois Viète consiguió romper una cifra española. El rey español, muy molesto, denunció a Viète ante el Papa, acusándole de brujería y magia negra. Como pueden imaginarse, solamente le sirvió para ganarse las carcajadas de toda Europa. Esta historia/leyenda/anécdota/bulo apareció por vez primera en la Enciclopedia de Jaques Auguste de Thou, un historiador francés de finales del siglo XVI. La historia no está verificada, y hay motivos para dudar de ella (los franceses nunca nos han querido, y mucho menos en aquella época), si bien hay que tener en cuenta que de Thou llegó a consejero de Estado y, por tanto, tenía acceso a información de alto nivel.

Este episodio fue añadido a nuestra Leyenda Negra. Ahora, por el contrario, hay pruebas que demuestra que los servicios criptológicos de Felipe II eran de los mejores en aquella época, incluyendo el uso del criptoanálisis, y en uno de sus primeros actos como soberano ordenó cambiar las cifras de su padre. ¿Sería alguien así capaz de creer que la criptografía es asunto de brujas?

La hipótesis que me parece más probable es aquella según la cual Felipe II, buen conocedor del poder de la criptografía, quiso poner en un brete al mejor criptoanalista francés ante un enemigo tan poderoso como la Iglesia (recordemos que Viète trabajaba para el protestante rey Enrique IV, en lucha entonces contra la facción católica francesa). Puestos a acusar, era preferible no mentar el asunto del criptoanálisis y centrarse, en su lugar, en la acusación de brujería, delito ante el que podía actuar la Inquisición en cualquier país. En aquella época en la que poca gente sabía leer, magia negra y criptografía podían fácilmente confundirse.

Medio milenio antes, el papa Silvestre II (945-1003) re-descubrió un sistema de taquigrafía de tiempos romanos (con reminiscencias criptográficas) conocido con el nombre de notas tironianas. Se trataba de un hombre erudito, cuyos conocimientos le pusieron en ocasiones en un serio compromiso. El “papa del año 1000” fue incluso acusado de tener un pacto con el diablo y de probar disciplinas como la cábala.

La historia registra el nombre de otros erudito mitad criptógrafo mitad ocultista: Enrique de Aragón, señor de Villena (1384-1434), nieto bastardo de Enrique II de Castilla y miembro de la casa real de Aragón por vía paterna. Hombre de gran erudición, que destacó por la traducción de textos como la Divina Comedia de Dante. Su interés por las ciencias, desde la medicina hasta la alquimia, le valió fama de brujo; no en vano pasó a la historia con el apelativo de el nigromántico.

Hasta tal punto fue así, que a su muerte gran parte de su librería fue quemada por el obispo Lope de Barrientos, quien actuaba bajo órdenes del rey Juan II de Castilla. Sin embargo, sobrevivió un curioso libro denominado Libro del Tesoro, que contiene una parte cifrada. Una nota en la obra indica que se hizo porque non fuese entendida salvo de ome bueno e sabio. Se sabe que de 1412 a 1416 el señor de Villena trabajó como ayudante personal de su primo el rey Fernando. Allí pudo haber aprendido técnicas de cifrado, o bien haber instruido a la propia cancillería aragonesa en la materia.

En realidad, la ligazón entre criptografía y ocultismo nunca ha desaparecido del todo. Durante la Segunda Guerra Mundial, los alemanes protegían sus comunicaciones mediante la máquina cifradora Enigma. Teniendo en cuenta que la Real Academia define la criptografía como “arte de escribir con clave secreta o de un modo enigmático,” el nombre no podía estar mejor escogido. El esfuerzo hecho por los Estados Unidos para romper los códigos japoneses fue ocultado con el nombre código Magic. Yo mismo fui entrevistado una vez por la revista de ocultismo Más Allá de la Ciencia; por qué su consejo editorial pensó que el tema de la criptografía durante la Segunda Guerra Mundial encajaría bien en una publicación de esoterismo es algo que se me escapa[1].

Es el momento de introducir a nuestro primer protagonista de hoy. James Randi, un antiguo mago, es conocido en el mundo escéptico como “cazador de brujos” y azote de los médiums. En los años setenta saltó a la fama al acusar de charlatán nada menos que al famoso mentalista Uri Geller. En 1996, fundó la Fundación Educativa James Randi (JREF, James Randi Educational Foundation) para intentar examinar las afirmaciones paranormales en condiciones controladas[2]. Desde hace años, Randi mantiene un desafío particular: dará un premio de un millón de dólares a cualquiera que pueda demostrar, bajo condiciones controladas de experimentación, ser poseedor de poderes ocultos o paranormales[3].

Hasta la fecha, nadie ha llegado a pasar siquiera las pruebas preliminares, no digo ya ganar el desafío. Sin embargo, hay una persona que afirma haberlo conseguido. Entra aquí nuestro segundo personaje del día: Matt Blaze, profesor de la Universidad de Pensilvania, experto en criptografía y seguridad informática. Y muy bueno: ya en 1994 descubrió una forma de saltarse la protección del chip Clipper, que la Administración Clinton intentaba vender como la solución para combinar las ansias de privacidad de los internautas con las necesidades de las fuerzas de seguridad (contenía un algoritmo que incluía un dispositivo de “key escrow”, o depósito de claves, así que nos hizo un buen favor a todos al mostrar el fallo). También publicó estudios sobre el propio esquema de “key escrow” (su conclusión: es una mala idea), el sistema de interceptación "Carnivore" del FBI, y testificó en diversas ocasiones ante comisiones del Congreso de EEUU y del Parlamento Europeo.

Diez años más tarde volvió a irritar a las autoridades al narrar la odisea que le supuso cruzar la frontera de EEUU con un teléfono que utilizaba cifrado fuerte. Puesto que en aquella época eso requería un permiso de exportación especial, Blaze publicó su experiencia en un divertido artículo titulado “mi vida como traficante de armas[4]. Con semejantes antecedentes, creo que hemos dejado claro que Matt Blaze tiene tanto talento como sentido del humor. Por ello, nadie sabía bien cómo tomarse su afirmación de que había ganado el “desafío del millón de pavos” de Randi.

Esto fue lo que sucedió. Exasperado ante las mentiras vertidas por un “visor remoto” (persona que afirma que puede realizar una proyección astral y enviar su alma a otro lugar), en enero de 2007 Randi lanzó de nuevo su desafío en una versión modificada: cualquier persona que se pudiese proyectar astralmente hasta su oficina y descubriese un objeto guardado en un archivador ganaría el millón de dólares[5]. Para animar a los posibles candidatos, incluyó la siguiente descripción:

0679

4388

66/27

5 -14

El motivo de revelar esos datos era que cualquiera pudiese verificar a posteriori que no había existido trampa alguna. Randi declaró que, doce meses después, revelaría la “clave de decodificación”. No contaba con Matt Blaze. El criptógrafo se “concentró,” y enseguida descubrió el contenido de la caja. El proceso fue descrito por el propio Blaze de la siguiente forma:

“Hemos [lo descubrió conjuntamente con Jutta Degener] visualizado con éxito el contenido de la caja desafío de Randi. Lo conseguimos desde más de 1500 km de distancia, tan sólo mediante concentración mental y la aplicación de nuestros talentos (o debería decir dones), y sin acceso físico o información interna. Podemos revelar ahora el contenido: una pequeña rueda, o disco circular, como un DVD o CD”.

¿Les pica la curiosidad? Bueno, la verdad es que ni Blaze es vidente (que sepamos), ni usó sus habilidades criptográficas. O no del todo, aunque es indudable que una vida dedicada al manejo de los números le habrá predispuesto. En cualquier caso, conjeturó que los primeros dígitos podrían corresponder a un número de registro ISBN, de esos que identifican un libro. De ese modo, “0679 4388 66” se convierte en el ISBN 0-679-43886-6, correspondiente al diccionario Random House Webster’s College Dictionary, edición de 1995.

Los siguientes números 275 -14 pueden corresponder a la palabra situada en la página 275, línea 14 contando desde abajo (por el signo menos). ¿Y qué aparece en esa línea? La entrada correspondiente a la definición de “compact disc”. Randi confirmó la veracidad de esa afirmación: efectivamente, se trataba de un CD.

Blaze aprovechó la ocasión para escribir una divertida entrada en su blog. Bajo el título de “James Randi me debe un millón de dólares,” aprovecha la oportunidad para explorar algunas facetas criptográficas. Entre otras cosas, postuló que con un poco de imaginación el mensaje hubiera podido “descifrarse” casi de cualquier forma. Por ejemplo, tomando el número 14 no como un número de línea sino como “columna 1, definición 4”, concluiríamos que la caja contenía un ejemplar del Manifiesto Comunista; Randi, por su parte, podría haber aprovechado esta ambigüedad para negar el premio[6].

El desafío de Randi ilustra un conjunto de problemas en los que no solamente hay que mantener un secreto sino también verificar que no ha sido cambiado. Digamos que Alicia, agente de bolsa, intenta convencer a Benito de que contrate sus servicios. Benito no se fía y quiere poner a prueba a Alicia, así que le pide una predicción sobre algunas empresas que vayan a ir bien en bolsa. Alicia está convencida de que Repsol y Telefónica van a subir mucho, pero ella tampoco se fía y piensa “si se lo digo, él podrá comprar las acciones por su cuenta y no necesitará de mis servicios”. Prefiere esperar un mes, y entonces le revelará a Benito cuál fue su elección. Ahora bien, cuando Repsol y Telefónica hayan subido y Alicia diga que esas eran las acciones que habría escogido, Benito no tiene ninguna posibilidad de verificar la validez de esa afirmación.

Sabemos que es muy fácil hacer predicciones a toro pasado; más difícil es hacerlas antes de que sucedan; y todavía más difícil es convencer a los demás de haber hecho una predicción sin revelar los resultados de esa elección. Para simplificar nuestro ejemplo, el secreto va a tomar una forma binaria. Podría ser una respuesta a la pregunta “¿Es Telefónica una buena inversión?” Sólo habría dos respuestas posibles: sí (1) y no (0). Ese secreto, que representaremos con la letra b, es lo que Alicia tendrá que proteger y Benito deberá verificar.

Vamos a describir un esquema que utiliza algoritmos de cifrado simétrico. Alicia cifra su secreto b por medio de un algoritmo de cifrado E que utiliza una clave k. El resultado, Ek(b), queda bajo la custodia de Benito. Un mes después, Telefónica ha subido como la espuma. Es el momento en que Alicia llama a Benito y descifra el mensaje en su presencia. El resultado es b, que vale 1: Telefónica sí es una buena inversión. Puede que Benito siga sin convencerse, porque a fin de cuentas la subida de Telefónica en bolsa puede haber sido cuestión de suerte. Pero Alicia puede hacer el mismo proceso con varias acciones. Que Alicia acierte en el comportamiento de todas ellas ya resulta mucho menos probable. Finalmente Benito se da por satisfecho y contrata los servicios de Alicia, convencido de haber hecho un buen negocio.

Por desgracia, lo único que esta “demostración” prueba es que Alicia es, o bien una gran agente de bolsa… o bien una timadora de primera. El problema aquí consiste en que Alicia controla el proceso de cifrado, y eso incluye la elección de la clave para cifrar k. Recordemos que su predicción es que Telefónica subirá, lo que significa que b=1. Ella en principio ha escogido una clave k al azar, y lo que le ha entregado a Benito es Ek(b). La cuestión es la siguiente. Si usamos la misma clave para descifrar, evidentemente recuperaremos el mensaje original, ya que es un algoritmo de cifra simétrica; de ese modo, al descifrar obtenemos Dk(Ek(b))=b. O dicho en palabras: ciframos con una clave el bit 1, lo desciframos con la misma clave y obtenemos 1.

¿Pero qué pasaría si descifrásemos el mensaje con otra clave distinta? Si el algoritmo es bueno, su cifrado será indistinguible de un conjunto de bits aleatorios. Eso significa que, en promedio, la mitad de las veces que intentemos descifrar el mensaje nos saldrá el bit 1, y la otra mitad nos saldrá el bit 0. Alicia se aprovecha de ello, y cuando está sola en su casa descifra el mensaje con otra clave distinta. Es decir, efectúa la operación Dk’(Ek(1)). El truco consiste en ir probando claves k’ hasta que una de ellas nos de cómo resultado un bit cero, es decir, Dk’(Ek(1))=0. Y ahora Alicia vuelve a cifrar el resultado, pero esta vez con la clave k’. Al hacerlo, tenemos que:

Ek’(Dk’(Ek(1))) = Ek’(0)

Ahora Alicia tiene dos claves que toman dos bits distintos y los cifra de la misma forma: C=Ek(1)=Ek’(0). Benito tiene el mensaje cifrado C, pero no sabe si es el resultado de cifrar 1 con la clave k o 0 con la clave k’. Ese es el detalle que usará Alicia para timar al incauto Benito. Digamos que Telefónica ha subido en el mes de prueba. A Alicia le interesa que el descifrado del mensaje sea b=1, así que efectúa la operación de descifrado con la clave k. El resultado es Dk(C)=1. Justo como había predicho. Si, por el contrario, Telefónica se ha estrellado contra el parqué, lo que hace es descifrar con la clave k’ y obtener Dk’(C)=0. Justo como había predicho. En ambos casos, el mensaje cifrado “prueba” lo que Alicia quiere que pruebe.

El truco de Alicia es una variante de lo que se conoce como cifrado negable (deniable encryption), una técnica que permite negar la existencia de un mensaje cifrado. Tiene dos variantes. En una de ellas, un mensaje cifrado adopta una forma que impide reconocerlo como tal, de manera que no se puede demostrar la existencia del mensaje sin la clave adecuada; en otra, un mensaje cifrado se puede descifrar con dos claves distintas, arrojando dos textos llanos distintos.

Imagínese el lector, por ejemplo, un mensaje enviado por una multinacional a su filial en España. Cuando los directores regionales reciben el mensaje, lo descifran con la clave A y leen “están ustedes haciendo un gran trabajo”. Eso tranquiliza a la plantilla. El consejo de dirección, sin embargo, utiliza la clave B y obtienen el mensaje “hay que hacer recortes, cierren las delegaciones de Málaga, Zaragoza y Valencia”. Dos públicos reciben, a partir del mismo texto cifrado, mensajes muy distintos.

En el caso de Alicia y Benito, el protocolo puede mejorarse. La forma de hacerlo es hacer que Alicia no cifre solamente el bit b, sino una combinación R+b, donde R es una cadena de bits aleatorios. Para hacer trampas, Alicia tendría que encontrar dos claves k, k’ tales que Ek(R+1)=Ek’(R+0), algo inviable si R es aleatorio y de tamaño suficiente. Cuando Alicia descifre el mensaje cifrado, Benito podrá leer “R+b,” lo que le revelará la elección de Alicia al tiempo que le permite reconocer su propia R.

El dilema de Alicia bolsista y Benito inversor puede también verse como ejemplo de una serie de problemas llamados “de conocimiento cero”. En este tipo de problemas, Alicia tiene que convencer a Benito de que conoce un secreto. La forma evidente de hacerlo es contárselo, pero en el momento que lo haga dejará de ser un secreto. Un campo de aplicación es el de las contraseñas. Vivimos en un mundo donde la forma de demostrar nuestra identidad es mediante contraseñas: en el cajero automático, en el móvil, en el acceso al trabajo. El usuario no suele pensar que los verificadores pueden no ser quienes afirman ser. Una web bancaria puede ser falsificada, o un cajero trucado, y en esos casos, el cliente estará facilitando su contraseña a terceros no autorizados. Los verificadores legítimos (bancos, empresas de telefonía) concentran sus esfuerzos en “generar confianza,” pero el hecho es que al cliente le puede quedar siempre la duda: ¿será esta gente quien realmente afirma ser?

Las pruebas de conocimiento cero (ZKP) pueden ayudar en estos casos. Vamos a ver un ejemplo de cómo una persona puede demostrar la existencia de un secreto sin revelarlo en absoluto. El artículo original, publicado en 1990, está escrito en forma de cuento de las Mil y Una Noches[7]. Si no les importa, voy a actualizarlo levemente.

Éranse una vez dos arqueólogos, Indy y Lara, que buscaban el secreto de la Sala Oculta. En las profundidades de la selva, el Monte Perdido tiene una entrada (A), que tras un largo pasillo conduce a un vestíbulo (B). De allí arrancan dos pasadizos (C y D), que aparentemente acaban en una pared. Para un observador casual son vías sin salida, pero quien se plante al final de uno de los pasadizos y grite las palabras mágicas se encontrará con que la Sala Oculta aparece de la nada, conectando ambos pasadizos.

Indy conocía las palabras mágicas que revelaban la existencia de la Sala. Lara deseaba conocer ese secreto, así que hizo un trato con Indy: le financiaría su próxima expedición a cambio del secreto. Indy aceptó el trato, pero conforme se acercaban a la Sala empezó a dudar. ¿Y si él cumplía su parte pero Lara se echaba atrás? Por su parte, Lara no estaba dispuesta a soltar el cheque hasta comprobar que las palabras mágicas funcionaban; que Indy era perro viejo y tal vez guardase un as en la manga.

Por fortuna, ambos eran personas razonables, y cuando llegaron a la entrada del Monte Perdido ya habían diseñado una prueba de Conocimiento Cero. El primero en entrar fue Indy. Con paso firme, llegó al vestíbulo y escogió uno de los pasillos. Después entró Lara, quien se quedó en el vestíbulo. Desde allí gritó con voz alta y clara “Indy, vuelve por el pasillo C”. Indy así lo hizo. A continuación, repitieron el proceso de nuevo, escogiendo el mismo pasillo o bien otro distinto (a capricho de Lara). Luego otra vez. Y otra más. Recordando la historia de Alí Babá y los cuarenta ladrones, hicieron este proceso un total de cuarenta veces. Finalmente, Lara se convenció de que Indy conocía el secreto que llevaba a la Sala Oculta.

La clave del protocolo consiste en que ni Lara sabe qué pasillo ha tomado Indy, ni Indy sabe qué pasillo de vuelta le va a indicar Lara. Si las elecciones se toman al azar, hay un 50% de probabilidades de que Indy vuelva por el mismo pasillo por el que entró, lo que ciertamente no prueba nada; pero también hay un 50% de probabilidades de que tenga que salir por un pasillo distinto, y eso no podría hacerlo más que diciendo las palabras mágicas y atravesando la Sala Oculta.

Un Indy tramposo podría haberse arriesgado y confiar en la suerte. Lara lo sabía y no se hubiera quedado satisfecha con la prueba. Pero si Indy repitiese con éxito el proceso un total de 40 veces, la probabilidad de haber “tenido suerte” hubiera sido de una entre un billón. Demasiada suerte incluso para él. Lara concluyó que Indy realmente conocía el secreto de la Sala Oscura y cumplió su parte del trato.

Algún tiempo después, tuve la oportunidad de cenar con ambos arqueólogos (recuerden, esto es un cuento). Tras un magnífico Oporto, me contaron toda la historia. Yo, que cuando he pillado el punto suelo volverme algo malicioso, les dije: “Entiendo por qué ese proceso tan complicado funciona, pero hay algo que aún se me escapa. Lara, ¿por qué no te limitaste a enviar a Indy por un pasillo y esperar a que apareciese por el otro?” Debí haber grabado la cara que pusieron los pobrecitos. Realmente, se hubieran ahorrado una buena caminata por el interior del Monte Perdido.

En su defensa, debo decir que ellos no son criptógrafos profesionales y se limitaron a copiar la idea de un experto y aplicarla a su caso particular. En general, las pruebas de conocimiento cero del tipo que hemos visto requiere una serie de desafíos por parte de la persona que quiere verificar un secreto, seguidos por una elección hecha por el poseedor del secreto. Cada paso del proceso solamente puede hacerse con seguridad si realmente se posee el secreto, en tanto que un timador solamente tiene una probabilidad de acierto debido al azar.

James Randi tampoco es criptólogo profesional, y seguro que no pensó que tendría que enfrentarse a uno. Afortunadamente, en esta ocasión no tuvo por qué preocuparse. Caballero ante todo, Blaze mostró su apoyo al trabajo de la fundación Randi. ¿Y saben lo mejor? En un arrebato de generosidad, renunció al premio. “Por esta vez,” dijo. Si hubiese sido un vidente de esos que salen en la tele, podría haberlo “revelado” en un programa de máxima audiencia para hacerse mundialmente famoso. Sin embargo, no sólo no hizo tal cosa, sino que renunció al premio de un millón de dólares. Hasta la fecha, sigue sin reclamarlo.

Para su sorpresa, el caso acabó en los tribunales. No, bueno, quiero decir de modo simulado. El asunto Randi-Blaze fue aprovechado por un profesor de la Facultad de Leyes de la Universidad Stetson, en Florida, quien tuvo la genial ocurrencia de explicarlo a los alumnos, aderezarlo un poco y utilizarlo como cuestión en un examen. Los alumnos debían explicar quién puede demandar a quién, por qué motivos, y quién ganaría[8].

Por su parte, Randi se lo tomó con humor. Según contó en su revista electrónica, cambió el contenido del archivador, y ahora nos da la siguiente pista[9]:

BSQN ISIO QWOD QPIE

Que yo sepa, nadie ha descifrado este reto ni reclamado el millón de pavos. ¿Se atreve usted a intentarlo? Le deseo suerte. Y, por supuesto, en caso de éxito espero mi porcentaje.