Introducción a la Criptografía
La criptografía tiene que ver con mensajes secretos.
¿Cómo podemos enviar un mensaje a alguien que solo esa persona pueda entender?
Un método sencillo consiste en cambiar cada letra del mensaje.
Ejemplo: "rosquillas debajo del fregadero" (solo para tu hermana)
Si alguien más lee tu mensaje, encontrará y se comerá las donas antes de que tu hermana llegue a casa.
Probemos un método simple para sustituir cada letra una en el alfabeto, así codificamos:
d→e, o→p, n→o etc y obtenemos: epobt
efcbkp bmbdfob
A todos les parecerá una tontería sin sentido, excepto a tu
hermana, que conoce el truco y lo decodifica:
e→d, p→o, o→n etc y obtiene: donas debajo
alacena
¡Puedes usar mensajes secretos en el enlace si lo deseas!
Este es un tipo de "cifrado de sustitución".
Más avanzado
Pero si alguien conoce este método, podrá decodificar fácilmente tu mensaje.
Así que seamos más inteligentes y subamos 2 o 3 o más lugares en el alfabeto.
O incluso más inteligentes y con un número variable de lugares. Tal vez elija el número "3142" para que signifique "mover la primera letra 3 lugares, la siguiente letra solo 1 lugar, etc.". Entonces, incluso alguien que conozca su método tendrá dificultades si no conoce la clave "3142".
Máquina Enigma

Máquina Enigma de la Kriegsmarine
por el usuario de Wikipedia LukaszKatlewa
La máquina Enigma, desarrollada por el ejército alemán en la década de 1930 para una comunicación segura, utiliza un método avanzado como ese.
Cuenta con una serie de ruedas giratorias, conocidas como rotores, que asignan cada letra de entrada a una letra codificada diferente. Los rotores se pueden colocar en diferentes posiciones, creando un proceso de cifrado complejo.
Lo que hace que sea aún más difícil de romper es la configuración del rotor. Los ajustes se cambiaban a diario y los alemanes tenían un gran número de combinaciones posibles para elegir. Además, a medida que se codifica cada letra, las posiciones del rotor giran, lo que complica aún más el cifrado.
Las primeras versiones fueron descifradas por los polacos que transmitieron su trabajo a los británicos durante la Segunda Guerra Mundial.
Algunas personas muy inteligentes, lideradas por el famoso Alan Turing, descifraron la versión más reciente y de repente pudieron leer mensajes en alemán y saber, por ejemplo, hacia dónde se dirigían los submarinos y evitarlos o posiblemente hundirlos.
Se cree que esto acortó la guerra en dos años y salvó millones de vidas.
¡La criptografía es poderosa!
Descifradores de códigos
Entonces, ¿cómo se pueden descifrar esos códigos?
Los descifradores de códigos tienen muchas cosas que pueden usar:
- Algunas letras son mucho más comunes, dependiendo del idioma.
- Del mismo modo, algunas letras aparecen juntas con más frecuencia.
- Algunas palabras también son más comunes.
- También pueden probar muchas combinaciones para ver si alguna produce palabras reales.
Lee nuestra página sobre palabras aleatorias para ver con qué frecuencia aparecen letras y combinaciones de letras en español.
También pueden esperar a que sucedan noticias importantes y luego buscar cualquiera de sus palabras clave en los mensajes.
Más allá de la sustitución
La criptografía moderna ha superado todo eso.
¡Ahora usamos números primos!
Se basa en la idea de que multiplicar números primos es mucho más fácil que averiguar qué primos se multiplicaron para formar un número.
Ejemplo: ¿Cuánto es 101 × 131?
Con lápiz y papel podemos obtener la respuesta de 13231 en poco tiempo.
Pero ¿qué pasaría si la pregunta fuera "¿Cuáles son los factores primos de 13231?"?
¡Podríamos estar trabajando mucho tiempo en resolver esa pregunta!
Ok, la calculadora de factorización de primos puede hacerlo fácilmente, pero no cuando los números son enormes (como cientos de dígitos), lo cual podría llevar años o siglos.
RSA
Lo anterior nos lleva a conocer el algoritmo RSA (Rivest-Shamir-Adleman).
Es un algoritmo de cifrado de clave pública/clave privada que utiliza dos números primos p y q.
La clave pública (que incluye p×q) codifica el mensaje por lo que es muy difícil de leer para otros.
Pero la clave privada tiene información extra que nos permite decodificar el mensaje fácilmente.
Este tipo de cifrado se denomina "asimétrico" porque utiliza dos claves (clave pública para el cifrado y clave privada para el descifrado).
Otros cifrados
La criptografía también incluye:
- Cifrado de clave simétrica: donde se utiliza la misma clave tanto para el cifrado como para el descifrado. Esta clave se comparte entre el remitente y el destinatario y debe mantenerse privada.
- Firmas digitales: una forma de verificar que los documentos digitales son auténticos y no están modificados.
- Hashing: códigos de longitud fija o "huellas digitales" de datos.
- Protocolos seguros de intercambio de claves: formas de garantizar que las claves digitales se puedan distribuir de forma segura entre dos partes.
La criptografía es un campo rico y variado en el que alguien con buen sentido común y comprensión de los números puede ser muy bueno.
¡Refuerza tu aprendizaje resolviendo los siguientes retos sobre este tema! (Nota: están en inglés).