Foros:
Resuelto por tokamak. ¡Qué fiera!
Por LlamameX
Os presento a una de mis criaturas: CHE, que corresponde a las siglas de Cifrado Homofónico Evolutivo. Normalmente entendemos por homofónico un cifrado donde ampliamos el número de símbolos para compensar las desviaciones estadísticas derivadas del uso de un lenguaje. Mi idea, sin embargo, es mantener el mismo número de símbolos, pero adaptar el cifrado para compensar dichas desviaciones.
El principio es sencillo. Si ciframos un Ai como un determinado Ci, entonces, después de cifrar, cambiamos la sustitución f(Ai)=Ci por f(Ai)=Cj donde Cj es el carácter menos usado hasta el momento. De esta manera el cifrado evoluciona, tratando de igualar la frecuencia de todos los caracteres, obteniéndose la homofonía.
La adaptación será más equitativa cuanto mayor sea la cantidad de texto a cifrar, con lo que espero que sea adecuado para su uso en textos largos. El algoritmo además es perfectamente utilizable en un cifrado de lápiz y papel, puesto que no requiere calculos complejos. Para facilitar el ataque no he usado ninguna función complicada, sino simples sustituciones.
En el único punto donde he metido algo de complicación es en un tratamiento previo de la clave, que se invierte y se desordena a nivel de bits. Puede que ahí me haya pasado, pero MIMIC cayó estrepitosamente por tener la clave desprotegida y ahora me curo en salud. Obviamente CHE puede ser atacado por lemarios (mantengo el acuerdo tácito de usar texto inteligible en la clave), pero ahora será (espero) imprescindible acertar la clave entera, ya que el pretratamiento es lo suficientemente caótico para evitar convergencias.
El algoritmo en detalle
El primer paso, como ya he dicho, es proteger la clave y generar el alfabeto derivado. Dicho proceso se hace en tres pasos:
- Desordenar el alfabeto base en base a la clave.
- Proteger la clave con el alfabeto desordenado.
- Desordenar de nuevo con la clave protegida.
Estos pasos a su vez se llevan a cabo de la siguiente manera:
Desordenar el alfabeto base
El alfabeto base se desordena del mismo modo en que se hacía en MIMIC, es decir, se usa la clave como índice para ir extrayendo letras del alfabeto base, saltando tantas letras como la posición del carácter de la clave que estemos usando. Los saltos son cíclicos y si agotamos la clave volvemos a empezarla. Cuando hayamos extraído todas las letras habremos compuesto el alfabeto desordenado y habremos acabado. Por ejemplo, con la clave SANCHO haremos:
Primer carácter de la clave "S"=19. Avanzamos por el alfabeto base hasta la posición 19 obtenemos "S". Será el primer carácter del desordenado y lo extraemos del base. Ahora toca "A"=0. Avanzamos 0 y obtenemos "T" (hemos eliminado "S") la añadimos y la eliminamos del base. Siguiente carácter "N"=13 avanzamos cíclicamente 13 posiciones y llegamos a la posición 2, es decir "C". Seguimos hasta obtener:
STCFN;XYKÑZPOQHL,:IJRWMDV_AGEUB.
Proteger la clave
Dado que este desorden es bastante vulnerable, vamos a aplicar otro pero con una clave modificada. Los pasos son:
- Invertir la clave: SANCHO pasa a OHCNAS
- Convertir la clave a cadena de bits (5 por carácter) pero usando la representación del alfabeto desordenado :OHCNAS pasa a 011000111000010001001101000000
- Obtenemos un número de corte de la cadena multiplicando 17 por el valor en el alfabeto desordenado del último carácter de la clave y haciéndolo módulo la longitud de la cadena de bits. En este caso (17*12) mod 30 = 24.
- Cortamos la cadena de bits por ese punto y trasponemos ambos trozos: 011000111000010001001101000000 pasa a 000000011000111000010001001101
- Obtenemos la representación de la clave protegida reconvirtiendo bits a carácter por el alfabeto desordenado: 000000011000111000010001001101 pasa a SXYTCQ
Obtener el nuevo alfabeto desordenado
Usamos la nueva clave obtenida para desordenar una vez más el alfabeto ya desordenado (usamos el mismo sistema). Obtenemos:
JOYBTMHQ,Z:KXW.NPREAU_CSLG;ÑVDIF
Cuerpo del cifrado
Como ya he dicho, aunque el pretratamiento de la clave es complejo, el cuerpo del cifrado en sí es sencillo. Empezamos con una sustitución sencilla y vamos haciendo evolucionar el alfabeto desordenado.
Usamos como texto claro :
EN_UN_LUGAR_DE_LA_MANCHA
Tomamos el primer carácter "E" y lo sustituimos por "T" (posición 4 del alfabeto desordenado). A continuación sumamos 1 al contador de "T"s y buscamos el caracter menos usado (obviamente ahora todos estan a cero, salvo la "T"). El primero que encontramos con valor mínimo es la "J". Así pues intercambiamos "T" y "J" en el alfabeto desordenado obteniendo:
TOYBJMHQ,Z:KXW.NPREAU_CSLG;ÑVDIF
Repetimos el proceso para la "N" que cambiamos por "W". El carácter escogido como menos usado en el cifrado ahora es "T", por lo que los intercambiamos y obtenemos
WOYBJMHQ,Z:KXT.NPREAU_CSLG;ÑVDIF
Al final del proceso habremos obtenido el cifrado:
TWÑ_TWKÑHHETBJEWWJXX_YQQ
El descifrado no tiene demasiado secreto. Empezamos haciendo el mismo pretratamiento a la clave y alfabeto desordenado y deshacemos las sustituciones. Las alteraciones del alfabeto las haremos en base a los carácteres del cifrado que vamos tratando.
Si miramos las estadísticas de aparición, en un texto (http://llamamex.nixiweb.com/che/turing.txt) cifrado con la clave SANCHO (http://llamamex.nixiweb.com/che/turing_cifrado.txt) con unos 16.000 caracteres obtengo:
S [477] T [559] ; [401] . [421] C [425] H [538] N [544] K [565] U [497] _ [416] M [641] V [499] W [638] A [567] Q [756] F [609] G [517] I [602] E [632] R [460] Ñ [373] J [621] D [458] B [563] , [455] X [539] : [325] P [361] Y [474] O [397] L [493] Z [532]
Que para la simplicidad del sistema de igualado de frecuencias encuentro muy efectivo
Reto
El reto consiste en descifrar el siguiente cifrado:
http://llamamex.nixiweb.com/che/reto_cifrado.txt
Para que podáis jugar he subido una versión online a:
http://llamamex.nixiweb.com/che
Espero que os resulte tan divertido romperlo como a mí crearlo.

Mala pinta...
..tiene muy mala pinta... para nosotros claro, no para tí, que disfrutarás viéndonos sufrir. Bueno, empezaré a afilar la guadaña y a ver si encuentro por dónde clavársela a la criatura ésta, aunque va a ser difícil
¡La leche!
Homofonía de verdad. La frecuencia menor es 401, y la mayor 641. No hará falta preocuparse por las frecuencias de las letras en el idioma.
¡Me encanta! es justo el tipo
¡Me encanta! es justo el tipo de cifrados que me gustan: un algoritmo sencillísimo generendo una elevada entropía, si no acabamos encontrando alguna debilidad podría ser un método práctico para cifrar en serio. Me pongo a implementarlo ya mismo.
Una pregunta rapidita: cuando
Una pregunta rapidita: cuando vamos a desordenar el alfabeto base por segunda vez los índices de la clave, que usamos para extraer caracteres del primer alfabeto modificado, son referidos al alfabeto base, A=0, B=1 ...¿o se refieren al modificado?
Nada nada, ya está: se
Nada nada, ya está: se refieren al base, ya me sale bien.
partiendo del alfabeto J O
partiendo del alfabeto J O Y B T M H Q , Z : K X W . N P R E A U _ C S L G ; Ñ V D I F tengo una pequeña discrepancia con el cifrado de ejemplo, no acabo de detectar donde está el fallo, yo obtengo paso a paso, acumulados, alfabeto y cifrado:
El problema tiene que estar en el tratamiento de los acumulados, permuto los caracteres, pero no el acumulado correspondiente, no sé como debe tratarse realmente...
Implementando
En cuanto termine de implementarlo te digo lo que obtengo, y buscamos la diferencia, si la hay.
Si, es que en este paso
Si, es que en este paso
Se han permutado la O y la W, y el índice con acumulado menor corresponde a la O, así que no sé la que estoy armando..
Eficiencia vs eficacia
La verdad es que para presentaros rápido la implementación online no puse demasiado énfasis en la eficiencia y no reordeno la tabla de acumulados, cosa que a la larga me ahorraría pasos de algoritmo. Dado que sólo me interesa el mínimo la recorro entera cada vez. Para los volúmenes que manejamos tampoco implica un incremento del tiempo de ejecución notable, así que lo dejé así.
Respecto a las discrepancias, empezamos igual y a partir de un punto parece que hay algún problema en el primer carácter. Me lo miro no sea que sea cosa mía.
Estoy metiendo la pata,
Estoy metiendo la pata, seguro, pero no sé donde andará el problema en la línea discrepante:
00 00 00 00 01 00 01 00 00 00 00 01 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 02 00 00 00 00
H O Y B J M Ñ Q , Z : W X _ . N P R E A U K C S L G ; T V D I F
T W Ñ _ T W K Ñ H
E N _ U N _ L U G
Aquí tengo que codificar la A, que se corresponde en el alfabeto de arriba con la H, que añado al cifrado incrementando el contador de la H, permutándola después por el caracter de valor más bajo, que se corresponde con la O, dejando en la primera posición el contador de la H. Y así quedan los acumulados, el alfabeto y el cifrado:
01 00 00 00 01 00 01 00 00 00 00 01 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 02 00 00 00 00
O H Y B J M Ñ Q , Z : W X _ . N P R E A U K C S L G ; T V D I F
T W Ñ _ T W K Ñ H H
E N _ U N _ L U G A
Primeros resultados
Creo que he encontrado una vía de ataque, pero todavía tengo que desarrollarla. Expongo aquí lo que he conseguido hasta ahora.
Este ataque, si funciona, permitiría obtener el texto cifrado sin necesidad de conocer la clave.
En lo primero que tenenos que fijarnos es en que las estadísticas se llevan a cabo con las letras del criptograma, pero referidas al alfabeto ordenado. La búsqueda del carácter con menos frecuencia para intercambiarlo por el carácter usado también se hace sobre el alfabeto ordenado, aunque la posición luego se refiere al alfabeto desordenado. Teniendo en cuenta todo esto, podemos extraer algunas letras del texto en claro.
Veamos el siguiente caso, en una letra cualquiera del texto claro que va a ser cifrada. Tenemos un alfabeto desordenado, una letra del texto en claro, y queremos sustituirla por la correspondiente letra del alfabeto desordenado. Siguiendo el ejemplo dado en el reto, sea "E" la letra a cifrar, y sea "T" la letra correspondiente por la que se va a sustituir. En el criptograma aparecerá esta letra "T". Ahora, se suma 1 al contador de la letra "T", letra que se corresponderá con el alfabeto ordenado. Lo siguiente es el intercambio. Buscando la letra menos frecuente, vemos que es la "A", referida al alfabeto ordenado. Como su posición es la 0, intercambiaremos la letra del alfabeto desordenado que ocupe la posición 0 por la letra "T", que es la letra que ocupa la posición 4 (la "E"). Esto se repite para todas las letras del texto claro. Bien, pues ahora, tenemos la letra "T" en la posición 0. Si la siguiente letra es cualquier otra distinta de la "A", como la "A" era antes la letra de menor frecuencia, y no hemos incrementado su contador porque estamos con una letra distinta de la "A", seguirá siendo la que se intercambie por la otra letra. En el ejemplo, teníamos la letra del texto claro "N", que se corresponde con al "W" del alfabeto desordenado. Como se intercambia con la letra de menos frecuencia, que sigue siendo la "A", ahora la letra "W" estará en la posición 0. Ahora viene lo interesante: ¿qué ocurre si nos encontramos en el texto claro con la letra de menos frecuencia?. Pues resulta que en el criptograma aparecerá la letra que hubiera en la posición de esta letra, referida, como hemos visto, al alfabeto ordenado. Es decir, si después de la "N" viniera la "A", como la letra que hay en la posición 0 es la "W", en el criptograma aparecerá esta "W". Así, pues, si supiéramos en el criptograma que la letra "W" que acaba de aparecer está en la posición 0, sabríamos que la letra del texto claro sería la "A", es decir, que tendríamos una letra del texto claro.
Más interesante aún: a partir del criptograma, podemos hacer un seguimiento de las letras que se colocan en las posiciones de las letras de menor frecuencia. El procedimiento es simple. Sabemos que al comienzo del criptograma todas las frecuencias valen 0. Sabemos que se incrementan los contadores de las letras del criptograma cada vez que aparece una de ellas, y sabemos que estos contadores se refieren a letras del alfabeto ordenado. Así, pues, a partir del criptograma podemos hacer un seguimiento de la evolución de las frecuencias de las letras. Pero esto no es todo. Puesto que sabemos en todo momento las frecuencias de las letras, sabemos en todo momento cuál es la letra que se colocará en la letra de menor frecuencia. Es decir, que al comienzo del criptograma, sabemos que la letra "T" se colocará, en el alfabeto desordenado, en la posición 0, porque sabemos que ésa es la letra de menor frecuencia elegida. Lo que no podemos saber con este método es a dónde irá a parar la letra que había antes del intercambio en la posición de menos frecuencia. Así, pues, a medida que vamos avanzando por el criptograma, vamos determinando qué posición ocupan algunas letras dentro del alfabeto desordenado. Pues bien, si resulta que nos encontramos en el criptograma con una letra que está en una de estas posiciones de menor frecuencia, podemos determinar la letra del texto claro que le corresponde sin más que leer la letra que ocupa la misma posición en el alfabeto ordenado. Así, en el ejemplo, si después de la letra "W" nos encontramos con otra "W", puesto que sabemos que la "W" está en la posición 0, sabemos que esta segunda "W" se corresponde con la letra del texto claro "A".
Este método no permite obtener muchos caracteres (relativamente hablando), aunque puede dar pistas sobre el texto. Haciendo esto sobre el reto, me he encontrado con cosas interesantes. Por ejemplo, me he encontrado con la cadena "F ER A AEREA" en la posición 25714. Esta cadena es claramente "FUERZA_AEREA". Me he encontrado también muchas cadenas "ERRA", que con lo de "FUERZA_AEREA", lleva a pensar en la palabra "GUERRA". Otra cadena curiosa que me encontré un poco antes de la de "FUERZA_AEREA" es " F AFFE", que dado el contexto de guerra, hace pensar en la "LUFTWAFFE". Así, pues, parece que el texto original del reto va de la Segunda Guerra Mundial. Pensé en que quizá sería un artículo de la serie ENIGMA, pero no he conseguido cuadrar el texto. Tampoco he hecho una búsqueda exhaustiva. Dejo un enlace con los caracteres encontrados del texto en claro: https://sites.google.com/site/sqrmatrix/CHE_descifrado_parcial.txt?attre.... Espero que no tenga errores. El método lo probé con el ejemplo de 16KB que dejó LlamameX, y los caracteres encontrados a partir del criptograma coincidían con los del texto claro, por lo que deduje que el método funcionaba bien.
Ahora estoy trabajando en un ataque que me permita obtener un criptograma codificado con un único alfabeto a partir del reto. Si lo consigo, lo único que habría que hacer sería analizar las estadísticas de los caracteres. Por otro lado, los caracteres del texto claro hallados antes me darán directamente las codificaciones de algunos caracteres de este nuevo criptograma. Al intentar hacer este segundo método, me he encontrado con algún que otro obstáculo (en mi imaginación el método era simple, pero como de costumbre, lo que funciona muy bien en mi imaginación normalmente no funciona tan bien en la realidad :) ). Bueno, trabajaré sobre él cuando pueda, aunque entre semana no voy a poder trabajar mucho, sólo puedo dedicar algo de tiempo los fines de semana y festivos.
Espero que esto pueda ayudar a los demás a encontrar un ataque efectivo que permita obtener el texto original. Lo curioso de esto es que la clave no la hemos mencionado, y en el método en que estoy trabajando, si funciona, la clave no se utiliza.
Sería una lástima que no lo acabases
Me encantaría ver tu ataque en funcionamiento aunque ya lo haya destrozado Tokamak y sus infatigables AGs. Creo que tienes una vía muy válida y que sería muy didáctico verla en funcionamiento. Ya se que el interés cae en picado, pero sería una lástima perdérnoslo.
Intentaré acabarlo, aunque
Intentaré acabarlo, aunque todavía no estoy seguro de que funcione. Como ya dije, en mi imaginación funciona muy bien, pero cuando me puse a implementarlo, me encontré con algunas cosas que no cuadraban. No sé si es que al implementarlo se me ha pasado algo de lo que pensé, o si pensé algo que no es correcto en la realidad. Bueno, el próximo fin de semana a ver si le dedico algo de tiempo
Sí, acábalo
Si puedes, y tienes tiempo, es bueno que lo acabes. Desde el punto de vista didactico aportaría mucho al tema, ya que el AG es una forma un tanto "ciega" de atacar el problema. Además puedes ponerle de corolario la obtención de la clave, que la hemos ido driblando todos.
El tema de la clave lo veo un
El tema de la clave lo veo un poco complicado. De momento no veo cómo atacarla, pero pensaré en ello. De todas formas, quizá se te ocurra un AG para atacarla, lo cual sería igualmente interesante. Creo que ahora el reto es descubrir la clave :)
YO MATÉ AL CHE
Es este texto sobre enigma:
http://es.wikipedia.org/wiki/Enigma_(m%C3%A1quina)
Lo he roto con mi parcheado AG; este es el resultado que me entregó de los primeros 256 caracteres:
ZNI;MA_PRB_PT_NOM.RP_DP_UNC_MEQUINF_QUP_DISLONIG_DP_UN_MPCHNISMO_DP_CIVRJDO_ROAAPORIO:_QUK_LÑRMIPIA_USARTA_PAN
PO_LARA_CIVRAR_COMO_LARA_DWSCIVRAR_MXNSAEES,_HARIOS_DE_SUS_MODETOS_YUERON_MUF_UPITIGADOS_EN_EUROLA_DESDE_I
NICIOS_DE_TOS_AZOS_,_SU_BAMA_SE_DE.E_A_W
Enigma era el nombre de una máquina...
Luego os daré detalles, estoy en pleno viaje...
Curiosidad y duda
No sé si lo habrán notado, pero en el cifrado de ejemplo se dan varios pares de letras repetidas. Un mínimo análisis muestra que tiene que ver con las apariciones de la letra A:
Por supuesto que en textos más largos no se da, aunque sí aparecen asociados los dobles caracteres a la misma letra durante un fragmento de texto, para luego pasar a otra y así. Por ej.:
OS_PRESENTO_A_UNA_DE_MIS_CRIATURAS:_CHE,_QUE_CORRESPONDE_A_LAS_SIGLAS_DE_CIFRADO_HOMOFONIC NAÑPETOEWUJANJ_EANBOAX,TOOPXEWJOX,ITTQBDIRWQDDUJUWXÑD_YUQOUKQWOQPHUKOW_YOOQMJUWÑYTWATQADOO ________________________^^_________^^_______^^__________________________^^______________^^ _ _ _ _ IEn el primer caso (texto corto), siempre la última letra usada para cifrar queda en el primer lugar del alfabeto desordenado. Por eso, la A toma el mismo caracter para cifrar que el anterior (porque busca la primera letra del alfabeto desordenado). Sin embargo, eso debería suceder si no se repiten letras usadas para cifrar (los contadores están en cero), pero no es así. Por lo tanto, veo que hay una parte del algoritmo que no entiendo... A ver, la explicación dice:
A continuación sumamos 1 al contador de "T"s y buscamos el caracter menos usado (obviamente ahora todos estan a cero, salvo la "T"). El primero que encontramos con valor mínimo es la "J". Así pues intercambiamos "T" y "J" en el alfabeto desordenado obteniendo:
TOYBJMHQ,Z:KXW.NPREAU_CSLG;ÑVDIF
Repetimos el proceso para la "N" que cambiamos por "W". El carácter escogido como menos usado en el cifrado ahora es "T", por lo que los intercambiamos y obtenemos
¿Cómo que es T? ¿El contador de T no está en 1?
Me falta resolver este punto para terminar de implementarlo, y ver si encuentro una debilidad asociada a las letras repetidas en el cifrado.
Gracias
Hola, Lucho.krp.
Hola, Lucho.krp.
En primer lugar, como habrás podido comprobar en los siguientes posts, tu observación es acertada y de no haberse resuelto el reto ya, quizá habías podido hacer avances interesantes, o incluso resolverlo.
Por otro lado, respecto a la pregunta que haces, las estadísticas se hacen con las letras del alfabeto desordenado, pero los contadores están en las letras del alfabeto ordenado, y luego, de nuevo, la letra que se elige es la del alfabeto desordenado. Al buscar la letra menos frecuente, buscamos por los contadores, que están asociados a las letras del alfabeto ordenado. En este caso, nos encontramos con la "A". Su posición es la 0, por lo que buscamos la letra en la posición 0 del alfabeto desordenado, y nos encontramos así con la letra "T".
Espero que la explicación sea entendible.
...Y como maté al che
Como decía el reto se corresponde con el texto de este artículo de Wikipedia sobre la máquina enigma
Aunque este cifrado utiliza una clave para desordenar el alfabeto inicial, en realidad podríamos plantear un ataque utilizando permutaciones de alfabetos directamente, prescindiendo completamente de la clave, siempre y cuando sea posible evolucionar hacia la solución, mediante pequeñas variaciones del alfabeto.
En cuanto obtuve una versión, no sé aún si completamente adecuada a las especificaciones del creador, comprobé como se pueden hacer converger el alfabeto inicial y la solución; véase el ejemplo a partir del cifrado TWÑ_TWKÑHHETBJEWOJXW_YQX, y cómo pequeños cambios del alfabeto modificado nos van aproximando hacia la solución:
Estaba aguardando a que Llamamex me dijese donde estaba la discrepancia entre su implementación del cifrario y la mía, pero como, de todas formas, y a pesar de la pequeña variación, se seguía manteniendo una cierta legibilidad en los descifrados de prueba, decidí implementar con ella un algoritmo genético.
Como los que utilizo habitualmente emplea una función de aptitud basada en el error cuadrático entre las frecuencias de monogramas, bigramas y trigramas del texto en claro generado por cada permutación de alfabeto analizado y las frecuencias de monogramas, bigramas y trigramas de un texto de referencia (Memorias de un ingeniero, de Alfredo Hoces -Fuckowski-)
Los alfabetos, de longitud fija, constituyen los cromosomas del AG, generándose automáticamente una población de un determinado número de individuos al comienzo del programa. Para este problema empleé un operador de cruce especial, el Order Crossover, que está basado en el orden en el que aparecen los genes (las letras). Para crear un descendiente, tomo un conjunto de genes de un cromosoma (alfabeto) padre, y el resto de las letras se copian con el mismo orden en que aparecen en el cromosoma del otro progenitor.
Este tipo de operador es el mismo que utilizo en un AG que criptoanaliza claves de substitución, donde se permutan alfabetos. Es decir: ni siquiera tuve que prepararlo.
Por su parte, el operador de mutación se limita a permutar aleatoriamente la posición de dos caracteres dentro de un cromosoma.
Luego, en cada paso del algoritmo, obtenemos el coste de la población, para lo cual generamos el texto en claro de los primeros 256 caracteres del cifrado, mediante el cromosoma (alfabeto) de cada individuo y calculamos la frecuencia de sus caracteres, bigramas, y trigramas y se obtiene el error cuadrático con respecto al texto de referencia.
Como de costumbre, los bigramas y trigramas del texto en claro se buscan en vectores ordenados utilizando una búsqueda binaria, pues de otra manera el tiempo empleado sería excesivo.
En fin, tuve que correr un poco, porque ya había cierto implacable sabueso detrás de la solución, desmantelando el tinglado a una velocidad que daba mucho miedo. Desde el móvil hice los cambios en el ordenador de casa, y, cosa rara, me dio la solución al primer intento.
Como de costumbre, tus AGs me
Como de costumbre, tus AGs me sorprenden y me impresionan. Enhorabuena
Casi te lo puse a huevo
Más que tener un ataque a medida del cifrado parece que te puse un cifrado a medida de tu ataque, la leche.
Imaginé que al ser variable la fuente tus AGs no podrían adaptarse cuando es justamente lo que hacen. Craso error que pago siendo arrastrado por el barro XD.
De esto vas a tener que escribir un tutorial, que nunca he conseguido pasar del concepto a una implementación efectiva.
De nuevo enhorabuena!
Ah, y no os penseis que no quedan monstruitos en la incubadora. Tengo 3 proyectos más gestándose, pero voy a subirles la dosis de esteroides antes de sacar otro.
Je je, no es por tirarme el
Je je, no es por tirarme el moco, pero en cuanto lo vi, juro que supe que el AG que tenía para fulminar cifrados de substitución se lo comía con patatas. Pues sí, pensaré lo del tutorial..
Fua, sois la leche
Tres vias de ataque y despedazado en un par de días. Lo de las As ya lo había visto y lo dejé como ayuda. Lo que no esperaba era la convergencia, de hecho creí haberla evitado ya que me daban pánico los AGs de Tokamak (por un buen motivo). Y Sqrmatrix anduvo muuuy cerca.
La verdad es que parece que vamos a tener que subir el listón XD. Aligual.
Enhorabuena a todos, que esto ya parecen mas sprints que carreras de fondo!
Perplejo
Perplejo y admirado estoy.
Mi enhorabuena
La clave
Bueno, lo que faltaba era la clave, que es: MAQUINA_ENIGMA
Era previsible, la obtuve a base de tanteos, como la de MIMIC. En fin: no somos nada (y en bañador menos...)
Por tanteo
No acabo de ver como por tanteo puedes sacar la clave salvo por suene de flauta. Precisamente lo rocambolesco del tratamiento de la misma era para evitar ir probando letra a letra y obtener resultados parciales válidos. (también intentaba evitar que fuera deducible ante una posible caída del alfabeto) ¿Puedes explicar como lo has hecho?, más que nada para poder protegerla mejor.
Vale te lo explico:
Vale te lo explico:
Como ya estaba descifrado y sabía de que iba, y el título del artículo de wikipedia era Enigma (máquina) probé ENIGMA_MAQUINA sin éxito. Después, LA_MAQUINA_ENIGMA y nada, claro.
Luego ENIGMA, a secas, y ya por último: MAQUINA_ENIGMA
Por eso soy un genio ¿no? jajajaja
Conclusiones concluyentes
Después de estudiar muy atentamente los ataques a los últimos retos he llegado, no sin arduo esfuerzo, a las siguientes conclusiones concluyentes:
1.- el grupo de Vengadores que tenemos en Kriptópolis son realmente unos superhéroes del melón.
2.- las herramientas armamentísticas programatorias que emplean son de alta tecnología y eficacia probada.
3.- y la más importante: las mallas apretujadas del uniforme, de esas que no escapa ni un pedo, activan extraordinariamente las neuronas cerebrales gracias a una compresión inguinal uniforme en el cimbrel y las campanillas.
El problema de estas mallas
El problema de estas mallas tan apretujadas es que no nos entran ni los calzoncillos. Por eso tenemos que llevarlos por fuera
Ahora lo entiendo
Por fin he encontrado la explicación a esas marcas de frenazos que aparecían en la cara interna posterior de las mallas cuando me las traíais a lavar. Si es que todo tiene su explicación.
No te fíes
Igual es un mensaje en clave. Algún tipo de cifrado zurraspero.
Pero entonces, si corretea
Pero entonces, si corretea tanta hiperoxigenada hemoglobina por las meninges de toda la distinguida concurrencia...¿POR QUÉ NO PODEMOS CON ESE SIRTORI?
Falta conocimiento
Falta conocimiento de las costumbres espistolares, a pesar de las magníficas aportaciones que ha habido, y sobre todo falta un buen catálogo de abreviaturas al uso en esa época. Y faltan ganas de acometer la enésima transcripción del jeroglífico.
¡Qué zuz-to!
Había leído "homofóbico"....
opinar