Learning Machine #10 - Código Bacon.

Hola de nuevo a todos, despues de un graan tiempo de ausencia, finalmente regresamos.
El día de hoy vamos a ver otro método de cifrado, veremos cómo encriptar una cadena de texto y cómo des-encriptarla.


Código Bacon.

El Código Bacon o clave Baconiana (en inglés Baconian cipher), es un método esteganográfico desarrollado por Francis Bacon. El mensaje estaría oculto en la presentación del texto, más que en su contenido.
De acuerdo a Sir Francis Bacon, existen tres propiedades que debe de tener un cifrado
1) Debe de ser fácil de escribir y de leer
2) Que debe de ser confiable y que no pueda ser descifrado
3) Si es posible libre de sospecha.
Debido a que si un mensaje llegara a caer en manos incorrectas, este no pueda ser descifrado a pesar que sea examinado por expertos.1​
Esta última condición hace que el código Bacon suponga un híbrido entre los sistemas criptográficos y los esteganográficos compartiendo características de ambos. "Wikipedia/CodigoBacon"
El código Bacon consiste prácticamente en ocultar un mensaje dentro de otro, de la manera que el primero pase de forma desapercibida dentro del segundo, este, debe de ser un mensaje legible y coherente para no llamar la atención.

¿Cómo cifrar?

Para pode cifrar un texto usando el código Bacon, primero debemos de tener en cuenta la siguiente lista:

  • a - AAAAA
  • b - AAAAB
  • c - AAABA
  • d - AAABB
  • e - AABAA
  • f - AABAB
  • g - AABBA
  • h - AABBB
  • i-j - ABAAA
  • k - ABAAB
  • l - ABABA
  • m - ABABB
  • n - ABBAA
  • o - ABBAB
  • p - ABBBA
  • q - ABBBB
  • r - BAAAA
  • s - BAAAB
  • t - BAABA
  • u-v - BAABB
  • w - BABAA
  • x - BABAB
  • y - BABBA
  • z - BABBB
Al mensaje que queramos cifrar, debemos de cambiar cada letra del mensaje original, por la secuencia indicada para esa letra. Tomemos por ejemplo las siguiente frase:

XWorks Blog.

Empezaremos por reemplazar y obtendremos lo siguiente:

BABAB BABAA ABBAB BAAAA ABAAB BAAAB AAAAB ABABA ABBAB AABBA

Luego quitaremos los espacios y tendremos los sigueinte:

BABABBABAAABBABBAAAAABAABBAAABAAAABABABAABBABAABBA

Con eso quedaria lista la primer parte del cifrado. Para poder realizar la segunda parte, debemos de seleccionar un mensaje que tenga tantos caracteres cómo nuestro mensaje pre-cifrado, en el caso anterior tenemos 50 letras, entonces debemos de seleccionar uno con esa longitud. Yo usaré este:

Todos somos idiotas hasta que se demuestre lo contrarioooo

Si cuentas todas las letras, verás 50 (tuve que repetir al final para ajustar, pero si eres creativo puedes crear una frase que pase desapercibida).
Para crear la frase final, debemos de seguir las siguientes reglas.

Emparejaremos los mensajes, de tal modo que la primer y última letra coincidan, despues, en la segunda frase (que es legible), cambiaremos las letras entre mayúsculas y minúsculas de tal forma que cuando encontremos una letra "A" en el mensaje pre-cifrado usaremos una letra minúscula en el mensaje legible; y cuando encontremos  una letra "B" en el mensaje pre-cifrado, en el mensaje legible, pondremos una letra mayúscula. Usando las reglas anteriores, obtendremos esto:

  • Mensaje precifrado
    • BABABBABAAABBABBAAAAABAABBAAABAAAABABABAABBABAABBA
  • Mensaje para ocultar el pre-cifrado
    • Todos somos idiotas hasta que se demuestre lo contrarioooo
  • Resultado
    • ToDoSSoMosiDIoTAshastAquESedeMuestReLoConTRaRioOOo
Con eso habremos ocultado nuestro mensaje original "Xworks Blog" en el mensaje Todos somos idiotas hasta que se demuestre lo contrarioooo.

¿Cómo des-cifrar?

Para descifrar un mensaje, solo debemos de hacer el proceso inverso. Tomemos cómo ejemplo el siguiente mensaje:

HelLOWorlDxwORk

Seguiremos las mismas reglas y cuando encontremos una letra mayúscula, anotaremos una letra "B", cuando sea minúscula, anotaremos una letra "A" y obtendremos lo siguiente:

BAABB BAAAB AABBA

Luego separaremos de cinco en cinco y compararemos con la tabla. En este caso obtendremos lo siguiente:

BAABB BAAAB AABBA

EL resultado es: USG , solo bastará un poco de acomodo para darle el sentido correcto, pero en este caso solo es USG la frase cifrada.

Y bien, por ahora es todo, la semana que viene veremos cómo hacer una aplicación de windows (en c#) que haga el trabajo sucio por nosotros.
Los leo luego.

No hay comentarios.