criptografía para todos 2: cuadernos de clave única
por David, may.21, 2011 | criptografía
‘
INDICE:
0. Una introducción al hilo del 15M 1. un poco de historia, ¡Dyh Fhvdu! 2. cuadernos de clave única
En episodios anteriores dejamos a Alicia intentando quedar con Bernardo para ir a las concentraciones de Sol y a Clara, la maligna informática que espía sus correos, arreglándoselas para descifrar lo que se decían. Hoy por fin vamos a hacer un poco de justicia y después de hoy Clara va a ser incapaz de descifrar lo que dicen los correos de Alicia y Bernardo.
Una vez llegados al resultado de ayer, Alicia y Bernardo pueden intentar complicarle la vida a Clara de múltiples maneras: pueden, por ejemplo, utilizar métodos que modifiquen las letras de cada mensaje de una manera diferente en función de varias claves, o pueden hacer intervenir claves con variables en función de cosas como la fecha o la hora en la que se emiten los correos. La lista de variaciones que se pueden hacer es tan larga que no vale la pena ni ponerse a plantear ejemplos, sobre todo cuando desde aquí ya se puede ver una la solución a los problemas de Alicia y Bernardo.
El problema de usar una clave más corta que el mensaje, que se reuitiliza y permite detectar pautas y hacer análisis digamos que “a trozos” se puede resolver empleando una clave que sea al menos tan larga como el mensaje a cifrar (o quizá más larga, cogiendo sólo el trozo que necesitásemos).
El problema de que se presenten pautas estadísticas en las letras del mensaje se puede resolver utilizando claves que no sean contraseñas, sino series aleatorias de palabras. Sigamos con la convención de ayer, y digamos que a la letra A le asignamos el valor 1, a la B el 2, y así hasta la Z que valdría 26 (seguimos olvidándonos de la Ñ).
Así por ejemplo podríamos cifrar la palabra “HOLA” (que correspondería a los números 8, 15, 12 y 1) de 25x25x25x25 maneras diferentes. Con determinada clave, podríamos terminar cifrándola como DYHF. Con otra, como HVDU. Y el problema que tendría Clara es que, una vez interceptado el mensaje, no tendría ninguna forma de resolver cuál es el mensaje original. Para ella, sería igual de problable que DYHF significase HOLA que TALA, PARA, LEMA, LAME, HILO, PALA, PAPA, MAMA, MAPA, PANA, COSA, HIJO, AAAH, UYYY o UFFF, por poner unos ejemplos así a bote pronto.
Y así, Alicia y Bernardo recurren a lo que se denomina un cuaderno de clave única.
Hay que celebrar que Alicia y Bernardo por fin van a utilizar un método seguro de alguna manera. Como no se puede compartir una botellita de licor mediante el blog, ¡cuadernos de clave única gratis para todos!
www.davidruiz.eu/download/ccu.rar
Ahí he subido un programita que he hecho en Haskell que genera contraseñas para cuadernos de clave única, las guarda codificadas en un fichero (descomprímelo en una carpeta y la primera vez que generes una clave creará un ficherito donde las guarda), permite exportarlas como texto normal o cifrándolas con un código de control (un número), de manera que se puedan guardar o enviar de manera más segura, y que permite también cifrar y descifrar mensajes o bien en pantalla o bien mediante archivos de texto (que deben ser muy simples, sólo texto en mayúsculas sin eñes y sin los espacios que voy a poner en los ejemplos). Es el programita con el que he hecho todos estos ejemplos. ¡Evidentemente no me iba a pasar una hora echando cuentas cuando me podía pasar diez programando esto! Volvamos al tajo.
Alicia y Bernardo acuerdan entonces una serie de claves que sean una cadenas de letras al azar, y que el mensaje terminará con tres equis y que luego seguirá cualquier cosa –por ejemplo, más equis– para que Clara ni siquiera pueda deducir nada de la longitud de la respuesta. La primera clave de su lista (o la clave que corresponda a ese día, o la que sea por el método que decidan qué clave utilizar) es esta:
OUJPR EOHCE CSPLG VRAFA KKATQ IWYBR QLSCW YOQGX BUFOA HWLOK HTSXC UKMWF ARXTW OGHTR SLSUB
(Es tradición, igual que lo era no usar espacios ni nuestras pobres eñes, dividir claves y mensajes en grupos de 5 letras, yo sospecho que para que sea más fácil no perderse y encontrarse a mitad de cifrado o descifrado sin saber por dónde se iba y debiendo repetirlo todo. Aunque ya digo que yo en el programita de ahí arriba he ignorado los espacios, por pereza y porque usándolo es más difícil confundirse)
Una vez que los dos tienen la claves, Alicia va a codificar con ella su mensaje, que esta vez es “nos vemos luego en la concentración de Sol”. Así que le quita las tildes y los espacios, lo pone en mayúsculas, lo parte en trocitos, y le pone un montón de equis al final. Queda pues así su mensaje:
NOSVE MOSLU EGOEN LACON CENTR ACION DESOL XXXXX XXXXX XXXXX XXXXX.
El procedimiento de Alicia para cifrar el mensaje es el siguiente: convierte cada uno de los textos en sus equivalentes numéricos, y luego va sumando los números de cada letra de manera que cuando se pasa de 26 resta 26. Finalmente, reemplaza cada número por la letra que le corresponde. Lo hacemos con las 5 primeras letras, venga:
Para el mensaje original, N=14, O=15, S=19, V=22, E=5, etc.
Para la clave, OUJPR, obtiene los números 15, 21, 10, 16 y 18.
Sumándolos, le salen 29, 36, 29, 38 y 23, lo que después de restar 26 unas cuantas veces donde se puede queda como 3, 10, 3, 12 y 23, que corresponde a las letras CJCLW.
Cuando lo hace con el mensaje entero, obtiene lo siguiente:
CJCLW RDAOZ HZEQU HSDUO NPONI JZHQF UQLRI WMOEV ZSDMY FUJMI FRQVA
Y ahí podemos observar como aunque la parte final del mensaje original era una cadena de simples X, no hay forma de distinguirlo del galimatías que supone el texto que sí tiene sentido. Una vez ha cifrado ese mensaje, Alicia destruye su clave: no piensa volver a usarla porque estaría dándole información por su uso repetido a Clara. Hecho eso, envía el mensaje cifrado a Bernardo, que no tiene más que convertirlo en números, convertir la clave en números y restar al texto cifrado la clave, sumándole 26 cuando le de cero o un número negativo.
Es decir, para las 5 primeras letras, CJCLW tendría que convertirlas en números: 3, 10, 3, 12 y 23.
A esos números les tiene que restar los que obtiene de la clave, OUJPR, que siguen siendo los que eran antes, 15, 21, 10, 16 y 18.
Al hacerlo, le sale -12, -11, -7, -4 y 5. A los cuatro primeros les suma 26 porque son negativos y necesita números del 1 al 26, y queda 14=N, 15=0, 19=S, 22=V, 5=E.
Cuando lo hace para todo el mensaje cifrado, obtiene…
NOSVE MOSLU EGOEN LACON CENTR ACION DESOL XXXXX XXXXX XXXXX XXXXX.
…de lo que entiende que Alicia y él van a desafiar la prohibición de la Junta Electoral y que o dicho eso termina el mensaje o le envía un montón de besos. Prefiere pensar lo segundo y su cara sonriente supone un contraste estupendo con la cara de frustración que tiene Clara, que es incapaz de deducir la clave empleada porque fue generada al azar, lo que para ella implica que podría ser prácticamente cualquiera, por ejemplo bien podría ser…
XQIWX MPZBK PYABQ CPRTW MDZUZ ELNBL PCGET DVTZR UICUU AYEUU QYSXC
En cuyo caso el mensaje significaría…
ESTOY ENAMO RADOD ECLAR ALOSI ENTOT ENEMO SQUED EJARD EVERN OSXXX
O cualquier otra clave y cualquier otro posible mensaje: lo único que Clara, sin la clave, puede decir del mensaje es que como mucho tiene 55 letras de largo.
1 Respuesta
1 Trackback / Pingback para esta entrada
-
criptografía para todos 1: un poco de historia, ¡Dyh Fhvdu! « davidruiz.eu
mayo 21st, 2011 on 11:41[...] 2. cuadernos de clave única [...]
mayo 21st, 2011 on 18:05
Este sería el método de Vigenere ¿no? (sé que usaba una matriz con el alfabeto repetido pero creo que haciendo las sumas de sus posiciones como en tu ejemplo daba el mismo resultado)