davidruiz.eu/blog

Archivo de mayo, 2011

Wilke-Barres

por David, may.28, 2011 | ajedrez


Vamos a darnos un respiro con la criptografía y vamos a rendirle homenaje a una ciudad sucia y fea y a un cura.

Wilke-Barres es una pequeña ciudad de Pensilvania. Fue fundada en 1769, y tiene alrededor de 50.000 habitantes. La HBO nació allí, cuando en 1972, 365 personas fueron las primeras en recibir su señal. También nació allí el bingo moderno, leo con cierto pasmo. No es una ciudad rica (Michael Moore habla de su economía con saña en Capitalism: A Love Story) ni una ciudad bonita. Leo todo eso en la Wikipedia, pero no leo que la ciudad tenga ninguna estatua erigida en honor del cura polaco Karel Traxler.

Debería.

El cura polaco ganó cierta fama a finales del siglo XIX y principios del XX por una especie de manía temeraria y suicida que le hizo ganarse el estigma de loco y que se catalogó como una anomalía simplemente curiosa. Hasta que llegaron los fans de Wilke-Barres, Pensilvania, y adoptaron como propia la manía suicida del padre Traxler.

Los fans de Wilke-Barres eran los miembros de su club de ajedrez, y Traxler, aparte de cura, era ajedrecista. La variante conocida como Traxler (por su creador) o Wilke-Barres (por sus entusiastas seguidores) es probablemente la cosa más caótica, sangrienta, salvaje y cafre que puede hacerse en un tablero de ajedrez. Yo la descubrí harto de que el listillo de turno me comiese una torre en el 6º movimiento. El listillo comienza abanzando su peón de Rey, cuando se le responde haciendo simetría abanza el caballo de rey atacando el peón negro, después de que las negras lo defiendan moviendo un caballo lanzan su alfil de casillas negras a la 4ª fila, y después avanzan el caballo que, prácticamente indefendible, pinza en el sexto movimiento la reina y la torre. Y se merienda la torre.

Yo lo sufrí unas cuantas veces hasta que buscando por ahí di con los nombres de la variante de los alegres temerarios. Y no siempre sale, porque del caos que se genera no siempre es fácil salir con la yugular intacta, pero como más gente conoce el truquito de lanzar el caballo a por la torre que la variante que propuso el cura polaco, a veces uno termina viendo como una partida se desarrolla así…

(sale como termina: dale a las dos flechitas hacia la izquierda para ir a la primera jugada, y luego la flechita hacia la derecha mueve una pieza)

Claro que Traxler lo jugaba mejor. Al margen de la ida de pinza que tuvo su rival en los movimientos seis y siete (hay que comprenderle: ¿cómo podía esperar él lo que se le venía encima?), y que en cualquier caso no tiene solución trivial (comerse el alfil suicida es muy mala idea), esta fue la primera vez que jugó su variante:

Y yo creo que aunque no fuera por el contraataque que inventó, sólo por el movimiento 14 de esta partida en la que termina con las blancas por delante por un peón, dos caballos y una torre, por ese “¿la reina? ¿Para que voy a comerme la reina, qué falta hace?”, ese hombre se merece una estatua y un pedazo de aplauso.

Gracias, señor Traxler. Hizo usted del ajedrez un mundo mucho más hermoso (y salvaje).

12 comentarios más...

criptografía para todos 3: la clave se llama así por algo

por David, may.27, 2011 | criptografía


Disclaimer: ¿qué sería de esta serie de posts sin disclaimers? Hoy aviso de que como en lo que queda de serie vamos a hablar de vez en cuando de números grandes, vamos a usar notación científica para referirnos a ellos, porque es más conciso escribir 1’28E+30 que escribir 1.280.000.000.000.000.000.000.000.000.000. Cuando escribo así un número, 1’28E+30 eso significa que el número al que me refiero es 1’28 multiplicado 30 veces por 10, de manera que 1E+6 sería un millón, 1E+9 serían mil millones o lo que los americanos llaman un billón, 1E+12 sería lo que el resto del mundo llamamos un billón, etcétera.

