sábado, 21 de junio de 2008

Zcbfra... que??

Hace algunos días Héctor publicó en su blog un post titulado Zb ftuvwp cvfop. Al ver el mensaje, inmediatamente intuí que se trataba de un mensaje cifrado y, casi como una desesperada obsesión, sentí la necesidad de resolverlo para poder leer el mensaje oculto.

Y mientras realizaba varios intentos por descifrarlo, varias preguntas iban pasando por mi mente. “¿Que será lo que tiene escrito? ¿Qué método habrá usado? ¿Por qué está escondido el mensaje? ¿Será que no se suponga que lo deba leer yo?” Después de un par de intentos fallidos, la frustración aumentó. “Y si, ¿es sólo texto sin sentido? Como el que yo alguna ves le escribí? No, no. Por supuesto que no, ahí está la puntuación intacta, esto si parece un mensaje oculto, no como el mío que eran sólo caracteres al azar.”

Al tercer intento logré descifrar el mensaje, le contesté algo usando el mismo cifrado, y pues, ahí debería de haber terminado la historia.

Pero algo seguía dando vueltas en mi cabeza, “Hubiera estado genial, si en verdad el mensaje fuera indescifrable. Lo que me hizo seguir tratando de descifrarlo fue el echo de que el mensaje parecía estar cifrado, y no sólo ser una cadena sin sentido de caracteres. ¿Será posible crear un texto que paresca ser un mensaje cifrado pero que, en verdad, no lo sea?”

El reto para mi fue crear entonces una cadena que pareciera codificada, pero que no lo fuera. Después de meditarlo un poco me pareció que la forma más sencilla de hacerlo, sería generar una secuencia de caracteres medio aleatorios, pero con frecuencias y posiciones relativas similares a cadenas en, por ejemplo, español. Después de generar dicha cadena bastaría con aplicar un método sencillo para codificar como ROT13 para ‘ocultar’ los caracteres.

Usando un sencillo script de perl, tomé algunas estadísticas de uno de mis posts. Medí la distribución del número de sub-oraciones por oración, de palabras por sub-oración, de número de letras por palabra, y la distribución del número de ocurrencias de cada carácter en todo el texto. Para que la forma de las oraciones y palabras fuera más parecida a la realidad, medí también las relaciones entre tamaños de palabras y letras consecutivas (cuál es la probabilidad de ver una x después de una y, etc.).

Recabados estos datos, simplemente generé caracteres, palabras, sub- y oraciones al azar siguiendo la misma distribución encontrada en mi texto. Al final yo mismo me impresioné por los resultados pues las palabras generadas realmente parecían pronunciables. Generé palabras cómo ‘eranom’, ‘lulecunodama’ e, incluso, ‘queso’!

Para darse una idea de lo que todo ésto significa comparen las siguientes cadenas
(a) kjsdhf kjadhs fkjdsahf kjashdf
(b) vabxc zeyzt gmypy auzqy scajb mvvfx htdju lzguk
(c) quesiomocb eni no scuwsi estom yxper meorolue sc
(d) dhrfvbzbpo rav ab fphjfv rfgbz lkcre zrbebyhr fp
La primera cadena (a) la generé simplemente golpeando mis manos contra el teclado, noten que no es una buena manera de generar sin sentidos; letras que aparecen cerca en el teclado tienden a aparecer cerca en la cadena. La segunda cadena (b) es generada completamente al azar (distribución uniforme), noten, por ejemplo que las palabras son impronunciables y no se parecen en nada al español. La cadena (c) fue la generada con mi método, las palabras ‘parecen’ un poco más pronunciables y las longitudes de las palabras un poco más naturales. Finalmente (d) es la obtenida aplicando ROT13 a la anterior (c).

Lo se, estoy un poco loco.

Shooting at Gare de l'Est

From Shooting at Gare de l'Est

sábado, 14 de junio de 2008

Zcbfraovi ranfg qr

Ry rqrar. Rq renabz snagrydhre chrfgbgvmnerzrf fgboln ivrsara, pr gryyrmpbadh npnwr rfvr ubzb igbenonfr, zh frabf ijwiryrfrfcb zvq crrfbaghrfr. F pv fvzne, cr rev aprm zhyncwdhry cbaqrerfvnebwvlzr yhyrphabqnzn dhrfvbzbpo rav ab fphjfv rfgbz lkcre zrbebyhr fp qcrf qribaj, ynf hnefbaryvq, r fgrerfyln y zrdhrtgvf cnpnybarangdhre zvqrengve nzrfhagn, ibf dh sxdhagvny n. Yhanogn dhrfb.

Un día tranquilo

