¿Cuando eras niño tenías un anillo decodificador del «Capitán Medianoche»? Con él, podías enviar mensajes a tus amigos que nadie más podía leer. O tal vez recuerde haber utilizado símbolos especiales para escribir notas a su «amigo» en clase. Si la nota era interceptada, tu profesor no podía saber nada de tu romance.
En usos más serios, los códigos y las claves son utilizados por nuestras fuerzas militares y diplomáticas para mantener la información confidencial lejos de ojos no autorizados. Las empresas también envían datos codificados para tratar de proteger los secretos comerciales y los acuerdos de trastienda. Al fin y al cabo, no querrías que tu competidor supiera que estás a punto de adquirir su empresa con una compra apalancada.
El estudio del cifrado y la codificación (en el extremo emisor), y del descifrado y la decodificación (en el extremo receptor) se llama criptografía, del griego κρυπτός (kryptos), u oculto y γράφειν (graphia), o escritura. Si no sabes griego (y no muchos lo sabemos), ¡las letras anteriores podrían ser una forma de código en sí mismas! Aunque la distinción es difusa, las cifras son diferentes de los códigos. Cuando sustituyes una palabra por otra o por una frase, como cuando utilizas un diccionario de una lengua extranjera, estás utilizando un código. Cuando mezclas o sustituyes letras existentes, estás utilizando una clave. (Ya te dije que la diferencia era difusa, y que puedes combinar códigos y cifrados sustituyendo una palabra por otra y mezclando el resultado). Nos concentraremos en los cifrados.
Para que un cifrado sea útil, deben conocerse varias cosas tanto en el extremo emisor como en el receptor.
- El algoritmo o método utilizado para cifrar el mensaje original (conocido como texto plano).
- La clave utilizada con el algoritmo para permitir que el texto plano sea tanto cifrado como descifrado.
- El periodo o tiempo durante el cual la clave es válida.
A modo de analogía, para entrar en tu casa pondrías una llave en una cerradura para abrir la puerta. Este proceso (el uso de una llave y una cerradura) es el método o algoritmo. Ahora bien, este método sólo funciona si tienes la llave adecuada para meterla en la cerradura, y tu llave sólo será válida mientras seas el residente de la morada concreta. El siguiente residente hará cambiar las cerraduras por una llave diferente para asegurarse de que no puedes entrar aunque conozcas el método.
La selección de los tres elementos anteriores -algoritmo, llave y periodo- depende de tus necesidades. Si estás en el campo de batalla y recibes datos tácticos actuales, quieres un algoritmo que facilite descifrar el mensaje en el fragor de la batalla. Por otro lado, también debes suponer que tu adversario ha interceptado tu mensaje cifrado y está ocupado tratando de descifrarlo. Por lo tanto, debes elegir un algoritmo (método) lo suficientemente complicado como para que, cuando tu oponente lo descubra, los datos no tengan ningún valor. Cuanto más fácil sea el algoritmo que elija, más a menudo tendrá que cambiar la clave que desbloquea el código, si quiere mantener a su enemigo en la oscuridad.
Los cifrados se dividen en dos categorías principales: cifrados de sustitución y cifrados de transposición. Los cifrados de sustitución sustituyen las letras del texto plano por otras letras o símbolos, manteniendo el mismo orden en el que caen los símbolos. Los cifrados de transposición mantienen todas las letras originales intactas, pero mezclan su orden. El texto resultante de cualquiera de los dos métodos de cifrado se llama texto cifrado. Por supuesto, también puedes utilizar ambos métodos, uno tras otro, para confundir aún más a un receptor no deseado. Para tener una idea de estos métodos, echemos un vistazo a algunos cifrados.
Cifras de sustitución y anillos decodificadores
Usamos cifrados de sustitución todo el tiempo. (En realidad, los cifrados de sustitución podrían llamarse propiamente códigos en la mayoría de los casos). El código Morse, la taquigrafía, el semáforo y el código ASCII con el que se están almacenando estos caracteres dentro de mi Macintosh son todos ejemplos. (ASCII significa American Standard Code for Information Interchange, por si te interesa). La única diferencia entre estos y los códigos espía es que los ejemplos anteriores están estandarizados para que todo el mundo los conozca.
El anillo decodificador del Capitán Medianoche (que es un anillo «codificador» también) permite hacer un cifrado de sustitución simple. Suele tener dos ruedas concéntricas de letras, de la A a la Z. Giras el anillo exterior y sustituyes las letras de tu mensaje que se encuentran en el anillo exterior por las letras que están justo debajo en el anillo interior (ver diagrama). En este caso, el algoritmo consiste en desplazar el alfabeto y la clave es el número de caracteres para desplazarlo. Julio César utilizó este sencillo esquema, desplazando 3 caracteres (habría puesto la «A» del anillo exterior de letras sobre la «D» del anillo interior si hubiera tenido un anillo decodificador del Capitán Medianoche). La palabra «EXPLORATORIUM» se convierte así en «HASORUDWRULXP». Semejante ardid era fácil de romper y mostraba un cierto nivel de ingenuidad por parte de César respecto a la inteligencia del enemigo.
Ruedas de cifrado por sustitución
Haga clic aquí para descargar una copia de las ruedas de cifrado (12k PDF). Copia y recorta las dos ruedas. Coloca la rueda más pequeña encima de la rueda más grande y gíralas para que tu «letra clave» en la rueda pequeña esté debajo de la «A» de la rueda grande. Ahora puedes cifrar tu texto plano y pasárselo a tu amigo que conoce la letra clave adecuada.
Podrías hacer que tu texto cifrado fuera un poco más difícil de descifrar si metieras 26 trozos de papel en un sombrero, cada uno con una letra del alfabeto escrita, los sacaras de uno en uno y los pusieras uno al lado del otro bajo un alfabeto normal. El resultado podría ser el siguiente (he utilizado el orden de las teclas de mi teclado, por lo que podría llamarse código «Qwerty»):
Plaintext letter 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
Ciphertext letter Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
Puedes construir un mensaje secreto a partir de la tabla anterior. Cada vez que veas una «I» sustituirías la «O» que hay debajo y así sucesivamente para los demás caracteres. El mensaje «Encuéntrame después de clase detrás del gimnasio», se leería
La longitud de las palabras -especialmente las cortas- da grandes pistas sobre la naturaleza del código (ver tablas de frecuencia). Para ayudar a ocultar su mensaje, ignore los espacios y divida el mensaje en trozos de igual tamaño. Cinco letras son habituales en el mundo del espionaje, por lo que su mensaje se presenta de la siguiente manera (tenga en cuenta que se añade un carácter «ficticio» adicional «M» al final para que aparezca con un grupo de 5 letras. Su destinatario no debería tener problemas con el carácter extra):
Otro sistema popular llamado cifrado diagramático, utilizado por muchos niños en la escuela, sustituye las letras por símbolos en lugar de otras letras. Este sistema es, en esencia, el mismo que el de sustitución de letras, pero es más fácil de recordar que 26 letras elegidas al azar. Utiliza los tableros de tres en raya y dos X como se muestra a continuación.
El mismo mensaje secreto que el anterior, usando las formas de las líneas que rodean cada letra (e incluyendo un punto donde sea necesario) se convierte:
Aunque parezca un texto extraterrestre indescifrable, un criptólogo de salón sólo tardaría 10 minutos o menos en descifrarlo. ¿Por qué? Con suficiente texto cifrado, ciertos patrones se vuelven obvios. Fíjese en la frecuencia con la que aparece la caja vacía de cuatro lados: seis veces de un total de 29 caracteres, es decir, aproximadamente el 20% de las veces. Esto indicaría inmediatamente que la caja vacía era casi con toda seguridad el símbolo de la «E», la letra más utilizada en inglés. Otras letras también pueden determinarse por su frecuencia y por su asociación con otros caracteres cercanos (véase «Frecuencias»). Casi todas las claves de sustitución se prestan a este tipo de análisis.
Francis Bacon creó una de las claves de sustitución más interesantes. Utilizó dos caras de tipo diferentes que difieren ligeramente en el peso (audacia). Dividió su texto cifrado en 5 grupos de caracteres, cada uno de los cuales representaría un carácter en su texto plano. Dependiendo de qué caracteres del grupo estuvieran en negrita, se podía determinar el carácter del texto plano utilizando la siguiente tabla (* representa un carácter plano y B un carácter en negrita)
A=*****G=**BB*M=*BB**S=B**B*Y=BB***B=****BH=**BBBN=*BB*BT=B**BBZ=BB**BC=***B*I=*B***O=*BBB*U=B*B** D=***BBJ=*B**BP=*BBBBV=B*B*B E=**B**K=*B*B*Q=B****W=B*BB* F=**B*BL=*B*BBR=B***BX=B*BBB
Nuestro mismo mensaje secreto de arriba aparecería así (los caracteres en negrita y planos de Bacon eran menos obvios que los de abajo):
To be or not to be that is the question.Whether 'tis nobler in the mind to suffer the slings and arrows of outrageous fortune or to take arms against a sea of troubles and by opposing end them?
Para descifrar, sólo tenemos que dividir los caracteres en grupos de 5 y utilizar la clave anterior para encontrar el mensaje en texto plano.
M E E T M E B E Tobeo rnott obeth atist heque stion Wheth ertis H I N D T H E G noble rinth emind tosuf ferth eslin gsand arrow Y M A F T E R S sofou trage ousfo rtune ortot akear msaga insta C H O O L seaof troub lesan dbyop posin gendt hem?
Cifras de transposición
Regresando a tus días de escuela, oo-day oo-yay emember-ray ig-pay atin-lay? El cerdo-latín es una forma de cifrado por transposición en la que las letras originales se mantienen intactas (aunque con la adición del sufijo «ay»), pero reordenadas de alguna manera.
Regresando mucho antes de tus días de escuela, al siglo V a.C., los espartanos utilizaban un interesante cifrado por transposición llamado scytale. El scytale utilizaba un cilindro con una cinta envuelta helicoidalmente de un extremo a otro. El mensaje se escribía a través de las cintas y luego se desenvolvía del cilindro. Sólo alguien con un cilindro de idéntico diámetro podía volver a envolverlo y leer el mensaje.
La guadaña dependía de una pieza de hardware, el cilindro, que si era capturado por el enemigo, comprometía todo el sistema. Además, el receptor podía perder o romper el cilindro y, por tanto, perder la capacidad de descifrar cualquier mensaje. Sería mejor que el método fuera completamente «intelectual» y pudiera ser recordado y utilizado sin recurrir a un dispositivo físico.
Dado que tanto el emisor como el receptor de un texto cifrado transpuesto deben acordar y recordar este algoritmo o método para el cifrado y descifrado, algo fácil estaría bien. Como las figuras geométricas son fáciles de recordar, sirven de base para toda una clase de cifrados de transposición. Pongamos nuestro mensaje en forma de caja. Como hay 29 caracteres, añadiremos una «O» para hacer 30 y escribiremos el mensaje en una caja de seis por cinco.
M E E T M EA F T E R SC H O O L BE H I N D TH E G Y M O
Ahora podemos transcribir el mensaje moviéndonos por las columnas en lugar de por las filas. Una vez más, dividiremos los caracteres en grupos de cinco para no dar pistas sobre el tamaño de las palabras. El resultado se ve así :
La verdadera variedad comienza cuando te das cuenta de que no tienes que escribir tu texto plano en la caja fila por fila. En su lugar, puedes seguir un patrón en zig-zag horizontal, vertical o diagonal, o uno en espiral hacia dentro o hacia fuera (en el sentido de las agujas del reloj o en sentido contrario), o muchas otras variaciones (ver diagrama más abajo).
Una vez que hayas puesto el texto en la forma elegida usando una ruta, puedes entonces cifrarlo eligiendo una ruta diferente a través del texto. Tú y tu compañero sólo tenéis que poneros de acuerdo en la ruta de lectura, la ruta de transcripción (cifrado) y el punto de partida para tener un sistema propio. Estos sistemas se llaman transcripciones de rutas.
Aquí está nuestro mensaje de nuevo. La ruta de lectura va en espiral en sentido contrario a las agujas del reloj hacia dentro, empezando por la esquina inferior derecha (diagrama de la izquierda). La ruta de transcripción (diagrama de la derecha) es diagonal en zig-zag empezando en la esquina inferior izquierda. El texto cifrado se convierte en:
Para descifrar, se rellena la casilla de entrada siguiendo la ruta en zig-zag y se lee el mensaje utilizando la ruta en espiral.
Otro tipo de cifrado por transposición utiliza una palabra o frase clave para mezclar las columnas. Esto se llama transposición columnar. Funciona así: Primero, piensa en una palabra clave secreta. La nuestra será la palabra SECRET. A continuación, escríbala sobre las columnas de letras del cuadrado, y numere las letras de la palabra clave como caerían si las colocáramos en orden alfabético. (Si hay letras duplicadas, como la «E», se numeran de izquierda a derecha.)
5 2 1 4 3 6S E C R E TM E E T M EA F T E R SC H O O L BE H I N D TH E G Y M O
Ahora escribe las columnas hacia abajo en el orden indicado por los números. El texto cifrado resultante tiene este aspecto:
Como puedes ver, esto no es más que una disposición diferente del texto cifrado anterior, pero al menos no sigue un patrón regular. Podríamos haberlo hecho fácilmente un poco más difícil rellenando el cuadrado siguiendo un camino más complicado. También podríamos utilizar una forma geométrica que no fuera un rectángulo y combinar la sustitución y la transposición. El único problema que podría surgir es que el desciframiento podría complicarse tanto que quedaría como un secreto en el extremo receptor para siempre. Ahora que lo pienso, nunca me conoció detrás del gimnasio…
Frecuencias
Orden de frecuencia de las letras sueltas:
E T O A N I R S H D L C W U M F YG P B V K X Q J Z
Orden de frecuencia de los dígrafos (combinaciones de dos letras):
th er on an re he in ed nd ha at en es of or nt ea ti to it st io le is ou ar as de rt ve
Orden de frecuencia de los trígrafos:
la y tha ent ion tio for nde has nce edt tis oft sth men
Orden de frecuencia de los dobles más comunes:
ss ee tt ff 11 mm oo
Orden de frecuencia de las letras iniciales:
T O A W B C D S F M R H I Y E G L N P U J K
Orden de frecuencia de las letras finales:
E S T D N R Y F L O G H A R M P U W
Palabras de una letra:
a, I, 0.
Palabras de dos letras más frecuentes:
de, a, en, es, ser, como, en, así, nosotros, él, por, o, sobre, hacer, si, yo, mi, hasta, un, ir, no, nosotros, soy…
Palabras de tres letras más frecuentes:
el, y, para, son, pero, no, tú, todo, cualquier, puede, tenía, su, era, uno, nuestro, fuera, día, consigue, tiene, él, su, cómo, hombre, nuevo, ahora, viejo, ver, dos, manera, quién, chico, hizo, su, dejar, poner, decir, ella, también, usar…
Palabras de cuatro letras más frecuentes:
que, con, tener, esto, será, tu, de, ellos, saber, querer, ser, bueno, mucho, algún, tiempo, muy, cuando, venir, aquí, solo, como, largo, hacer, muchos, más, solo, sobre, tal, tomar, que, ellos, bien, fueron…
Bibliografía:
Gardner, Martin. Codes, Ciphers and Secret Writing.
Nueva York, NY: Dover Publications Inc., 1972.
Una maravillosa, divertida y fácil de leer introducción a los códigos y cifrados.
Smith, Laurence Dwight. Cryptography, the Science of Secret Writing.
Nueva York, NY: Dover Publications Inc., 1943.
Un buen relato de códigos y cifrados con muchos ejemplos históricos.
Konheim, Alan G. Cryptography: A Primer.
Nueva York, NY: John Wiley & Sons, 1981.
Un libro muy técnico (y matemático) sobre los métodos más modernos de creación y ruptura de códigos.
Gaines, Helen Fouché. Cryptanalysis: A Study of Ciphers and their Solution.
Nueva York, NY: Dover Publications Inc., 1956.
El título lo dice todo.