Hoy vamos a hablar de contraseñas seguras, porque antes de arremangarnos y ponernos con la faena seria (la siguiente entrada de la serie va a ser temible, lo voy avisando), tenemos que hablar un poco de las contraseñas, los passwords, las claves o como las queráis llamar: esas palabritas mágicas tras cuya invocación cualquiera tiene acceso a nuestro correo electrónico, a nuestros ordenadores, a nuestras redes Wifi o a nuestro perfil de Facebook. También vamos a hablar hoy de agujeros negros hechos con extraños materiales (quizá sugiriendo sin proponérnoslo una explicación a por qué se ven tan pocos billetes de 500€: igual alguien está intentando probar experimentalmente la ida de pinza que figurará aquí debajo), y naturalmente esto no tendrá nada que ver con nada que no sean mis circunstancias mentales.

Vamos pues con las contraseñas, pos passwords, las claves: esas palabritas mágicas milenarias (herederas directas del ¡ábrete, Sésamo!) cuya eficiencia, visto lo visto (de vez en cuando ¿quién no ha recibido spam desde la dirección de un conocido?) no son todo lo seguras que deberían y podrían ser, y que deberían, si no queremos que nuestros ordenadores sean zombies al servicio del spam, o que nos roben datos bancarios, o que, poniéndonos paranoicos perdidos, un pederasta nos use de manera que si la Guardia Civil le rastrea termine dando con nosotros como cebo bien incriminado. No hay límites a las desgracias a las que nos puede conducir una mala clave.

Podemos definir la seguridad de una contraseña como la dificultad de adivinarla o dar con ella, teniendo siempre en cuenta que acertar no deja de ser una cuestión estadística. Por ejemplo yo podría intentar colarme en el correo de alguien extremadamente paranoico, teclear…

n@ABSb/J5VS8.bwu;?8Nu4o2pMFDmm

…y que diese la casualidad de que fuese precisamente esa la contraseña, porque podría tener muchísima suerte, pero la probabilidad de que si alguien hubiese elegido esa contraseña yo hubiera podido acertarla así, tecleando alegremente, es tan baja que puesta como porcentaje sería un cero, una coma, setenta y un ceros y luego por fin un seis. Dicho de otra forma y comparándolo con algo más conocido, sería tan difícil como acertar 11 veces seguidas el premio máximo de la Bonoloto o de ir a un casino, apostar siempre al número que nos diese la gana en la ruleta y acertar 47 veces seguidas, lo que desde luego sería mucho más interesante que averiguar la contraseña de nadie: si empezáramos apostando un euro y apostásemos todo lo que toca cada vez, terminaríamos con 3’9E+71 euros, que es una cantidad tan grande que implicaría ciertos problemillas frente a los cuales lo del Rey Midas sería una estupidez. Por ejemplo habría que colocar el dinero con cuidado, porque si lo fuesemos reuniendo en billetes de 500€, a partir de acertar por 31 vez en la ruleta tendríamos tal cantidad de billetes que habría que colocarlos en una montaña de 166 miles de millones de kilómetros de radio (recordemos que la Tierra tiene 6.000 kilómetros y pico de radio, y el sol 696.000) o colapsarían bajo su propio peso formando un agujero negro –sin duda el mayor desfalco del Universo–, y no cualquier agujero negro, no, porque su masa entonces, cuando quedasen aún 16 apuestas que ganar, sería mayor que el del agujero negro más grande conocido hasta la fecha (que está en la galaxia OJ 287, por si a alguien le interesa).

El despliegue de ejemplos bárbaros del párrafo anterior obedece a dos motivos. Uno, he de confesar, es que me lo paso muy bien haciendo estupideces de esas que le dejan jugar a uno con la ecuación del radio de Schwarzschild y mirando cuánto pesan los billetes de 500€ y los agujeros negros. El otro es que nos conciencemos de lo segura que es una contraseña del estilo de la del ejemplo (conviene recordar, por cierto, que una vez escrita aquí esa contraseña pierde toda seguridad). Quizá hubiera bastado decir que hay programas de software a la venta capaces de destripar 2.800.000.000 contraseñas por segundo, pero que aún así ante lo grande que es ese número –si fuese dinero agrupado en billetes de 500 no daría para un agujero negro*, pero sí para formar una montaña de 6 toneladas y pico de dinero– haría falta que ese programa estuviese funcionando más o menos un tiempo de 6E+44 veces la edad del universo para que diese con esa clave.

Es decir, que lo he escrito por regodearme en las cifras y sobre todo para que contemplemos las magnitudes y las contraseñas a través de los ojos del criptógrafo: 2.800.000.000 no es mucho, y por poner otro ejemplo…

^U9NDVjM.T8d6aAVjyP!xD!xGtf6H’

…también es una buena contraseña.

¿Qué tienen esas contraseñas para ser tan buenas? Dos cosas: son complicadas, y son aleatorias.

