Siendo la criptografía un asunto muy tratado en la red por gente más competente que el responsable de este blog nos limitaremos aquí a mencionar algunos detalles. En realidad vamos a ver únicamente una somera descripción alguno de los métodos clásicos con un par de ejemplos tomados de la literatura y de la historia, con el fin de poder echar mano de ellos en futuros post.
Se puede cifrar un texto por sustitución y por transposición:
-Sustitución: cada carácter (o grupo de caracteres) del mensaje origen se sustituye por otro (u otros) carácter/es (o grupo de caracteres) en el mensaje cifrado. Naturalmente las equivalencias deben ser conocidas por el receptor legítimo del mensaje.
- Sustitución monoalfabética. Es el más sencillo, simplemente cada carácter tiene un equivalente que nunca cambia. Ejemplo: uno de los más antiguos en una obra de ficción lo encontramos en la Biblia (Jeremías 51, 41) «¡Cómo ha sido tomada Sesac y conquistada la gloria de toda la tierra!¡Cómo ha sido devastada Babilonia en medio de las naciones!». «Sesac» (ששך) significa «Babilonia» (בבל), el método utilizado es conocido como atbash, muy conocido por los cabalistas. Simplemente se pone en el lugar de la primera letra del alfabeto, aleph, la última, taw; en el lugar de la segunda, beth, la penúltima, shin, y así sucesivamente con cada una de las consonantes que componen el alfabeto hebreo. En el cuadro de abajo se ve el alfabeto hebreo en la fila de arriba y su equivalente según este sistema en la fila de abajo. Luego se ve una adaptación al alfabeto latino. Otros ejemplos: la cifra de César y el código Morse. Las cifras monoalfabéticas no son muy robustas; un receptor ilegítimo puede dar fácilmente con la clave, como veremos al final del post con más detalle, ya que son muy vulnerables al análisis estadístico.
Arriba, el Atbash seguido de una adaptación del mismo a nuestro alfabeto.
Una de las letras del ejemplo babilónico no me encaja con el cuadro por más que me devano los sesos ¿algún parroquiano sabe hebreo?
- Sustitución polialfabética: cada carácter (o grupo de caracteres) del mensaje origen se sustituye por otros, que van cambiando según un patrón matemático conocido por el receptor legítimo. Así, si una letra "a", pongamos por caso, se sustituye por una "f" en un punto del mensaje, en otro puede muy bien ser una "m", de esta manera se pretende desafiar el análisis estadístico. Ejemplo: uno de los más conocidos el la cifra Vigènere: para cifrar un mensaje según este sistema necesitamos, a demás del mensaje original (pongamos que sea, «Dios causó almorranas a los filisteos»; de 1 Samuel, 5) una palabra clave (pongamos que sea «libro») y la tabla que ven aquí abajo:
- A continuación copiamos la palabra clave, letra por letra, bajo cada una de las letras del mensaje de origen, así: las letras del mensaje cifrado se van definiendo en la tabla: en el alfabeto horizontal de arriba se van buscando las letras del mensaje de origen y en el vertical de la izquierda las de su correspondiente de la palabra clave: la letra donde coincidan esa fila y esa columna será la del mensaje cifrado. En nuestro ejemplo la primera letra del mensaje original es "d", correspondiente a la "l" de la palabra clave; buscamos dónde se cruzan en la tabla y tenemos "o". El mensaje cifrado completo sería: «oqpj qlctf owupiflvbj o wwt wwwqtksza», si bien no se suelen respetar los espacios entre palabras; para aumentar la confusión se agrupan de cinco en cinco.
El primer cifrario polialfabético se atribuye a Leon Battista Alberti. También inventó el reloj de cifrar o discos de Alberti. Arriba a la izquierda un modelo utilizado en la Guerra de Secesión estadounidense (tomado de aquí) a la derecha otro que me vino en los cereales
-Transposición. Consiste en cambiar el orden las letras del mensaje de origen. El más sencillo quizá sea escribir de derecha a izquierda (sensatez=zetasnes) pero hay patrones muchos más complejos; hoy los expertos los expresan con una fórmula matemática, pero en tradicionalmente se solían asociar a algún tipo de rejilla, como la de Cardano, o la conocida como de Mathias Sandorf, ya que aparece en la novela de este título, de Jules Verne. Estas rejillas consistían en tarjetas con perforaciones que permitían escribir y leer el mensaje en el orden correcto; el emisor y el receptor legítimo debían tener sendos ejemplares idénticos. El caso más antiguo de los que tenemos noticia no se basaba en una rejilla, sino en un bastoncillo; es la scítala espartana de la que nos habla Plutarco en Vidas paralelas XII.
Nada impide combinar varios de estos sistemas, como hace el mismo Verne alguna vez.
Portada de la novela Mathias Sandorf; Verne recurre a la criptografía también en Viaje al centro de la Tierra y en La jangada. A la derecha, Edagar Allan Poe, avezado criptoanalista
-El criptoanálisis. Naturalmente, lo más emocionante es descifrar los mensajes cuando no se es el receptor legítimo y, por lo tanto, no se dispone de la clave. Poe describe el método para descifrar la scítala en un artículo donde, a demás, presenta desencriptados los criptogramas que le habían enviado sus lectores respondiendo a su desafío. El método para la sustitución monoalfabética lo explica en su cuento «El escarabajo de oro». Básicamente consiste en comparar la frecuencia de los caracteres del mensaje cifrado con la correspondiente a la lengua en la que suponemos que está el mensaje. Por ejemplo, la letra más frecuente en español es la "e"(13%) −como en inglés (12%) y más todavía en francés (16%)− de manera que el carácter más frecuente en un mensaje de este tipo tiende a corresponder a esta letra: cuanto más largo sea el mensaje mejor funciona (como ya mencionamos en un pie de foto). Por ello las cifras polialfabéticas resultan más seguras: en nuestro ejemplo de más arriba, al usar la palabra clave «libro», es como si usáramos cinco cifras monoalfabéticas diferentes, uno por cada letra de la palabra clave, con lo que burlamos la estadística. Las frecuencias en español son las siguientes:
Letras de la más frecuente a la menos:
E, A, O, S, R, I, N, L, D, C, T, U, P, M, Y, Q, G, V, H, F, B, J, Z, K, W, X
Bigramas:
ES, EN, EL, DE, LA, OS, UE, AR, RA, RE, ON, ER, AS, ST, AL, AD, TA, CO, OR
Trigramas:
QUE, EST, ARA, ADO, AQU, CIO, DEL, NTE, EDE, OSA, PER, NEI, IST, SDE
Frecuencia de vocales: 47%
También resulta interesante en criptoanálisis conocer palabras probables del mensaje (nombres, etc. como en el caso que acabamos de enlazar) tener en cuenta la manía de la "q" de hacerse seguir de la "u", las letras que pueden aparecer geminadas, etc. por lo que los emisores suelen despreciar las reglas ortográficas.
Confío en que este resumen no resulte demasiado denso y les sea útil cuando, por ejemplo, hablando de una novela, necesitemos usar estos conceptos.
Las frecuencias están tomadas del libro Códigos sescretos, de Andrea Sgarro (Pirámide 1990). Recomendable es también Breve historia de la criptografía clásica, de José Luis Tábara.