¿Qué es el cifrado?
Lo que aprenderás
- Los elementos básicos de la codificación: texto en claro, texto cifrado, algoritmo criptográfico (o protocolo criptográfico) y clave criptográfica
- Cómo funcionan algunos métodos clásicos de cifrado
- Formas en las cuales se puede romper el cifrado
- Un cifrado indescifrable
Comencemos con lo más básico: el cifrado con papel y pluma, antes de avanzar hacia métodos de cifrado más complejos, los cuales son posibles gracias a las computadoras.
El cifrado es el proceso de codificación de un mensaje con la intención de que solo pueda ser descodificado (y leído) por el o los destinatarios. El método por el cual se codifica un mensaje original, o texto en claro, se conoce como algoritmo criptográfico o protocolo criptográfico. En casi todos los casos, la intención no es que el algoritmo criptográfico permanezca secreto. El mensaje codificado, ilegible, cifrado, se conoce como texto cifrado y puede compartirse con seguridad. La mayoría de los algoritmos criptográficos requieren de una parte adicional, la clave criptográfica, para cifrar y descifrar mensajes (codificar y decodificar).
Un código sencillo: el cifrado César
Consideremos el primer y quizás más sencillo cifrado: el César. En este, cada letra del mensaje se sustituye por la letra situada a un número específico de posiciones en el alfabeto. Por ejemplo, supongamos que se desea cifrar el siguiente texto en claro:
SI VOTAR CAMBIARA ALGO SERÍA ILEGAL
Si se sustituye cada letra del mensaje por la letra situada tres posiciones adelante en el alfabeto, de manera que A se convierte en D, B en E, y así sucesivamente hasta que Z regresa al inicio del alfabeto y se convierte en C, el texto en claro se convierte en el siguiente texto cifrado:
VL YRWDU FDOELDUD DNJR VHULD LNHJDN
Para descifrar este mensaje, el destinatario haría lo opuesto: sustituir cada letra del mensaje por la letra situada tres posiciones atrás en el alfabeto, de manera que Z se convierte en W, y A se va hacia el final del alfabeto para convertirse en X. Para que el destinatario pueda descifrar el mensaje (rápidamente), debe conocer la clave del cifrado.
En el caso del cifrado César, la clave es la cantidad de lugares que se desplaza cada letra en el alfabeto; en este ejemplo, el número 3. Una clave de cifrado César también puede representarse con la letra del alfabeto que resulte de la traducción de A. Por ejemplo, un desplazamiento de 3 lugares daría la clave D; un desplazamiento de 26 daría la clave Z, y un desplazamiento de 0 (desplazamiento de identidad), daría la clave A.
Repasemos los términos. En este ejemplo, para aplicar el algoritmo o protocolo criptográfico, deben seguirse estas simples instrucciones: “Para cifrar, sustituir cada letra del mensaje en texto en claro por la letra que se encuentre n letras hacia adelante. Para descifrar, sustituir cada letra del mensaje en texto cifrado por la letra que se encuentre n letras hacia atrás.” La clave sería el valor del desplazamiento: n.
Por supuesto, el César no es un cifrado fuerte y no deberías confiar en él para mantener tus planes en secreto. Todo lo que un adversario necesitaría para descifrar tu código secreto (texto cifrado) es probar todos los desplazamientos posibles hacia atrás en el alfabeto. No hay muchas posibilidades, así que no tomaría mucho; puesto que la clave A hace que el texto en claro y el cifrado sean iguales, solo hay veintiséis claves posibles. Este tipo de ataque se conoce como ataque de fuerza bruta; en este, un adversario intenta descifrar un mensaje cifrado probando todas las claves posibles. Este tipo de ataque es factible en el caso del cifrado César porque hay muy pocas claves posibles.
Un cifrado ligeramente más complicado: el Vigenère
El cifrado Vigenère consiste en un conjunto de cifrados César, cada uno con su propia clave. La clave suele presentarse como una palabra y la posición de cada letra de la palabra en el alfabeto indica cómo se desplaza la letra A, como en el cifrado César. Es más fácil ver esto en un ejemplo. Supongamos que se desea cifrar el siguiente texto en claro:
RESPETA MI EXISTENCIA O ESPERA RESISTENCIA
con la siguiente clave:
PODER
Haz lo siguiente:
- Codifica cada quinta letra, empezando con la primera letra del texto en claro (R, T, X…), con un cifrado César que iguale A con P (un desplazamiento de 16 o un cifrado César con clave P o 16).
- Codifica cada quinta letra, empezando con la segunda letra del texto en claro (E, A, I…), con un cifrado César que iguale A con O (un desplazamiento de 15 o un cifrado César con clave O o 15).
- Codifica cada quinta letra, empezando con la tercera letra del texto en claro (S, M, S…), con un cifrado César que iguale A con D (un desplazamiento de 3 o un cifrado César con clave D o 3).
- Codifica cada quinta letra, empezando con la cuarta letra del texto en claro (P, I, T…), con un cifrado César que iguale A con E (un desplazamiento de 4 o un cifrado César con clave E o 4).
- Codifica cada quinta letra, empezando con la quinta letra del texto en claro (E, E, E…), con un cifrado César que iguale A con R (un desplazamiento de 18 o un cifrado César con clave R o 18).
La aplicación de estos cinco cifrados César resulta en el siguiente texto cifrado:
CPPMNEM XE NITPPNXÑFW X OENAAL DBOQDFBJLSM
Para descifrar este cifrado, supongamos que un adversario conoce la longitud de la clave. El adversario intentaría descifrar el texto con todas las palabras posibles de tres letras (o en general, cualquier secuencia de tres letras). En este ejemplo, se requerirían cuando mucho 25 x 26 x 26 = 16,900 intentos, lo cual es más de lo que puede lograrse fácilmente a mano, pero una computadora puede hacerlo sin mayor complicación. Si el adversario no conoce la longitud de la clave, tendría que intentar con muchas más claves posibles para descifrar el cifrado con este método de fuerza bruta (tantas como 25 + 25 x 26 + 25 x 26 x 26 + …). Observa que entre más larga es la clave, más difícil es aplicar métodos de fuerza bruta, y un adversario deberá trabajar más para descifrar el texto.
En contexto: La indescifrable libreta de un solo uso
Un cifrado Vigenère cuya clave sea una secuencia de letras elegidas al azar y que sea al menos tan largo como el mensaje en texto en claro hace posible un cifrado conocido como libreta de un solo uso. Históricamente, la clave misma se habría escrito en una libreta o papel y distribuido a las partes involucradas. Para cifrar, se aplica un cifrado Vigenère al texto en claro, donde cada letra de la libreta se usa solo una vez antes de proceder con la siguiente letra. El descifrado depende de que se tenga esta libreta de un solo uso, así como la posición inicial en la clave. Es imposible descifrar este cifrado sin la clave; es decir, es imposible adivinar la clave y descifrar el texto ya cifrado aun disponiendo de tiempo y recursos ilimitados. Esto es así porque un texto cifrado de una longitud dada puede corresponder con cualquier texto en claro de la misma longitud. Por ejemplo, sin conocer la clave aleatoria, el texto cifrado con libreta de un solo uso SO DU CYFUK podría (con igual probabilidad) corresponder al texto en claro SI SE PUEDE, o a YO NO PUEDO. Sin la clave no hay forma de saber cuál es el mensaje original. Omitir espacios entre palabras o cifrar los espacios entre palabras (usando un alfabeto de veintiocho letras ABCDEFGHIJKLMNÑOPQRSTUVWXYZ_, donde _ representa un espacio) haría mucho más difícil adivinar incluso el conjunto de posibles mensajes en texto en claro.
Por supuesto, la libreta de un solo uso tiene el problema práctico de cómo intercambiar la clave (la libreta misma), la cual sería tan larga como el mensaje o como la longitud total de todos los posibles mensajes futuros. A pesar de eso, se ha usado históricamente en grupos que comparten una libreta de un uso en persona y que luego se envían mensajes por canales inseguros. A finales de los años 80, el Congreso Nacional Africano (ANC, por sus siglas en inglés), que luchaba contra el Apartheid en Sudáfrica en aquel momento, empleó libretas de un uso para cifrar mensajes entre simpatizantes extranjeros y operativos dentro del país. Las libretas de un uso (las claves) eran transportadas físicamente por un sobrecargo de confianza que trabajaba en la ruta Ámsterdam-Johannesburgo. Dicho sea de paso, el ANC también computarizó el cifrado y descifrado y de esta manera hizo posible traducir mensajes cifrados en secuencias tonales transmitidas por una conexión telefónica y grabada o recibida en una contestadora de mensajes. Esto permitió la comunicación asincrónica.
Qué aprender a continuación
Recursos externos
- Jenkin, Tim. “Talking with Vula: The Story of the Secret Underground Communications Network of Operation Vula.” Mayibuye: Journal of the African National Congress, octubre de 1995.