Son complicadas por dos razones: porque son elementos de un conjunto grande, y porque son aleatorias.

Son razones igualmente importantes: la primera delimita el espacio del que forma parte nuestra contraseña, el espacio en el que quien quiera descifrarla tendrá que adentrarse. No son números, ni letras: son números, letras y caracteres especiales. En lugar de dígitos, que hay 10 distintos, o de letras, que hay 54 diferentes entre mayúsculas y minúsculas, tiramos de los 255 caracteres del ordenador), y porque es una lista larga. Más fácil sería para quien quiera descubrir nuestra contraseña que hubiésemos elegido en lugar de esa cadena de caracteres un número de 9 cifras: podría probarlos todos, con el software disponible a día de hoy, en menos de cuatro décimas de segundo. O que hubiésemos elegido una palabra de, digamos, nueve letras minúsculas de largo: le hubiera llevado tres cuartos de hora recorrer todas las combinaciones de 9 letras.

El primer corolario que podemos formular, y que será el fácil de cumplir, pues, a la hora de pensar en construir una contraseña segura, es que debe partir de un conjunto amplio de elementos y combinarlos, por ejemplo incluyendo letras, números y símbolos, y que cuanto más larga sea más segura resultará.

La segunda razón por la que esas contraseñas de letras, números y símbolos son buenas era, decíamos, porque son aleatorias: al ser aleatorias, quien vaya a intentar descubrirlas no puede buscar patrones, no puede probar a introducir el nombre del gatito que tuvimos cuando éramos pequeños o probar a introducir por ahí la fecha de cumpleaños de nuestro ficus. Eso le obliga a recurrir al análisis bruto, y ahí es donde le perdemos en el reino de las cifras tremebundas.

Así que el segundo corolario, que es el que será difícil de cumplir, es que la contraseña debe ser todo lo aleatoria que sea posible. Esto nos conduce a dos problemas. El primero es que, en primer lugar, nosotros, los seres humanos, no somos nada buenos con las cosas aleatorias. Vemos una cadena de números como 77767 y pensamos “uy, qué poco aleatoria”. Nos ponemos a aporrear el teclado y damos casi siempre al mismo conjunto de teclas. Y para empeorar las cosas, tampoco tenemos a mano muchas formas de generar aleatoriedad, porque no solemos ir por ahí paseándonos con dados o barajas (o, bueno, ruletas o bombos de la Bonoloto). Los ordenadores, la herramienta ominpresente tras toda esta discusión, tampoco es muy buena generando azar, porque no sabe. Menos mal que hay programadores buenos, que hacen programas que generan datos aleatorios (en seguida vemos uno, en el párrafo siguiente) a partir de cifras más o menos aleatorias a las que el ordenador puede acceder (por ejemplo, puede mirar qué hora es y quedarse con el último decimal de precisión al que llegue) y los mezclan con entropía que reciben de nosotros, por ejemplo haciéndonos mover el ratón por la pantalla y usando nuestros gestos para extraer de ellos más información aleatoria. Y el segundo problema es que a ver quién es el listo que recuerda una contraseña así.

Precisamente para resolver esos problemas se inventaron los programas de gestión de claves, como el KeePass. Añades una entrada por cada contraseña que quieres recordar diciendo de qué es y con qué usuario entras, y él te genera claves complicadas según los parámetros que le digas de longitud y tipo de símbolos (de ahí, de hecho, han salido las que van como ejemplo en esta entrada). Luego te lo guarda todo en una base de datos que cifra con una contraseña única de forma que sea seguro enviártela por correo, llevarlo encima en un pendrive o incluso ponerla en algún lugar al que puedas acceder desde cualquier ordenador, como por ejemplo un espacio de almacenamiento en red, un Dropbox o algo así. El único problema que tiene este método, que es el que yo uso, es que no elimina el problema, lo simplifica, pues el KeePass, donde guardamos todas nuestras claves complicadas, debería estar atrincherado tras un buena clave.

Podemos entonces hacer dos cosas: o bien nos aprendemos una cadena larga de caracteres alfanuméricos, o bien retomamos el corolario 1 y le damos otra vuelta: ¿no podemos encontrar un conjunto de elementos que tenga todavía más de 255, y que nos resulten sencillos de recordar? Y lo tenemos, por ejemplo en el diccionario. El de la RAE contiene del orden de 100.000 palabras. Consideremos las largas, las que tengan más de 4 o 5 letras, y digamos que eso nos deja con unas 20.000 palabras.

