Aunque Dan Brown se hizo mundialmente famoso en 2003 con el éxito de ventas El Código da Vinci, su primera novela fue La Fortaleza Digital. En ese libro, publicado en 1998, la criptografía y los códigos secretos no son un añadido más para dar emoción, sino que constituyen el núcleo del argumento. Por supuesto, cuando Brown fue catapultado a la fama, sus anteriores obras fueron inmediatamente re-editadas y elevadas a la categoría de bestsellers.
Este que escribe no supo de la existencia de ese libro hasta 2007, y fue necesaria una aburrida estancia en un aeropuerto alemán para animarme a adquirir una copia en inglés. Ya saben ustedes lo que pasa en los aeropuertos, las largas esperas y el hastío hacen que uno devore cualquier plato que le pongan ante las narices. Eso me pasó a mí con La Fortaleza Digital. Mi veredicto es el mismo que el de una comida de avión: apetitosa en apariencia, pobre en sabor y claramente insatisfactoria. A pesar de ello (o precisamente debido a ello), creo que puede servirnos para comentar algunos aspectos sobre la criptografía del siglo XX.
El libro en sí me decepcionó bastante, tengo que reconocerlo. Y no me refiero sólo a la parte cripto. El argumento es en ocasiones aburrido y a veces predecible. Los personajes parecen calcados de otros libros. Algunos enigmas se resuelven fácilmente sin más que traducirlos al español (yo leí la versión en inglés, así que no sé cómo se las habrá apañado el traductor para dar sentido sin desvelar el truco). Comentario aparte merece la descripción que hace Brown de Sevilla (donde transcurre parte de la acción), más propia del siglo XVII que del XXI. Es evidente que el autor nunca ha estado en Sevilla, y si en el futuro se atreve a visitarla yo le recomendaría una fuerte escolta… y un pseudónimo.
Muchos críticos han despellejado a Dan Brown desde el punto de vista meramente literario. Incluso dejando de lado sus muchos fallos, me resultó bastante menos interesante que El Código da Vinci o Ángeles y Demonios. Pero eso es la opinión particular de un lector, y seguro que usted espera algo más. En efecto, vamos a estudiar La Fortaleza Digital desde el punto de vista criptográfico.
En este punto, debo advertir al lector de que habrá algunos “spoilers”. Por lo general, cuando critico un libro procuro no revelar el argumento, de forma que el lector pueda decidir si quiere leerlo o no. Pero en este caso, todo el libro gira en torno al tema que estamos aquí tratando, así que la tarea será difícil. En lo que sigue, me centraré en los puntos meramente criptográficos, y no daré detalles que descubran el argumento; así no le fastidiaré la lectura.
El libro gira en torno a la Agencia de Seguridad Nacional (NSA), encargada de proteger los códigos secretos del gobierno norteamericano y de romper los de otras naciones. El protagonista principal es ahora una mujer, Susan Fletcher, mano derecha del jefe de uno de los principales proyectos de la NSA: el superordenador TRANSLTR, capaz de descifrar cualquier tipo de código secreto. El compañero de la protagonista, un profesor de universidad, también acaba metido en el fregado, junto con un misterioso asesino letal (que, incomprensiblemente, se convierte en un chapuzas total a la hora de acabar con un protagonista, y espero no estar revelando demasiado), y aderezado con diversos actores secundarios entre los que se encuentra el malo de turno.
El tono general del libro es, aproximadamente, que la Electronic Frontier Foundation son una banda de hippies tocapelotas, y la pobre NSA es una inocente e incomprendida agencia gubernamental que se dedica a interceptar las comunicaciones de los malos malísimos, y absolutamente de nadie más.
Los protagonista se ven sacudidos cuando descubren la existencia de un código secreto llamado Fortaleza Digital, creado por un ex-empleado de la NSA. Dicho código es indescifrable, y no sólo en el sentido criptoanalítico puro sino también en el de “fuerza bruta”: incluso probando todas las claves posibles, las características del código hacen que el ordenador sea incapaz de descifrarlo. El creador del código pretende venderlo al mejor postor. Eso, por supuesto, sería una pesadilla para la NSA: nada menos que un código que no pueden leer. Y hasta aquí, lo que voy a revelar del argumento. Pasemos a los momentos cripto.
CIFRADO AL ESTILO DE CÉSAR
Al comienzo de la novela, Susan Fletcher explica a su novio algunas cosas sobre la criptografía, un antiguo truco de autor para introducir al lector en la temática del libro. En alguna ocasión, su perorata sobre la NSA parece sacada de los libros de James Bamford[14], pero por lo demás supone una buena introducción para el lector.
Apenas Fletcher habla de criptografía propiamente dicha, parece equivocarse. Comienza hablando de un sistema de cifrado llamado “cuadrado perfecto de César”. Supuestamente, César escribía un mensaje en forma de cuadrado perfecto, y luego lo reordenaba cambiando filas por columnas. Con ello, está describiendo una cifra de trasposición: el texto se escribe por líneas y se lee por columnas.
El primer problema consiste en que César nunca usó este sistema de cifrado. El cuadro, o caja, de César, es tan sólo una invención de Dan Brown. Probablemente, el autor se basó en dos sistemas de cifrado conocidos desde la antigüedad, y atribuidos a César y Polibio.
La llamada cifra de César, fue descrita por vez primera por el historiador romano Suetonio en su Historia y Vida de los Césares:
Se han conservado, por otra parte, sus cartas [de César] a Cicerón y las que dirigía a sus familiares sobre asuntos domésticos. Cuando tenía que enviarles alguna información secreta la escribía en clave, esto es, disponía el orden de las letras de tal modo que no se pudiese reconstruir ninguna palabra si se quiere descubrir lo que dice y descifrarlo, hay que sustituir cada letra por la que le sigue en tercer lugar, esto es, la D sustituye a la A, y así las restantes.
El segundo método, que probablemente sugirió a Brown la idea del cuadrado perfecto, es el llamado cuadrado de Polibio. Antes de la transmisión, se acuerda un cuadrado 5x5 en el que se disponen las letras del alfabeto. El emisor enciende dos antorchas como señal de que un mensaje va a ser enviado, a lo que el receptor responde con otras dos. Tras este “indicativo de llamada,” se toma un conjunto de entre una y cinco antorchas en la mano izquierda, y otro conjunto de antorchas en la mano derecha. Eso nos da la fila y la columna en el cuadrado, lo que nos proporciona la codificación de la letra. Como ejemplo, supongamos el siguiente cuadrado:
--1 2 3 4 5
1 a b c d e
2 f g h i j
3 k l m n o
4 p q r s t
5 u v x y z
Según el esquema de Polibio, dos antorchas encendidas seguidas de otras cuatro nos daría el número 24, o fila 2, columna 4, lo que nos da la letra i. Para transmitir POLIBIO tendríamos que enviar los números 41-35-32-24-12-24-35.
La idea subyacente al cuadrado de Polibio constituye un hito por diversos motivos. Es uno de los primeros intentos por aumentar “la capacidad del canal”, ya que hasta entonces las señales a distancias tan sólo podían señalar eventos binarios (hay fuego, o no lo hay), o como mucho una cantidad limitada de mensajes. En segundo lugar, su cuadrado permite una conversión cómoda entre letras y números, lo que constituye el punto de partida de muchos sistemas criptográficos. Su esquema de codificar un paquete de información en forma de dos variables tiene múltiples aplicaciones, ya sean coordenadas geográficas (longitud y latitud) o juegos tipo guerra naval (“H-2, tocado”).
COMPUTACIÓN CUÁNTICA
Hasta ahora, Dan Brown no se ha lucido precisamente para crear el clima apropiado, pero en el fondo todo es una excusa para justificar la necesidad que tenía la NSA de construir TRANSLTR, el más potente y secreto ordenador de ruptura de códigos. De la descripción del autor podemos concluir que su eficacia descansa en tres principios: la implementación de paralelización masiva (tres millones de procesadores); “avances en valoración de texto llano altamente confidenciales para adivinar las contraseñas y romper los códigos”; y finalmente, nuevos descubrimientos en el campo de la computación cuántica.
Es posible que el lector haya oído hablar del concepto de computación cuántica. Se basa en el uso de sistemas cuánticos para poder resolver problemas computacionalmente muy complejos en poco tiempo. Los ordenadores clásicos operan bajo una lógica binaria, con bits que solamente pueden adoptar los valores uno o cero, pero los ordenadores cuánticos podrían utilizar “qbits” con un número de estados mucho mayor. Un ordenador cuántico podría, por ejemplo, utilizar el llamado algoritmo de Schor para descomponer un número N en factores primos, con una eficiencia y una velocidad impensable para un ordenador convencional. En tal caso, toda la criptografía de clave pública podría venirse abajo.
La computación cuántica es todavía un concepto, con muy pocas aplicaciones prácticas hasta ahora. Para darles una idea, les diré que en 2001 un grupo de investigación de IBM causó sensación al anunciar la creación de un ordenador cuántico de 7 qbits, con el cual pudieron factorizar el número 15[15]. Parece un resultado ridículo, pero lo importante fue demostrar que el concepto era factible. En mayo de 2011 la empresa canadiense D-Wave Systems afirmó haber vendido a la Lockheed Martin Corporation un ejemplar de su D-Wave One, el primer ordenador del mundo basado en lo que llaman “computación cuántica adiabática”. El comprador fue la Lockheed Martin Corporation[16], y aunque la venta se llevó a cabo a finales de 2010, la noticia se hizo coincidir con la publicación de un artículo sobre computación cuántica en la prestigiosa revista Nature[17].
Una aplicación posterior, en agosto de 2012, utilizó un total de 81 qbits para resolver un problema de plegado de proteínas, pero con problemas: en 10 000 pruebas, el ordenador solamente dio con la respuesta correcta en 13 ocasiones[18]. Sin embargo, hay quien piensa que el ordenador cuántico puede ser la dirección que la informática tome en el futuro; es el caso del fondo de inversión In-Q-Tel, que en septiembre de 2012 anunció su apoyo financiero a la empresa D-Wave[19]. Por cierto, In-Q-Tel fue fundado para invertir en empresas de alta tecnología cuyos productos puedan ser de interés… para la Agencia Central de Inteligencia (CIA)[20].
Que un ordenador cuántico sea factible y práctico, por no hablar de que pueda romper códigos de forma más rápida y eficiente, queda aún por ver, pero los cimientos han sido puestos. Como muestra, baste recordar que el premio Nobel de Física de 2012 fue concedido a los investigadores Serge Haroche (Francia) y David J. Wineland (EEUU) por “sus revolucionarios métodos experimentales para permitir la medida y manipulación de sistemas cuánticos individuales”[21].
De momento, un ordenador cuántico es sólo una fantasía; en palabras de Wineland, “pasará mucho tiempo antes de que podamos crear un ordenador así, pero creo que la mayoría de nosotros… creemos que acabará sucediendo; es cuestión sobre todo de controlar esos sistemas cada vez mejor”[22]. Por supuesto, si una entidad como la NSA hubiera construido uno, le proporcionaría una ventaja enorme. ¿Cómo de grande?
BITS, BYTES Y CLAVES
Volvamos a Fortaleza Digital y veamos qué puede hacer Dan Brown (perdón, Susan Fletcher) con un ordenador cuántico. En su primera prueba, nos dice, localizó una clave de 64 caracteres en diez minutos. Muy impresionante… salvo que confundió caracteres con bits. Un pequeño pero importante detalle. Normalmente, las claves criptográficas son una sucesión de ceros y unos. Si deseamos usar letras, podríamos hacer una correspondencia con números binarios. El código ASCII, por ejemplo, realiza una transformación de ese tipo para representar texto en ordenadores y en comunicaciones.
Probar 2^64 claves en diez minutos es una hazaña respetable incluso con los mayores ordenadores de nuestros días. Sin embargo, hay muchos algoritmos de cifrado simétrico de 128 bits, y contra ellos incluso TRANSLTR sería inútil, ya que el tiempo necesario para probar las 2^128 claves de un sistema así le llevaría del orden de billones de años. Con lo que hemos avanzado poco.
Dan Brown da la impresión de creer que una clave de 128 bits es solamente el doble de resistente que una de 64 bits: Susan Fletcher comenta en una ocasión: “tuvimos un mensaje interceptado hace unos meses, que nos llevó una hora, pero tenía una clave ridículamente grande, diez mil bits o así”. El problema consiste en que estamos hablando de aumentos exponenciales, no lineales. Seguro que usted, lector, tiene móvil. El PIN tiene cuatro dígitos, de forma que hay 10 000 posibles combinaciones; cinco dígitos elevaría el número de posibles valores del PIN hasta 100 000, diez veces más. En criptografía suelen usarse dígitos binarios, así que una clave de 65 bits es el doble de resistente que una de 64 bits.
Quizá a estas alturas piense usted que la potencia del ordenador TRANSLTR no depende tanto de su velocidad como de su capacidad criptoanalítica. Nadie en su sano juicio intenta probar todas las claves posibles salvo como último y desesperado recurso. En la práctica, es difícil crear un algoritmo de cifrado sin vulnerabilidades, de forma que un atacante puede intentar obtener la clave con menos cálculos de los que le exigiría un ataque de fuerza bruta. Por poner un ejemplo, supongamos que yo les digo que, debido a problemas con los algoritmos usados, los valores del PIN que desbloquean un móvil no pueden ser múltiplos de tres. Sabiendo eso, tan sólo necesito probar un 67% de los 10 000 posibles valores. Muchos algoritmos de cifrado tuvieron que ser descartados en el pasado porque no funcionaron con la efectividad teórica que prometían.
Podríamos pensar que es a eso a lo que Dan Brown se refería con eso de los “avances en valoración de texto llano altamente confidenciales para adivinar las contraseñas y romper los códigos”. Evidentemente sería mucho más inteligente combinar la potencia de cálculo del ordenador con procedimientos de criptoanálisis lineal, diferencial, estudios de entropía y todo tipo de trucos para acelerar los cálculos.
¡Pues no! El autor deja bien claro que TRANSLTR es un mero calculador tonto que prueba claves ciegamente sin aprovechar atajos. Fuerza bruta, al mejor estilo americano. Las sutilezas aquí no valen: “para TRANSLTR, todos los códigos parecen idénticos, sea cual sea el algoritmo que les creó. No lo entiendo, —dijo— no estamos hablando de ingeniería inversa para alguna función compleja, hablamos de fuerza bruta”. Esto, de ser cierto, representaría un completo sinsentido. En primer lugar, hay que saber qué tipo de algoritmo de cifrado se está estudiando, aunque sea para saber cómo reproducirlo a la hora de probar todas las claves; y en segundo, las técnicas de criptoanálisis moderno permitirían obtener una solución de manera mucho más fácil y rápida. Es como si China dijese que, puesto que tiene muchos soldados, ya no necesita radares, tanques o armas nucleares. ¿Le convence a usted ese razonamiento?
EL CÓDIGO INDESCIFRABLE
En un momento dado, Susan Fletcher afirma rotunda: “un código indescifrable es una imposibilidad matemática”. Lo siento, doctora, pero no es cierto. Hay un sistema denominado Libreta de Uso Único (OTP) que es completamente indescifrable, y además puede demostrarse matemáticamente. Patentado en 1919 por Gilber Vernam (de la AT&T) y Joseph Mauborgne (capitán del ejército de EEUU), una OTP es sencillamente una lista de caracteres aleatorios. Para cifrar un mensaje M, sacamos una ristra de caracteres K de la OTP, de tal forma que tanto M como K tengan la misma longitud. El cifrado consiste, sencillamente, en sumar las dos cadenas para obtener el mensaje cifrado C=M+K. Para descifrar, basta con restar la clave al texto cifrado para recuperar el mensaje: M=C-K.
Para aplicaciones prácticas resulta más cómodo utilizar una operación matemática ligeramente diferente a la suma, que se suele denominar XOR (eXclusive OR). La operación XOR, que denotaremos mediante el símbolo ⊕, produce este resultado cuando se aplica sobre dos bits:
0 ⊕ 0 = 1 ⊕ 1 = 0
0 ⊕ 1 = 1 ⊕ 0 = 1
La ventaja de la operación XOR sobre la suma es que es su propia operación inversa. Es decir, si X ⊕ Y = Z, también se cumple que Z ⊕ Y = X. Asimismo, se cumple que el cero es el elemento neutro de esta operación: X ⊕ 0 = X. Finalmente, cualquier operación xor de un elemento cualquiera consigo mismo nos da el elemento neutro: X ⊕ X = 0. Todo esto se cumple también si X es una cadena larga de bits.
Estas propiedades hacen que resulte más atractiva la operación xor que la suma tradicional. El mensaje cifrado se obtiene sencillamente como:
M ⊕ K = C
Cuando queramos recuperar el mensaje M, no tenemos más que “xorear” (y espero me disculpen el palabro) el texto cifrado con la clave:
C ⊕ K = (M ⊕ K) ⊕ K
OOOO= M ⊕ (K ⊕ K)
OOOO= M ⊕ 0
OOOO= M
De este modo, el atacante que quiera obtener el mensaje M deberá conocer la clave K. Ni siquiera podemos saber cuándo hemos acertado. Un mensaje cifrado de seis caracteres, digamos KEHQGZ, puede descifrarse como ATACAD con una clave, como MERINA con otra clave, y como ARTURO con otra. ¿Cómo saber cuál es el descifrado correcto? Sencillamente, no lo podemos saber. Ese detalle, por sí sólo, echaría por tierra la idea de “lo probamos todo” de TRANSLTR, ya que obtendría tantos mensajes descifrados potencialmente correctos que no se podría saber cuál es el correcto. Fletcher, inexplicablemente, no cae en la cuenta.
Apuesto a que en estos momentos el lector (usted) se estará preguntando: si la libreta de uso único es el sistema criptográfico perfecto, ¿por qué no lo usamos siempre? Bien, hay dos inconvenientes prácticos. El primero es que la clave ha de ser tan larga como el mensaje, y si el volumen de las comunicaciones es muy grande, genera grandes problemas de creación, distribución y uso de clave. Reutilizar la libreta no es una opción, porque dos mensajes cifrados con la misma clave de una OTP serían muy fácil de descifrar incluso sin conocer la clave. Supongamos dos mensajes X1, X2 cifrados con la misma clave Y: X1 ⊕ Y = Z1 y X2 ⊕ Y = Z2. Al “xorear” los dos mensajes cifrados, obtenemos:
Z1 ⊕ Z2 = (X1 ⊕ Y) ⊕ (X2 ⊕ Y)
OOOOO= (X1 ⊕ X2) ⊕ (Y ⊕ Y)
Ahora bien, como hemos visto la operación XOR aplicada a dos bit iguales nos da cero. De ese modo, resulta que Z1 ⊕ Z2 = X1 ⊕ X2. Es decir, obtenemos una especie de “suma” de los dos mensajes en texto llano. Y, puesto que tanto X1 como X2 son mensajes redactados en una forma conocida (texto en español, por ejemplo), no es difícil obtener X1 y X2. La seguridad que proporcionaba la OTP ha desaparecido por completo.
El segundo problema de la libreta de uso único es que ha de contener solamente caracteres verdaderamente aleatorios. Antiguamente, se utilizaban mecanógrafos que supuestamente tecleaban números al azar, pero no siempre el resultado podía ser considerado realmente aleatorio. En la actualidad, el problema continúa. Suena extraño, pero el hecho es que los ordenadores digitales, diseñados para ejecutar pasos electrónicos bien determinados, se comportan realmente mal frente al azar. Producir números aleatorios mediante programas informáticos es una tarea muy difícil.
Por ambos motivos, el uso de libretas de uso único es poco frecuente, y se limita a situaciones muy específicas. En 1963, tras la crisis de los misiles de Cuba, se estableció una línea segura entre el Kremlin y la Casa Blanca, una teleimpresora que utilizaba una libreta de uso único acordada por ambas partes. El famoso “teléfono rojo” fue instalado más tarde, durante los años setenta.
También fue una herramienta vital para los espías en territorio enemigo. No siempre surtieron el efecto deseado. Durante la Segunda Guerra Mundial, una red soviética de espías en Estados Unidos utilizó unas libretas de uso único que ya habían sido utilizadas anteriormente, lo que permitió a los criptoanalistas norteamericanos y británicos descifrar algunos mensajes. Esto condujo a la desarticulación de la red de espionaje, en un largo proceso de contraespionaje llamado operación VENONA que duró casi cuarenta años y cuyos detalles no fueron hechos públicos hasta 1995[23].
VIDA Y MILAGROS DE SKIPJACK
En otro momento del libro, el autor habla de un “algoritmo de clave pública” llamado Skipjack y de cómo el gobierno estuvo a punto de imponerlo como estándar de cifrado. La tesis del libro es que Skipjack tenía una “puerta trasera” que permitiría a la NSA acceder a los contenidos de cualquier mensaje cifrado con este sistema. No les diré más para no revelar parte del argumento, pero puede que le interese a usted conocer la verdadera historia de Skipjack. Porque en efecto existió, y estuvo cerca de convertirse en una pesadilla para la privacidad individual.
En 1990, la NSA terminó de evaluar un algoritmo de cifrado simétrico llamado Skipjack (Dan Brown debió pensar que “algoritmo público” y “algoritmo de clave pública” son lo mismo, pero no, no es un sistema de clave pública). Su clave de 80 bits lo hacía mucho más difícil de romper mediante fuerza bruta que el venerable DES. Se insertaba en un chip resistente frente a manipulaciones externas (tamper-proof) llamado Clipper, y llevaba un sistema de intercambio de claves basado en criptografía de clave pública (de ahí la confusión de Dan Brown), así como los sistemas más avanzados y seguros de firma digital. Los chips Clipper fueron diseñados en principio para proteger conversaciones telefónicas, pero también podían ser usados en otros sistemas mediante el uso de una cripto-tarjeta llamada Fortezza.
En principio, Clipper se diseñó como estándar federal, lo que significa que sería de uso obligado tanto para las agencias gubernamentales como para los contratistas que hiciesen negocios con el gobierno. A la larga lo habitual es que se acabe convirtiendo en un estándar de facto para toda la industria electrónica, y luego para la sociedad en general. Eso ha sucedido en el pasado con algoritmos de cifra como DES o AES.
La NSA hizo público el algoritmo en 1998. Los criptoanalistas civiles tardaron poco en encontrar ataques matemáticos contra Skipjack. No consiguieron “romper” el algoritmo, pero incluso las rupturas parciales dejaron un mal sabor de boca, ya que se suponía que Skipjack era un algoritmo diseñado y probado durante años por la mayor agencia criptológica del mundo.
Hasta donde se sabe, Skipjack nunca ha tenido una “puerta trasera”. El problema es que no la necesitaba, porque el gobierno norteamericano intentó algo aún peor. Para entenderlo, hemos de remontarnos hasta mediados de los años noventa. En aquella época, el gobierno de EEUU estaba tan preocupado por el uso libre de sistemas de cifrado que llegó a plantearse su prohibición total. En su defecto, intentó imponer un sistema denominado “depósito de claves” (key escrow) mediante el que cualquiera podría usar el sistema de cifra que quisiera… con la condición de dar al gobierno una copia de la clave de cifrado. La filosofía subyacente es que los ciudadanos o las empresas tiene perfecto derecho a esconderse sus secretos entre ellos, pero no a ocultárselos al Estado.
Un amplio e intenso debate circuló durante años acerca de esta iniciativa. Los problemas eran de privacidad y de seguridad. Un sistema donde el gobierno tuviese la clave a nuestros secretos era algo inconcebible en una democracia moderna. Era como si la policía nos exigiese dejar una copia de las llaves de casa en la comisaría más cercana, no fuese a ser que algún día tuvieran que entrar para registrarla. Incluso si eso nos pareciese bien, una base de datos con todas las claves y contraseñas de un país constituiría un objetivo de primera magnitud para cualquier organización criminal. Los problemas para mantener esa base de datos segura serían poco menos que insalvables[24]. Es posible encontrar situaciones donde un depósito de claves sea aceptable, por ejemplo en entornos empresariales, pero un depósito masivo a nivel nacional no lo es.
Ahora entenderán por qué el algoritmo Skipjack no fue muy querido. No es que fuese malo en sí, sino que el chip Clipper en que estaba instalado incluía también una opción de depósito de claves. Cada teléfono o dispositivo equipado con Clipper enviaba, de modo cifrado, una copia de la clave usada, que sería almacenada en depósito. Cuando el gobierno estimase necesario pegar la oreja, no tendría más que usar su copia. Habría salvaguardias legales, por supuesto, pero la infraestructura de espionaje masivo estaría lista y funcionando.
Afortunadamente para todos, el sistema de depósito de claves nunca llegó a imponerse. Poca gente estaba dispuesta a ceder su privacidad de una forma tan descarada. Había múltiples alternativas en el mercado. Y encima, el sistema de depósito de claves de Clipper tenía fallos. Un atacante podría alterar la copia cifrada de la clave, de tal forma que el gobierno no pudiera descifrar las comunicaciones[25].
El sistema de depósito de claves basado en el chip Clipper, anunciado a bombo y platillo por la administración Clinton en 1993, estaba muerto a todos los efectos en 1996. Cuando el algoritmo fue desclasificado en 1998, los potenciales usuarios decidieron que su paciencia con la NSA se había agotado, y nunca le dieron una oportunidad a Skipjack. La industria se adaptó a los tiempos modernos, y adoptaron variantes de algoritmos como DES (que también era estándar del gobierno) y otros de la industria privada.
¿FALLOS O LICENCIAS LITERARIAS?
Para ser justo con el señor Brown, algunos de los “fallos” que le atribuyen sus detractores pueden clasificarse en el apartado de licencias literarias. El del “cuadrado perfecto de César” es uno de ellos. Podemos preguntarnos por qué Brown se molestó en inventar un sistema de cifra antigua inexistente y dar una referencia falsa a César, pero como autor está en su perfecto derecho. La protagonista Susan Fletcher menciona asimismo un principio de Bergofsky, según el cual, si probamos suficientes claves, forzosamente habremos de dar con la correcta. Este principio, que sencillamente describe un ataque de fuerza bruta, no existe con tal nombre, pero de nuevo puede atribuirse a una licencia por parte del autor para dar más emoción a la historia.
Otra licencia literaria es precisamente la “clave” de la trama del libro. El problema con el sistema de cifrado Fortaleza Digital es que ni siquiera probando todas las claves puede descifrarse el mensaje. El autor inventa un concepto llamado “texto llano rotatorio”. Se supone que el algoritmo de cifrado va cambiando el texto llano según una variable temporal. Es decir, el truco no es sólo encontrar la clave, sino de hacerlo en el momento oportuno. Podemos imaginarnos que, en ese caso, bastaría probar claves más largas (es decir, combinaciones de claves y tiempos), con lo que el número de posibilidades sería mayor pero asimismo finito. Sería muy discutible si eso podría ser factible, pero de nuevo estamos jugando en el campo de la licencia literaria. No tiene por qué ser cierto, sólo parecerlo.
Más peliaguda se pone la cosa cuando el autor habla de la criptografía de clave pública (PKC). La base de la PKC consiste en que hay dos claves diferentes, una para cifrar y otra para descifrar. Si usted quiere cifrarme un mensaje, puede usar mi clave pública[26] y usarla para cifrar. Yo luego tomaré mi clave privada, la activaré con mi contraseña y obtendré el mensaje. Sin embargo, Brown afirma que la PKC es un mero programa de software, creado por algunos “programadores empresariales” como respuesta a la pérdida de privacidad de los años noventa. Afirma en su libro: “La única manera de descifrar el mensaje es introducir la frase de contraseña del remitente (pass-key) una serie secreta de caracteres que funcionan como un número PIN en un cajero automático". Parcialmente cierto, aunque también necesita la clave privada. Y además, son la contraseña y clave del destinatario, no las del remitente. Da la impresión de que Brown, sencillamente, no ha entendido el concepto de criptografía de clave pública.
Luego, como para mostrar lo difícil que se pusieron las cosas para la NSA, dice que “los códigos que [la NSA] afrontaban ya no eran simples cifras de sustitución descifrables mediante lápiz y papel milimetrado, sino funciones hash generadas por ordenador, que combinaban la teoría del caos y los alfabetos simbólicos múltiples para cifrar mensajes…”
En este punto de la novela (¡y estamos en el capítulo 4 de 128!) podemos ya dudar seriamente de los conocimientos criptográficos de Dan Brown. Ya no se trata de licencias literarias, sino de ignorancia manifiesta. Según este autor, todos los sistemas de cifrado anteriores a los años 90, la máquina Enigma, los algoritmos DES, IDEA, CAST, no llegan más que al nivel de “sistemas de lápiz y papel”. No solamente eso, sino que introduce conceptos inexistentes en criptografía, como teoría del caos, y los mezcla con funciones hash, que se utilizan como ayuda en los protocolos de firma digital.
DECIDIDAMENTE, FALLOS
Criptográficamente hablando, el nivel del libro baja conforme avanzamos páginas. Mientras Susan Fletcher cavila sobre la estructura de Fortaleza Digital, repasa mentalmente otros algoritmos de cifrado: “Había cientos de ellos en el mercado: PGP, Diffie-Hellman, ZIP, IDEA, El Gamal”. En un intento por da la impresión de que domina el asunto, la protagonista mezcla churras con merinas. Para que conste:
—IDEA es un algoritmo de cifra simétrico.
—El Gamal es un algoritmo de firma digital, con una variante que puede usarse como sistema de cifrado asimétrico.
—Diffie-Hellman es un protocolo criptográfico, pero no es un algoritmo de cifrado, sino de intercambio de claves.
—PGP no es un algoritmo en absoluto. Es un programa informático diseñado para cifrado y firma. Combina algoritmos de clave simétrica, criptografía de clave pública, y un sistema de firma digital.
—ZIP (y aquí es donde la cosa tiene más gracia) ¡es un programa de compresión de datos! Tiene una opción de protección mediante contraseña, para lo cual utiliza el algoritmo de cifra AES.
Es decir, en una sola línea ha mezclado algoritmos de cifra, de firma, de intercambio de claves, y dos programas informáticos, y pretende dar la impresión de que tratan de lo mismo. Realmente, parece que el autor se ha limitado a mirar en el índice de un libro sobre criptografía y escoger los términos que le sonaban mejor. Sus conocimientos de informática rozan lo patético, pero prefiero no comentarlos aquí.
Cerca del final, los protagonistas se enfrentan a un mensaje cifrado: paquetes de cuatro letras. Susan Fletcher las examina y, con aires de entendida sentencia “agrupaciones alfa de cuatro bits”. Creo que es un buen momento para explicar la diferencia entre bits y bytes. Un bit (binary digit) es un número binario, esto es, un 1 o un 0. Un byte (pronunciado “bait”) es un paquete de varios bits, usado para codificar un carácter (letra, número, símbolo). El byte más usado es el de ocho bits, lo que permite codificar hasta 2^8=256 caracteres distintos.
En la afirmación de Fletcher tenemos varios problemas. El primero, evidente para el criptólogo más tonto, es que una letra no es un bit. En segundo lugar, quizá el lector no sepa qué es eso de una “agrupación alfa”. Yo tampoco, pero imagino que con “alfa” se refiere a caracteres alfanuméricos, es decir, letras o números.
Incluso si lo hubiese dicho bien, yo señalaría una pega adicional, y es la pedantería implícita al hecho de referirse a lo evidente de forma tan complicada. Llamar “agrupación alfanumérica de cuatro bytes” a un sencillo paquete de cuatro letras es como si yo les dijese a mis compañeros de trabajo “¿os apetece una suspensión coloidal exotérmica?” cada vez que sea la hora del café.
No solamente eso, sino que Fletcher afirma a continuación que “muchos sistemas de cifrado usan agrupamientos de cuatro bits”. Los sistemas de cifrado simétrico suelen ser de dos tipos: de flujo y de bloque. Los de flujo cifran la información bit a bit, y los de bloque se llaman así porque procesan la información en bloques. ¿Y de cuánto son esos bloques? Los más habituales son de 64 o 128 bits. Yo, la verdad, no conozco ni uno sólo de 4 bits. Ni uno. Puede que haya alguno por ahí, hecho como entretenimiento por algún criptólogo aburrido, pero no es la norma habitual ni mucho menos.
Podríamos ser generosos y suponer que Susan Fletcher, que no hace más que confundir bits con bytes, tal vez se estuviera refiriendo a bloques de cuatro bytes, lo que equivale a 32 bits. Tampoco es que haya muchos algoritmos de cifra que usen bloques de 32 bits, pero entra en el rango de lo verosímil. De hecho, aparecen un total de 64 letras cifradas, que alguien agrupa arbitrariamente en bloques de cuatro. Fletcher lo ve, sonríe y afirma: “Me suena mucho. Bloques de cuatro. Igual que Enigma”.
En este punto, no puedo menos que detenerme y chillar. La máquina Enigma, usada por Alemania para proteger sus comunicaciones durante la Segunda Guerra Mundial, cifraba las letras una a una. Los mensajes cifrados se dividían en paquetes de idéntica longitud a efectos de facilitar la transmisión, y solamente para eso. Para rematar la faena, los mensajes cifrados con Enigma se enviaban en paquetes de cinco. ¡Cinco, señorita Fletcher, no cuatro! Eso no era un dictado de los criptoanalistas alemanes sino un convenio internacional según el cual las “palabras” cifradas debían tener una longitud de cinco letras.
En esta competición por bajar el listón de conocimientos criptográficos interviene hasta el jefe de Susan Fletcher: “El director asintió. Enigma era la máquina de escribir en código más famosa de la historia, la bestia codificadora de doce toneladas de los nazis”. No tengo ni idea de a qué máquina se estará refiriendo, pero seguro que no tiene en mente la Enigma. En primer lugar no era “una máquina de escribir códigos”. Aunque la Armada alemana tenía un accesorio llamado Schreibmax capaz de escribir los mensajes recibidos por una Enigma, lo habitual es que los mensajes fueran transcritos por los operadores de radio; la máquina Enigma no escribía nada por sí sola.
Reconozco que este detalle compite en pedantería con la afirmación de Fletcher sobre las agrupaciones alfanuméricas de cuatro bytes. Culpable. Lo que no admito es que un criptólogo mínimamente conocedor de la máquina Enigma la llame “bestia codificadora de doce toneladas”. ¿Doce toneladas? El modelo militar tenía una masa aproximada de entre once y doce kilogramos. ¡Kilogramos, señor Brown, no toneladas! Y, a pesar de haber sido usado por todas las unidades civiles y militares de la Alemania nazi, no tiene aspecto de bestia. Al contrario, es un elegante artefacto en una caja de madera, con aspecto de inofensiva máquina de escribir. Yo mismo he visto algunas, y les aseguro que de bestia no tienen nada[27].
Hay otras referencias criptográficas, no erróneas sino ya totalmente disparatadas, pero prefiero dejárselas a usted, si es que aún le quedan ganas de comprarse el libro y leerlo. Sí hay un detalle que, aunque no es culpa del autor, sí desluce bastante el libro. Se trata de un problema de traducción. Todos sabemos que hay juegos de palabras en un idioma que resultan intraducibles en otro. En la película Los Fisgones, la Agencia de Seguridad Nacional (ASN) se convierte en la Agencia Sin Nombre, en alusión a un viejo chiste según el cual las siglas NSA realmente significan No Such Agency (no existe tal agencia), o bien Never Say Anything (nunca digas nada).
En este caso, Susan Fletcher sufre lo indecible intentando descifrar un mensaje de su novio. En inglés dice:
Please accept this humble fax / My love for you is without wax.
(Te ruego que aceptes este humilde fax / mi amor por ti es sin cera).
El juego de palabras está en las palabras without wax (sin cera). Dan Brown lo explica así en su libro: “El secreto que ocultaba «sin cera» era demasiado tierno. Sus orígenes eran antiquísimos. Durante el Renacimiento, los escultores españoles que cometían errores mientras tallaban estatuas de mármol caras disimulaban sus defectos con cera. Una estatua que carecía de defectos y, por lo tanto, no necesitaba retoques era alabada como una «escultura sin cera». La palabra inglesa «sincere» provenía de la española «sincera», sin cera”.
No soy lingüista, así que me resulta difícil juzgar en este tema. Según una hipótesis, la etimología de sincero es, efectivamente, esa, pero proviene del latín sine cera (sin cera), usado por los escultores romanos. Otra posible raíz etimológica afirma que se deriva del vocablo sincerus (limpio, puro). Punto para Brown. Por supuesto, podríamos criticar el hecho de que una criptóloga con un cociente intelectual de 170 no atine en un detalle tan evidente, pero ya sabemos que cuando uno está enamorado, no siempre razona con claridad.
El problema está en la versión española. Sincera - sin cera es una relación tan evidente que salta a la vista. Peor aún, amor es masculino y sincera es femenino, lo que enseguida nos sugiere la forma de resolver el enigma. Imagino que el traductor hizo lo mejor que pudo, dadas las circunstancias, pero el hecho es que un juego de palabras en inglés colocado como acertijo para el lector pierde toda su fuerza en la versión castellana.
Este libro me decepcionó mucho. De verdad. No se trata tan sólo del argumento, los personajes, las persecuciones y demás estereotipos. Se trata de que el autor ha creado un thriller de ficción criptográfica sin saber lo más mínimo sobre criptografía, y sin preocuparse por ello. Es como si El Código da Vinci ubicase el museo del Louvre en Uganda y convirtiese a Leonardo en un delantero centro del Arsenal.
A la vista de ello, me resulta sorprende leer la página de agradecimientos. Entre otros, cita a “dos ex-criptógrafos de la NSA, quienes hicieron contribuciones valiosas mediante servidores anónimos, sin ellos, este libro no se habría escrito”. Brown intenta aquí convencer al autor de que el libro que está a punto de leer está inspirado en información confidencial procedente de profesionales. A la vista del resultado, una de dos: o los dos ex-criptógrafos fueron expulsados de la NSA por zoquetes, o ha sido una inteligente labor de sabotaje.
O bien, sencillamente, el autor es un zote. En 2007, cuando hice mi primer crítica al libro, entré en su web www.danbrown.com, sección de investigación/fotos. Dan Brown aparece en la plaza de San Pedro de Roma, acompañado por dos escoltas armados de la —cito textualmente en inglés— "Vatican Guardia Civil". Quisiera creer que el autor estaba siendo irónico, pero después de leer la descripción que hace de Sevilla en su Fortaleza Digital, me lo creo todo. No me atrevo a seguir mirando y cierro el navegador[28].
Si quieren leer otra interesante crítica sobre Fortaleza Digital desde el punto de vista criptográfico, les recomiendo el artículo “un libro prescindible” de Fernando Acero[29]. También él compró el libro en inglés, esperando en un aeropuerto. Lo único que espero es que jamás hagan la película.