Al fin desde hace ya prácticamente un mes (:-S), me encontré con un día tranquilo y con algo de tiempo para escribir en el blog. Y quizá una buena idea para regresar es precisamente con un resumen de lo que, en el último mes, me ha tenido ocupado.
  • Trabajo, trabajo y más trabajo. Me la he pasado programando en Prolog y tratando de desarrollar ideas para verificar que un sistema distribuido (programas de computadora que corren simultáneamente en varias computadoras, e.g. Skype, BitTorrent) cumplen ciertas propiedades que nos pueden interesar (por ejemplo que hace lo que se supone tiene que hacer).

    He estado un poco presionado, porque unas primeras ideas —aunque si funcionaron— no produjeron resultados realmente interesantes. Ahora estoy intentando nuevas ideas, pero con la presión de un deadline para el mes próximo y, por lo pronto, sin ningún resultado. Ni siquiera de los no-interesantes. :-(
  • En el lado un poco menos laboral, empecé también a llevar clases de alemán en nivel principiantes (nótese lo que me sirvieron mis 6 años de alemán en la primaria y secundaria :-P) y pues aunque siento que si voy avanzando, no me deja de costar trabajo. En algún momento discutiendo con amigos llegamos a una conclusión: “El idioma alemán no tiene reglas, sólo excepciones.”
  • Empecé también a tomar clases de Salsa, es una vez a la semana, y siento que no voy aprendiendo demasiado, pero por lo menos ya sé tres (3!) pasos/vueltas, en lugar la única que me sabía. Espero que la cosa mejore bastante. :-)
  • Y para acabarla de amolar, hace como tres semanas, María —mi pareja de Salsa— andaba en la Mensa, se cayó y se lastimó el tobillo. Por unos días anduvo hasta en muletas y con el tobillo vendado, pero afortunadamente al final no fue tan grave, luego de una semana ya andaba caminando bien de nuevo.
  • Hace un par de semanas fue cumpleaños de Alejandra, así que me la pasé también ayudando un poco en los preparativos de la fiesta y luego, lo más importante, disfrutando de los festejos mismos. El hit de la fiesta fue la piñata de Chi Chai Monchan que hicieron Ale y Max. Fotos y más fotos en las páginas de Ale y María.
  • Después de un mes de ausencia, regresó a Saarbrücken una amiga de Korea, Mia, que viene ahora también a hacer su postdoc. Me dió mucho gusto recibirla y verla de nuevo. Sin embargo fue muy triste que, apenas estando aquí tres días, se perdió Neko, su gatita que había traido de Korea. Llevamos ya casi dos semanas buscando, y aún no hay noticias de la gatita. :-(
  • Para dar la bienvenida a Mia y oficialmente estrenar (presumir) mi cocina nueva, organicé la semana pasada en mi casa una fiesta con todos los compañeros del trabajo. La fiesta estuvo tranquila, y el menú muy bueno (Chilaquiles, guacamole, frijolitos y salchichitas enchipotladas... gracias a Ale por la ayuda y dirección para preparar la comida), pero lo que les debo son fotos, ya que estaba yo tan entrado en mi papel de host, que se me olvidó casi por completo tomar fotografías. Sorry!
  • También la semana pasada empezó aquí en europa la euforia por el fútbol y la Eurocopa. Empezamos el mismo día de la fiesta viendo ganar a Portugal (tres de mis compañeros son portugueses), y luego el domingo fuimos al Congresshalle donde pasan los juegos al aire libre para ir a ver ganar también a Alemania. Fotos! No estoy muy metido en ésto del fútbol, pero cuando me dicen ‘¡relajo!’ yo inmediatamente pregunto ‘¿donde?’
  • Invariablemente todos los días me la paso también un rato perdiendo el tiempo manteniéndome al día con mis fuentes favoritas de información. Igual procuro mantenerme al día leyendo los blogs de amigos, contestando emails y mensajes en facebook. Una disculpa en general porque se que estoy demorando bastante en contestar emails, pero sí prometo que los leo todos (normalmente segundos después de que me escriben) y que tengo el firme propósito de también contestarlos todos.
  • Finalmente ahora me estoy preparando para recibir a mis papás que llegan mañana a Paris, se irán a dar una vuelta por Europa y aprovechando estarán también una semana por aquí conmigo en Saarbrücken. Tengo ya muchas ganas de verlos, y también de que vengan aquí a conocer el lugar en el que trabajo y donde vivo. :-)
  • Y, más adelantito, ¡me preparo para recibir aún a más visitas! Afortunadamente esto será luego que pase el estrés de los deadlines, viene una amiga de visita y estoy también muy pero muy emocionado de que pronto nos vamos a ver de nuevo. :-D

Esto es todo por el momento. Espero irles comentando más prontamente de lo que va aconteciendo en mi vida y, en general, a no tener tan descuidado el blog. Pero bueno, ya saben como soy, así que tampoco prometo nada. :-P