Eso significa que elegir de entre todas las combinaciones de 2 palabras largas es 4 veces más difícil que elegir entre todas las combinaciones de números de 8 cifras… si uno sabe qué está buscando, claro. Si cree que son letras sería al menos tan difícil como buscar entre todas las combinaciones de tantas letras como sumen las de nuestras dos palabras. Si elegimos 3 palabras ya hay 8 billones de combinaciones: si el software supiera lo que busca tardaría 50 minutos. Si además metemos por medio números y caracteres especiales, se le complica más todavía el negocio. Si elegimos 4 palabras, el software tardaría casi dos años en buscar todas sus combinaciones. Con hacer eso y cambiar cada año de contraseña estaremos virtualmente a salvo. Si nos da pereza siempre podemos añadir otra palabra a la lista, convertir la lista de posibles combinaciones en una lista de 3’3E+21 elementos y entonces la maquinita de marrás necesitaría unos 18 milenios de media para acertar nuestra contraseña.

Así que una buena forma de construir contraseñas es mezclando palabras elegidas al azar (si tiramos de frases con sentido le hacemos la vida más fácil a quien intente destriparnos la clave) con símbolos y números. Por ejemplo, 1$Cabildo$Horreo$Empanada$Sesion$Destacar hubiera sido una contraseña estupenda de no estar escrita aquí y perder así toda aleatoriedad.

Dicho esto, en el próximo capítulo ya puedo ponerme a hablar de criptografía contemporánea sin que nadie se extrañe cuando escuche hablar de contraseñas que son frases: eso es así porque las palabras nos resultan fáciles de recordar, y por eso la gente que se empeña en escribir cosas que sean difíciles de descifrar las emplea tan habitualmente como contraseña que las han convertido en costumbre.

Como ejercicio macabro de hoy propondría que alguien repasase mis cifras, a ver si he metido la pata por muchos órdenes de magnitud en los ejemplos.

Y como buen consejo de matemático, os recomendaría usar un buen gestor de contraseñas y una clave maestra bien segura.

__________
* A menos que nos diese por apretarlo hasta que fuese diez billones de veces más pequeño que un protón, en cuyo caso tendríamos un bonito y diminuto agujero negro, claro. A la hora de hacer agujeros negros, todo es ponerse a apretar lo suficiente.

