JBrew en Flickr
Los códigos secretos, o cifrados, son una forma estupenda de enseñar el pensamiento computacional.
Aunque puedes utilizar ordenadores para descifrar códigos secretos, también llamados cifrados, no siempre son necesarios. Y los ordenadores por sí solos no pueden descifrar códigos secretos. Los ordenadores necesitan que los humanos les den instrucciones. Y los humanos tienen que pensar a través de una serie de preguntas, desarrollar reglas para las posibles soluciones, y decidir cuándo una posible solución debe ser abandonada en favor de otra.
Este proyecto le guiará a través de un método de alto nivel para crear códigos secretos y cifrados, así como encontrar maneras de descifrarlos. Obviamente, el campo de los cifrados es vasto y complicado. Este rompecabezas es simplemente divertido. También he diseñado este proyecto a partir de un plan de lección de Google más complicado que está enlazado más abajo. Y he recopilado un conjunto de enlaces en línea para ayudarte a descifrar códigos secretos por tu cuenta, así como ideas sobre cómo descifrarlos.
Si estás preparado, vamos a empezar.
- ¿Qué es un código secreto o cifrado?
- ¿Cómo se crea un código secreto o cifrado?
- ¿Cómo se descifra un código secreto o cifrado?
- Intenta tu propio cifrado
- Learn More
- Ciphering a Sentence (Google)
- Cipher (Wikipedia)
- Letter Frequency
- The Secret Language
- Secret Codes for Cubs and Scouts
- Three Secret Codes to Try With Your Kids
- Create Secret Codes and Ciphers (Wiki How)
- Cryptography (Wikipedia)
¿Qué es un código secreto o cifrado?
Un código secreto, o cifrado, es simplemente la sustitución de una letra de un alfabeto por otra letra o número. Puedo decir, por ejemplo, que en lugar de escribir la letra E voy a escribir la letra F en su lugar. Así, house se convierte en housf.
Otro tipo de código secreto transpone, o cambia, el orden de las letras en un mensaje. Así, house podría convertirse en uoesh.
Otra forma de crear códigos secretos es colocar palabras, letras o caracteres sin sentido entre letras o caracteres con sentido. Por ejemplo, puedes coger un trozo de cartulina del tamaño del papel de carta, recortar cuadrados o rectángulos, colocar un trozo de papel debajo de tu cartulina, escribir tu mensaje utilizando los espacios de la cartulina recortada, luego levantar la cartulina y rellenar el resto del papel como si fuera una letra. Sólo cuando vuelvas a colocar la cartulina sobre tu carta podrás ver tu mensaje real.
El proceso de codificar y luego decodificar un mensaje se llama criptografía. Para hacer criptografía, necesitarás un mensaje de texto plano, un conjunto de reglas (algoritmo) para codificar tu mensaje y una clave para ayudar a decodificar tu mensaje. En algunos casos, también especificará el tiempo durante el cual el algoritmo y las claves están en vigor.
Los cifrados son ligeramente diferentes de los códigos. Un cifrado mezcla o utiliza diferentes letras o caracteres. Un código sustituye una palabra por otra palabra o frase. Por ejemplo, FWIW u OMG son códigos, ¿no? FWIW sustituye a for what it’s worth y OMG sustituye a Oh My God!
Para este proyecto, nos centraremos en un patrón sencillo para sustituir letras y caracteres.
¿Cómo se crea un código secreto o cifrado?
¿Recuerdas mi ejemplo de sustituir la letra E por la letra F, por lo que house se convierte en housf?
¿Qué ocurre si digo que la letra E será sustituida por las letras F más las letras R y K? ¿Qué pasa si tengo que usar una palabra con F, R o K? Crear una frase de este modo podría resultar confuso muy rápidamente. La solución es crear un patrón, o conjunto de reglas (llamado algoritmo en informática), que se utiliza para traducir cualquier frase codificada con su patrón.
Para empezar, digamos que nuestro patrón simplemente desplazará todas las letras del alfabeto dos espacios a la derecha. Así, la letra E se convierte en la letra G, la letra G se convierte en la letra I, y así sucesivamente.
Con este sencillo patrón, house se convierte en iqwug. Podrías averiguar qué significa iqwug?
¿Cómo se descifra un código secreto o cifrado?
¿Recuerdas nuestro sencillo patrón en el que cambiamos las letras del alfabeto dos espacios a la derecha, de modo que house se convierte en iqwug? Hablemos de las formas en que podríamos descifrar o decodificar esta palabra.
Lo primero que debes notar es que iqwug es una muestra extremadamente pequeña, una palabra de sólo cinco caracteres de longitud. Para descifrar cualquier código, se necesitan tantos ejemplos de palabras, frases y párrafos codificados como sea posible. Una palabra de cinco caracteres podría ser imposible de descifrar sin otros ejemplos.
Cuando se tiene una gran muestra de palabras y frases codificadas con el mismo patrón, se hace posible aplicar otros patrones. Por ejemplo, en el idioma inglés, la letra E es muy común.
Una gran muestra de palabras codificadas con nuestro patrón que desplaza las letras dos espacios, convirtiendo la letra E en la letra G, probablemente tendría más Gs que la mayoría o todas las demás letras. Podríamos empezar a intentar descifrar nuestra frase cambiando la letra G por la E. Luego podríamos ver cómo E se convirtió en G: podríamos darnos cuenta de que G está dos letras a la izquierda de E en el alfabeto inglés y probar a desplazar las demás letras de nuestro mensaje codificado dos espacios a la izquierda.
Decodificar y descifrar mensajes codificados requiere mucha reflexión, así como ensayo y error. Es un rompecabezas divertido de resolver.
Intenta tu propio cifrado
Si recuerdas, para codificar y decodificar un mensaje necesitarás:
- Un mensaje de texto plano.
- Un patrón o conjunto de reglas para codificar y decodificar tu mensaje.
También podrías utilizar una clave, por ejemplo, un diccionario, y establecer un periodo de tiempo en el que tu patrón o conjunto de reglas esté activo antes de ser sustituido por otro patrón utilizado para codificar y decodificar los mensajes. Pero estos son pasos opcionales y no son necesarios para divertirse un poco con los códigos y el pensamiento computacional.
Para crear un sencillo cifrado por sustitución, tome un papel y escriba cada letra del alfabeto. Junto a cada letra, asigna otra letra, número o carácter para representar la letra original. Puedes asignarlos al azar o siguiendo un patrón establecido, por ejemplo, asignando el segundo o tercer carácter a la derecha o a la izquierda de la letra original. Así, la A podría convertirse en la X si cambias tres caracteres a la izquierda.
Una vez que tengas un mensaje para codificar, consulta tu alfabeto y reescribe tu mensaje con la letra, el número o el carácter asignado a cada letra.
Para hacer las cosas más interesantes, trabaja con un compañero para crear tus propios patrones de sustitución e intercambia los mensajes codificados. Comprueba si puedes averiguar el método de sustitución necesario para descodificar el mensaje.
Si necesitas un mensaje largo, o no se te ocurre ningún mensaje, copia el texto de un libro o de una página web para codificarlo y descodificarlo. Longer plain text will allow you to see how letter frequency might help decode a message.