Si la criptografía es la ciencia de escribir mensajes secretos, la esteganografía vendría a ser el arte de escribir mensajes ocultos. Esto quiere decir que en este último caso, tratamos de ocultar un mensaje, por ejemplo, dentro de una fotografía, y para el que no sabe qué buscar no encuentra nada extraño o fuera de lugar. Pero este mensaje no se cifra, no se sustituye necesariamente por otras letras, lo cual puede ser muy eficiente en algunos casos para mandarse mensajes secretos entre personas que conozcan las claves adecuadas.
Por ejemplo, muchos taxistas tienen códigos como «Estoy en un 27», que bien podría significar que el taxista se encuentra atorado en el tráfico en Polanco. Y en esos términos, aunque el mensaje no está en realidad cifrado en palabras, está cifrado en lo que realmente significa el contenido.
Francis Bacon –dice la Wikipedia– fue un célebre filósofo, político, abogado y escritor inglés, padre del empirismo filosófico y científico. El hombre era multifacético y en algún momento incursionó en el tema de la criptografía y la esteganografía. Se le ocurrió entonces un sistema para mandar mensajes cifrados. De acuerdo con Bacon, hay tres propiedades que debe tener un sistema de cifrado:
- Debe ser fácil de escribir y leer
- Debe ser confiable y difícil de descifrar
- Debe estar libre de sospecha.
Con estas condiciones, suponía Bacon que un mensaje interceptado no podría ser descifrado por expertos.
Para ello, se le ocurrió el siguiente esquema. Cuando se quiere codificar un mensaje, lo primero es reemplazar cada letra por una cadena de cinco letras de acuerdo al siguiente «alfabeto»:
a AAAAA g AABBA n ABBAA t BAABA b AAAAB h AABBB o ABBAB u-v BAABB c AAABA i-j ABAAA p ABBBA w BABAA d AAABB k ABAAB q ABBBB x BABAB e AABAA l ABABA r BAAAA y BABBA f AABAB m ABABB s BAAAB z BABBB
Cabe decir que hay versiones que usan códigos separados tanto para la i y la j, así como al u y la v. Sin embargo, en lo que se refiere a codificar/decodificar el mensaje, éste siempre termina siendo entendible.
Por ejemplo, supongamos que el texto a cifrar es:
este es un mensaje cifrado
Quitamos los espacios y usando el alfabeto de Bacon hallamos esto:
AABAABAABABAABBAABAAAABAABAABABABAAABBABABBAAAABAAABBABBAABAAAAAAABAABAABAAAAABAABAAAAABABBAAABAAAAAAAABBABBBA
La longitud de este mensaje tiene 110 letras. Entonces aquí lo que necesitamos es un texto cualquiera, que tenga 110 letras, que es donde pondremos el mensaje cifrado. Por ejemplo, supongamos que escribimos como un mensaje falso:
la criptografía y la esteganografia son ciencias que parecen la misma pero que en realidad son diferentes pues cifran diferenteee
Quitamos los espacios y tenemos:
lacriptografiaylaesteganografiasoncienciasqueparecenlamismaperoqueenrealidadsondiferentespuescifrandiferenteee
Nótese que ambos mensajes tienen 110 letras.
Una vez teniendo esto, hacemos lo siguiente: tomamos el mensaje pre-cifrado y cuando encontramos una letra B, ponemos en mayúscula la letra correspondiente, en esa misma posición, en el mensaje falso. Si es una A, dejamos en minúscula esa letra. Por ende, encontraremos que este mensaje queda cifrado de esta manera:
laCriPtoGrAfiAYlaEstegAnoGraFiAsOnciENcIaSQuepaReceNLaMIsmAperoqueEnrEalIdadsoNdiFerentEsPUescIfrandifeREnTEEe
Es claro que hay cosas extrañas en el mensaje que es fácil detectar, pues las mayúsculas y minúsculas deben tener algo que ver en todo esto. Y es así. pero Francis Bacon debe haber creído que si no se tiene el alfabeto de su creación, el mensaje no puede ser descifrado, argumento que en realidad es falso.
El método de Bacon, llamado «Cifrado Bacon», es pues, una combinación de criptografía y esteganografía.
Para quien le interese, escribí un programa en Delphi 7 que hace esta tarea. Para usarlo, se escribe en la caja correspondiente el texto a cifrar. Se oprime el botón de Pre-cifrado. Esto nos dará una cadena de letras A y B que corresponden a cada letra del texto original. Con esta información, podemos llenar la siguiente caja de texto con cualquier cita que cumpla con una condición: sea del mismo tamaño que la cadena cifrada.. Puede verse que el sistema muestra la longitud de esa cadena y es un buen indicador si ya llegamos a poner todas las letras que necesitamos.
Una vez hecho esto, podemos presionar el botón de Cifrado Bacon. Obtendremos el texto falso cifrado, con mayúsculas y minúsculas.
Para descifrar este código, lo que hacemos es el proceso inverso. Vemos la cadena final y armamos una nueva en donde las minúsculas sean ‘A’ y las mayúsculas sean ‘B’. Una vez con esto listo, procedemos revisar el alfabeto de Bacon para ver cada cinco letras a cuál letra corresponde.
Quien le interese mi programa, escríbame a [email protected] y se le enviará el sistema para que juegue con él.
Más sobre Francis Bacon en este enlace.