1 comentario más...

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.

    2 comentarios más...

    criptografía para todos 1: un poco de historia, ¡Dyh Fhvdu!

    por David, may.20, 2011 | criptografía

    INDICE:

  • 0. Una introducción al hilo del 15M
  • 1. un poco de historia, ¡Dyh Fhvdu!
  • 2. cuadernos de clave única
  • Disclaimer: vamos a comenzar con un pequeño párrafo de convenciones: igual que cuando se habla de Relatividad todos los ejemplos suelen hacerse con trenes (por razones históricas: cuando Einstein desarrolló la Relatividad, el medio de transporte más rápido y común era el tren), es común en criptografía dar nombres a los personajes de los ejemplos. En lugar de llamarles A, B, C y D, por ejemplo, se les llama Alicia, Bernardo, Clara y Diego (u otros nombres que empiecen por esas letras). Dicho eso, la criptografía nace por la necesidad que tiene Alicia de hacerle saber algo a Bernardo enviándole el mensaje, pero teme que Clara pueda interceptarlo por el camino y leerlo, y no quiere que eso suceda. Quizá Clara trabaje para la STASI o sea muy cotilla, es lo de menos ahora. Otra convención: vamos a ignorar la letra Ñ. Se puede incluir sin que cambie mucho lo que sigue, pero me complica la vida en el ejemplo final, y además normalmente se la suele ignorar por razones históricas: casi todos los criptosistemas clásicos fueron creados y usados por gente que no usaba nuestra letra más pizpireta, así que las más de las veces, cuando se exponen ejemplos de ese tipo –como voy a hacer yo– se la suele reemplazar por una N o, si se quiere, por NH o algo por el estilo.

    Un buen día Clara, que trabaja administradora de sistemas de la empresa en la que trabaja Bernardo, decide leer los correos de este, por que se aburre, y además porque es una mujer un tanto enfermiza cuyos flirteos Bernardo ignora con toda la fuerza que le da la repulsión. Aunque a día de hoy eso de leer correos ajenos es bastante ilegal, no iba a ser la primera administradora de sistemas que conozco que se entretiene leyendo correos ajenos (apuntemos eso como “razón cotidiana para encriptar nuestros correos”). Bernardo, que sospecha que Clara está leyendo lo que escribe y recibe porque Clara es, además, tan torpe como aquel administrador de sistemas que conocí, ha hablado con Alicia del tema y han decidido cifrar de una manera rudimentaria lo que se escriben, de modo que el texto que lee Clara es este:

    XZXJMXAXBPQXKLZEBBKPLI

    Clara frunce el ceño, contrariada, y dedica unos segundos a la pataleta. Pero luego se pone a mirar todas esas letras raras, pensando qué puede sacar en claro. Observa que de las 12 letras diferentes que se usan en ese mensaje de 22 letras de largo hay unas que salen más que otras: la X sale 4 veces, la B sale 3, y luego el resto de letras salen 2 veces o no se repiten.

    Clara se ha fijado, además, en que el español, que es su idioma y en el que se comunican Alicia y Bernardo, hay letras que utilizamos más que otras: por ejemplo, en mi entrada anterior, que tiene 6313 letras (quitando símbolos y eñes, que cuento como enes), hay letras que se repiten más que otras. Esto es una característica de nuestro idioma: hay más letras que usan la letra e que palabras que usan la W, por ejemplo, de manera que en mi correo anterior una de cada cuatro letras es una E (el 13’79% de las veces) o una A (11’27%). El 50% de las letras son Es, As, Oes, Eses y Enes.

    Así pues Clara piensa que probablemente la X y la B sean dos de esas letras comunes (a no ser que Alicia esté enumerando una lista de la compra para una fiesta diciendo cosas como WHISKYVODKAKASLIMON). Para convertir la X en una E, debe retroceder 19 letras, o lo que es lo mismo –solo que mejor– avanzar 7 dándole la vuelta (es decir, asumiendo que después de la Z vuelve a ir la A). Entonces debe reemplazar la Z por una G, la J por una Q, etc. Realiza esa operación con todas las letras del mensaje y obtiene el siguiente texto…

    EGEQTEHEIWXERSGLIIRWSP

    …que no tiene mucho sentido. Decide probar con la A, avanzando 3 letras cada letra del mensaje original, de manera que la Z se convierte en una C, la J en una M, y el texto completo queda así:

    ACAMPADAESTANOCHEENSOL

    Y Clara ha descifrado el mensaje: Alicia y Bernardo están quedando para ir esta noche a la acampada de Sol. ¡El muy cerdo no sólo no le hace caso, encima pretende hacer que se tambaleen los incipientes cimientos de la sociedad totalitaria que se avecina y en la que Clara, intuye, se sentirá como pez en el agua! Clara borra sutilmente los archivos del proyecto en el que trabaja Bernardo y se va a su casa contenta y satisfecha pensando que Bernardo será despedido y ya sí que tendrá un buen motivo para dormir al raso cuando no pueda pagar el alquiler del estudio en el que vive.

    El criptosistema que han empleado Alicia y Bernardo en este ejemplo se llama César, porque era el que utilizaban los generales romanos para enviarse mensajes, y no es nada robusto: al codificar de la misma manera todas las letras y aún no teniendo en cuenta que mediante el análisis estadístico de las letras repetidas se restringen bastante las posibles soluciones, sólo hay 25 posibles mensajes candidatos a ser el original. Clara podría haberse limitado a hacerse un Excel que fuera cambiando cada letra por la siguiente y, de los 25 mensajes resultantes, leer el que tuviera sentido. ¡Qué diablos!, voy a hacerlo yo en un momentito.

    (1 minuto después)… Ya: Haciendo una tablita que nos deje convertir letras en números y números en letras, y haciendo una serie de filas que sumen un numero a otro y le resten al total 26 si nos hemos pasado de 26, estos son los 25 mensajes posibles que podrían haber sido cifrados como el mensaje que ha interceptado Clara:

    YAYKNYBYCQRYLMAFCCLQMJ
    ZBZLOZCZDRSZMNBGDDMRNK
    ACAMPADAESTANOCHEENSOL
    BDBNQBEBFTUBOPDIFFOTPM
    CECORCFCGUVCPQEJGGPUQN
    DFDPSDGDHVWDQRFKHHQVRO
    EGEQTEHEIWXERSGLIIRWSP
    FHFRUFIFJXYFSTHMJJSXTQ
    GIGSVGJGKYZGTUINKKTYUR
    HJHTWHKHLZAHUVJOLLUZVS
    IKIUXILIMABIVWKPMMVAWT
    JLJVYJMJNBCJWXLQNNWBXU
    KMKWZKNKOCDKXYMROOXCYV
    LNLXALOLPDELYZNSPPYDZW
    MOMYBMPMQEFMZAOTQQZEAX
    NPNZCNQNRFGNABPURRAFBY
    OQOADOROSGHOBCQVSSBGCZ
    PRPBEPSPTHIPCDRWTTCHDA
    QSQCFQTQUIJQDESXUUDIEB
    RTRDGRURVJKREFTYVVEJFC
    SUSEHSVSWKLSFGUZWWFKGD
    TVTFITWTXLMTGHVAXXGLHE
    UWUGJUXUYMNUHIWBYYHMIF
    VXVHKVYVZNOVIJXCZZINJG
    WYWILWZWAOPWJKYDAAJOKH

    Y ahí se termina porque el siguiente vuelve a ser XZXJMXAXBPQXKLZEBBKPLI.

    No creo que haga falta decir cuál es la única línea de toda la lista que tiene sentido, ¿verdad?

    La evolución natural de ese criptosistema consiste en codificar cada letra de manera diferente. Por ejemplo podríamos dividirlo en grupos de 4 letras, y hacer avanzar a la primera letra de cada grupo 8 posiciones, a la segunda 15, a la tercera 12 y a la cuarta 1 (y como las letras número 8, 15, 12 son la H, la O, la L y la A podríamos decir que el mensaje tiene una clave, “HOLA”, que se suma a las letras de manera que A+A=B –es decir, la primera letra mas uno es la segunda letra–, A+B=C –la primera mas la segunda es la tercera–, M+R=E –la 13 mas la 18 es la 31, y como sólo hay 26 letras volveríamos a empezar por el principio de manera que 13+18=31-26=5–, etc. Esto tiene la ventaja de complicar el análisis de Clara, porque para cada mensaje cifrado habría 25x25x25x25 = 390.625 posibles mensajes originales, de los que quizá más de uno tuviera sentido. Pero mediante el análisis estadístico y suficiente material para analizar (o bien mensajes más largos o bien varios mensajes) Clara podrá descubrir que hay letras que son más frecuentes separadas una cierta distancia y deducir la longitud de la clave, y luego analizando el mensaje por cada letra según su posición deducir la contraseña y descifrar el mensaje. No voy a poner un ejemplo de eso que ya me estoy eternizando bastante, pero si se tiene tiempo y suficiente información es algo bastante sencillo una vez se le pilla el truco y por hoy ya he escrito bastante, así que sigo otro día.

    Eso sí, pongo deberes: el primer ejercicio es descifrar qué quieren decir las dos últimas palabras del título de esta entrada. El segundo, hacer comentarios cifrados mediante el criptosistema césar.

    Como no tengo ninguna esperanza de que nadie se lea este post entero, ahora que hemos dejado el romanticismo para pasar a la casquería, y tengo esperanzas negativas de que nadie se ponga a hacer esos ejercicios, ofrezo premios. ¡Fotos del cementerio de San Justo para quien los haga! Ya sé que son lúgubres, pero es lo primero que se me ocurre así que tenga a mano, que envié unas cuantas a un concurso y me sobró un puñadito.

    6 comentarios más...

    criptografía para todos, 0: una introducción al hilo del 15M

    por David, may.18, 2011 | criptografía, día a día

    INDICE:

  • 0. Una introducción al hilo del 15M
  • 1. un poco de historia, ¡Dyh Fhvdu!
  • 2. cuadernos de clave única
  • Disclaimer: voy a escribir una serie de posts hablando de criptografía, pero me vais a perdonar que de la lata con una no-tan-pequeña introducción, contando cómo veo yo nuestro entorno, ¿vale?, aunque sólo sea por ponernos en contexto, por saber qué motivo tenemos que tener para saber algo de un tema que, las más de las veces, sólo hace pensar en la máquina Enigma y en películas de flamantes espías. Empiezo con eso.

    A veces siento (y lo que sigue es una de las razones del cambio de blog) que le debemos una disculpa a quienes están por venir, a nuestros descendientes, a los que les toque seguir en este mundo cuando nosotros se lo dejemos, presumiblemente hecho unos zorros, en el mejor de los casos como está, y en el peor, bueno, siguiendo la tendencia.

    Así que pequeños seres aún inexistentes o demasiado pequeños como para enteraros de nada: perdón, mil perdones. Perdón por este mundo superpoblado y esquilmado, perdón por las utopías muertas, perdón por haber creado corporaciones que nos esclavizaron, perdón por los retrocesos sociales y perdón por esa manifiesta inconsciencia que deduciréis cuando miréis los libros de historia (perdón si en ellos mentimos) y veáis la caída libre y nos imaginéis a todos tocando la lira mientras Roma arde.

    En realidad y hasta la redacción de estas líneas, poco pudimos hacer.

    Nuestros padres, que salieron de una dictadura, abrazaron entusiasmados una democracia que nacía con un lastre: favorece a los partidos que recogen pocos votos, pero muy localizados, y a los que acaparan más votos. Supongo que todos los partidos lo firmaron teniendo en cuenta que figurarían en uno de esos asientos de preferencia, porque por ejemplo no imagino que los comunistas (entonces, finales de los 80 y principios de los 90, aún en plena Guerra Fría, teníamos comunistas por aquí) pudieran imaginar que la gente, sin más, se iba a olvidar de ellos. Una vez pasada la decantación de partidos de las primeras décadas, el primer filtrado de los que suben y los que bajan, la cosa se ha traducido en que hay dos partidos, el PP y el PSOE, y que votar a cualquier otro es brindar al sol y tirar el voto, y es imposible que ninguno de esos dos partidos se descalabren, porque en este país siempre hay diez u once millones de votantes convencidos de cada uno de ellos. Y con eso les vale para gobernar un país de 47 millones de habitantes.

    Naturalmente, el pueblo no elige ni a los candidatos de los partidos ni a los miembros de sus listas: en el PP se elige a dedo, y en PSOE de vez en cuando se hacen unas primarias internas. En la práctica esto se traduce en una versión dual del unipartidismo en el cual un partido gobierna y el otro espera calentando banquillo a que suceda un desastre que desanime a los votantes del otro o a que la inercia desgaste al que está al mando.

    Y estar en la cima del poder, o en la cumbre anexa que está justo debajo, acomoda, aburguesa y atrae a las aves de rapiña. Antes estas aves, los corruptos, eran un estigma y un escándalo. Ahora los dos partidos mayoritarios ni siquiera se molestan en esconderlas demasiado. Eso cuando no se las aplaude.

    Mientras, tenemos un récord histórico de gente sin trabajo. No es que toda la culpa sea de los que gobiernan o de los otros, no: la culpa es de los bancos, que hace un año o dos nos llevaron a una crisis monumental, por pura avaricia. Investidos del poder que es en realidad la sangre del sistema (es decir, el dinero), los bancos se han hecho virtualmente dueños o parásitos privilegiados de todo occidente hasta tal punto que cuando se hunden ellos les siguen los gobiernos, y para evitar que se hundan los gobiernos han llegado a darles montañas de dinero que, evidentemente, han acogido la mar de contentos antes de seguir a lo suyo, que sigue siendo la avaricia.

    Casi todo el mundo está atado y bien atado por un banco: los precios de las casas subieron constantemente durante todo lo que llevamos de democracia, aprovechando así el partido gobernante de turno para hacer dinero con la construcción, y cuando no quedó dinero con el que comprar casas y empezó a faltar dinero para pagarlas, nos hundimos. Y todos tenemos el deber de, durante décadas, pagarle un buen dinero al banco por la casa en la que vivimos.

    En fin: que la situación es bastante deprimente, y entre que siguiendo los canales diseñados por el sistema para que el ciudadano actúe (que son las elecciones) no se puede conseguir más que, como dijo Julio Anguita (un político muy comunista y ya retirado) por la tele hace poco, el amo nos de permiso para elegir capataz, y que por otro lado los bancos nos tienen puesto a todos un collar, y entre que por otro lado tampoco quedan sistemas de gobierno que conozcamos y que no se hayan probado desastrosos, la situación no es solo deprimente sino que además no se ve ningún horizonte hacia el que caminar.

    Pero a todo esto ha sucedido este año una cosa espeluznante para cualquier gobierno actual y maravillosa: los países árabes, que estaban bastante peor que nosotros (torturados, por ejemplo, y pasándolas bastante más putas), se han hartado. Y mediante las herramientas de comunicación que da Internet han empezado a mostrar su rebeldía y a coordinarla, y han caído ya unos cuantos gobiernos, al otro lado del Mediterráeo, que no dejan de ser vecinos. Y en Libia el dictador más risible pero aún así cruel que ha visto el mundo, Gadafi, está haciéndole la Guerra Civil a su pueblo.

    Yo, cuando veía por la televisión las imágenes de los árabes saliendo a la calle a decir que estaban hartos y que así no pensaban seguir (y tiene su mérito, porque a veces opinaban entre disparos y tanques), la verdad, pensaba en nuestra maldita ley electoral y en nuestros políticos ineptos y sentía envidia. Y pensaba que ojalá aquí fuésemos capaces de ser como nuestros vecinos y salir a la calle a hacerle un corte de mangas a los políticos.

    Pero en eso han llegado unas elecciones municipales, que son el domingo que viene, y resulta que un buen montón de gente, mediante las mismas herramientas de comunicación que ofrece internet y que usaron los árabes (y que usamos, a diario, para perder el tiempo y entretenernos), han quedado para salir juntos a la calle a decir lo mismo que pensaba yo: este fin de semana pasado hubo manifestaciones en 50 ciudades de España, y aunque al principio los medios de comunicación les hicieron bastante poco caso se ha conseguido una cosa que yo creo que debe ser histórica: que por primera vez desde que tengo memoria, en una campaña electoral se está hablando de la gente.

    No hay mucho mérito en adivinar qué sucederá el domingo (ganará el PP en la mayoría de lugares), ni siquiera lo hay en saber qué pasará cuando lleguen, el año que viene, las elecciones generales (ganará el PP por mayoría): el mérito está en haberles logrado dar a entender a los políticos, considerados desde hace ya mucho en las encuestas como el mayor problema que vemos los españoles en nuestro país, que mucha gente está hasta las narices de ellos, de sus tejemanejes, de las docenas de implicados en casos de corrupción que pueblan sus listas electorales. De que hayan consentido que nos posean los bancos, de que mantengan una ley electoral injusta y corporativa que beneficia siempre a los mismos.

    El mérito que yo le veo a todo esto es que me siento bastante menos solo. Servir lo que se dice servir es difícil que sirva para mucho: pero basta mirar al otro lado del mar para ver que aun enfrentados a poderes mucho mas opresivos y peligrosos que los nuestros, la gente sigue teniendo ese poder de derribar gobiernos que tanto se han esforzado por estirpar.

    ¿Y por qué esta inmensa parrafada se titula “criptografía para todos”?

    Pues por el factor común de ambas situaciones, la nuestra y la de los países árabes: que las protestas se han podido organizar porque la gente ha sido libre de comunicarse entre ellos.

    ¿Y qué pasaría, me pregunto yo, si quisieran quitarnos ese poder, y cuánto va a tardar alguien con poder en suspirar por esa idea?

    Pues que tendremos que aprender cómo evitarlo.

    8 comentarios más...

    esta mañana

    por David, may.14, 2011 | día a día, el mecanismo del mundo


    Alguien se ha despertado con la alarma de cristales rotos, su sueño cancelado por ese estrépito anormal e hiriente. Esta mañana alguien dormía y cuando se ha levantado, asustado, ha descubierto el suelo bajo su ventana erizado de fragmentos de vídrio, y quizá más lejos la botella agresora, que probablemente ni se haya roto (las botellas son resistentes).

    Esta mañana Aroa paseaba a Valentín, bostezante ella y eufórico él, cuando ha visto a los dos hombres que pasaban junto a la bolsa de basura rota, y ha visto cómo uno se agachaba, agarraba la botella por el cuello y la lanzaba contra una ventana. Luego la han mirado a ella y a otra mujer que pasaba por allí, han dado media vuelta y se han marchado.

    Aroa y la otra transeúnte se han mirado, no ya no sabiendo qué hacer, sino, peor, sabiendo la inutilidad de todo acto. Sabiendo que esos tipos iban a estar en el metro, rumbo a no sé dónde, antes de que se presentase el primer policía, sabiendo que no podían retener al par de cretinos. Sabiendo que no había nada que hacer.

    Aroa ha terminado su paseo y ha vuelto a casa con unos churros para mi desayuno.

    Después ha hecho café, me ha despertado y me ha contado lo de la ventana.

    He reconocido que los churros estaban muy ricos, en voz alta.

    Sin palabras, hemos coincidido en que el mundo sería un lugar definitivamente más hermoso sin toda esa gente que lo afea. Sin toda esa gente a la que la sangre sólo le late cuando joden a alguien desde la cueva del anonimato, desde la penumbra de la impunidad.

    Esta mañana inauguro, también, este blog.

    Edit: Aroa también escribe del incidente. E incluye foto de guapo conspirador o asesino.

    1 comentario más...

    archivo

    categorías