Foros:
Brillantemente superado por LlamameX en tiempo record. ¡Enhorabuena!
Por Agustín
Debéis saber que, a la vista de la descomunal potencia de algunos atacantes a los que no quiero nombrar, pero que todos sabéis quiénes son, esta vez la cosa va en serio. Este engendro no está pensado para que os divirtáis, sino para que lloréis lágrimas de sangre, eso en el caso de que tengáis a bien prestarle un poco de atención, a pesar de -o gracias a- mis desafortunadas palabras iniciales.
Bueno, al grano. Es un cifrado diabólico -al menos a mí me lo parece- que reúne las siguientes características:
- I. La clave mide 32 caracteres, y se completa, si es necesario, por un sencillo procedimiento.
- II. El alfabeto se modifica a partir de la clave.
- III. Se cifra el texto por bloques de 32 caracteres, que previamente se desordenan a partir de una clave -distinta cada vez- y del alfabeto modificado.
- IIII. El cifrado consiste en XOR con cada carácter del bloque desordenado y los de la citada clave variable que se genera, a partir de la anterior, para cada bloque.
1. El alfabeto es el que últimamente está de moda, es decir
ABCDEFGHIJKLMNÑOPQRSTUVWXYZ_.,:;
de 32 caracteres, que puede codificarse con 5 bits
2. Hay una clave inicial que debe medir exactamente 32 caracteres. Si mide menos, se completa por un procedimiento simple que consiste en añadirle caracteres mediante la fórmula
K[i +1] = K[i] + 1
que ya se empleó en la Omelette. Es decir: Si el primer carácter es una A, el primero que se añade será una B, si el segundo es una B, el segundo que se añade será una C, etc.
Por ejemplo, si la clave es
LOS_LAMELIBRANQUIOS
(que es un tipo de molusco), la clave completa será:
LOS_LAMELIBRANQUIOSMPT.MBNFMJCSB
3. El alfabeto se modifica a partir de la clave, del siguiente modo:
a) Se obtienen las posiciones de la clave en el alfabeto base, lo que nos dará la lista:
12 16 20 28 12 01 13 05 12 09 02 19 01 14 18 22 09 16 20 13 17 21 29 13 02 14 06 13 10 03 20 02
b) Luego se ordena esta lista para obtener una secuencialización, de forma que podamos tratar con las repeticiones.
Clave ordenada 01 01 02 02 02 03 05 06 09 09 10 12 12 12 13 13 13 13 14 14 16 16 17 18 19 20 20 20 21 22 28 29 Secuencia 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
c)Ahora procedemos a desordenar el alfabeto de la siguiente manera: Tomamos la primera letra, que es, lógicamente, la A. Como el primer valor de la clave es el 12, que aparece por primera vez en la posición 11 (empezando por cero) de la secuencia, la letra A irá a la posición 11 del alfabeto
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 __ __ __ __ __ __ __ __ __ __ __ A_ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
Hay que marcar de algún modo que la posición 11 ya está ocupada. Yo lo he implementado borrando el valor 11 de la matriz de posiciones de la clave.
A continuación tomamos la B, a la que le corresponde el valor 16 de la clave, cuya primera posición en la secuencia es la 20, luego la B va a la posición 20:
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 __ __ __ __ __ __ __ __ __ __ __ A_ __ __ __ __ __ __ __ __ B_ __ __ __ __ __ __ __ __ __ __ __
y así sucesivamente, hasta que nos queda el alfabeto desordenado de esta forma:
FMKX;,HZJP.AEIGSW_NYBQTÑLCR:UODV
4. A partir de aquí ya podemos empezar a cifrar. Tenemos un flujo de entrada que es un fichero normalizado con respecto al alfabeto base. Por ejemplo este texto sobre la revolución palestina del malogrado Rodolfo Walsh, quien fue hecho desaparecer por la dictadura de Videla, :
LA_REVOLUCION_PALESTINA_POR_RODOLFO_J._WALSH_EN_ESTE_AGOSTO_DE_EN_QUE_RECRUDECE_LA_AGRESION_DE_ISRAEL_EN _MEDIO_ORIENTE_Y_EN_QUE,_CORRESPONDIENTEMENTE,_SE_MULTIPLICAN_LAS_MENTIRAS_IMPERIALISTAS_PROPAGADAS_POR_LOS _GRANDES_MONOPOLIOS_DE_LA_COMUNICACION,_RESULTA_IMPRESCINDIBLE_LEER_LO_QUE_ESCRIBIERA_ESTE_INSIGNE_Y_RECONO CIDO_PERIODISTA_Y,_MAS_QUE_ESO,_ESTE_CONSECUENTE_COMBATIENTE_REVOLUCIONARIO,_INTEGRANTE_DE_MONTONEROS,_QUE _DESAPARECIERA_EN_MARZO_DE_A_MANOS_DE_LA_DICTADURA_DE_VIDELA._ES_ESTA_LA_VERDADERA_HISTORIA,_DOCUMENTADA_A UN_CON_FUENTES_QUE,_COMO_LA_ONU,_SI_PUEDEN_SER_SOSPECHADAS_DE_PARCIALIDAD,_NO_ES_PRECISAMENTE_EN_FAVOR_D E_LA_RESISTENCIA_PALESTINA,_Y_RELATADA_POR_UN_RODOLFO_WALSH_SOBRE_EL_QUE_HOY_YA_ES_UNIVERSAL_SU_CREDIBILIDA D_Y_HONESTIDAD_INTELECTUAL,_UN_ESCRITOR_ALABADO_MUNDIALMENTE_Y_RECONOCIDO_COMO_UN_CLASICO_DE_LA_LITERATURA _POLITICA_Y_COMO_UN_EXCELSO,_PENETRANTE_E_INSUPERABLE_INVESTIGADOR._EL_PRESENTE_TRABAJO_DE_RODOLFO_WALSH_F UE_PUBLICADO_EN_EL_DIARIO_NOTICIAS,_EN_JUNIO_DE_._PUBLICAMOS_ADEMAS_LA_POLEMICA_POSTERIOR_ENTRE_WALSH_Y_EL_E NTONCES_EMBAJADOR_DEL_ESTADO_DE_ISRAEL_EN_ARGENTINA._EL_CONJUNTO_DE_ESTOS_MATERIALES_ES_REPRODUCIDO_EN_B ASE_A_LOS_CUADERNOS_DE_LA_REVISTA_JOTAPE_QUE_APARECIA_EN_LOS_Y_A_LA_EDICION_REALIZADA_POR_LA_EDITORIAL_ULTIM O_RECURSO,_EN_MAYO_DE_._
https://www.dropbox.com/s/aqx7zpjl4y6mhrw/Rodolfo-Walsh-La-revoluci%C3%B...
a) Tomamos el texto en bloques de 32 caracteres
Bloque LA_REVOLUCION_PALESTINA_POR_RODO
b) Generamos una clave nueva, a partir de la anterior, por el procedimieto ya descrito, de tomar para cada carácter, el que le sigue en el alfabeto base. Aunque esto parece excesivamente trivial, no lo es tanto, porque las posiciones de esas letras van a referirse al alfabeto modificado, y la secuencia ya no será tan simple. Eso también viene de la Omelette.
Nueva clave MPT.MBNFMJCSBÑRVJPTNQU,NCÑGNKDTC
Cuyas posiciones en el alfabeto modificado son:
Posiciones de la clave 02 10 23 11 02 21 19 01 02 09 26 16 21 24 27 32 09 10 23 19 22 29 06 19 26 24 15 19 03 31 23 26 Posiciones ordenadas 01 02 02 02 03 06 09 09 10 10 11 15 16 19 19 19 19 21 21 22 23 23 23 24 24 26 26 26 27 29 31 32 Secuencia 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
c) Mediante esta clave se desordena el primer bloque de caracteres, por el procedimiento ya descrito.
Bloque desordenado LLEURACLAERROOT__VNI_SD_OIPOPNOA
d) Se realiza XOR entre cada carácter del bloque desordenado y cada carácter de la clave, usando las posiciones de ambas en el alfabeto modificado
En nuestro caso tenemos los siguientes valores:
Bloque cifrado C_RT:VAL.;XQP.EGCT;V;Y:X;RZSAEAN
(El cifrado de este artículo está en: https://www.dropbox.com/s/0rh8jodo4sr1xy0/Cifrado-R-Walsh.txt)
Y así sucesivamente. Si el último bloque tiene menos de 32 caracteres se completa con el mismo procedimiento que se usa para completar la clave, pero con referencia al alfabeto derivado.
Por Agustín
Como véis, hay cierto tejemaneje de bytes, como en AES, pero para cada bloque es distinto, porque la clave va cambiando. Podría parecer que es un OTP porque la clave no se repite, pero tiene la debilidad de que las nuevas claves se derivan de la que introduce el usuario. Ay, que no debía señalar las debilidades. Bueno, da igual, porque ya veo a LlamameX estableciendo ecuaciones diofánticas sobre los índices y los valores, y..., bueno, ya sabéis cómo es.
El descifrado sigue el mismo procedimiento con la salvedad de que primero se realiza el XOR entre la clave y el bloque cifrado, y luego se reordena, La reordenación es muy sencilla, pues, basta con ir a los valores de la clave secuenciados, e ir tomando los caracteres que ocupan en el bloque las posiciones correpondientes.
El reto consiste en descifrar este fichero
Bueno, lo que más me preocupa es que varios de vosotros tenéis retos en marcha, y alguno más, que estábais a punto de alumbrar, como el CHE de LlamameX, Lo siento mucho, pero es época de crisis y hay que hacer méritos ante el Lado Oscuro. Por cierto, que al parecer no hay ninguna oferta de empleo en este momento. Cachis.
Os dejo ya, que oigo el retumbar de la botas de la Mengela, acercándose.
P.S.
Prometo prestar toda mi atención a vuestros monstruos, dentro de mis limitaciones, claro.
PS II
Veo que algunas listas (que se tratan como matrices) se cuentan desde 0, y otras desde 1. Ello es debido a ciertas limtaciones del lenguaje de programación empleado. Si embargo mi implementación funciona al cifrar y descifrar. Vosotros podéis modificar ese aspecto y los que haga falta.

Es el segundo principio
Es el segundo principio de la termodinámica. Al descifrar disminuye la entropía del texto, pero entonces tiene que aumentar en algún otro sitio del universo y, si no se toman precauciones, aumenta en el coco del criptoalnalista qursafo sedfifred ajdof ajjdd do fpfffffff.
Decía que me podría poner con
Decía que me podría poner con el reto de seguro el Viernes, Sábado, y Domingo, pero creo que eso no va a poder ser, porque para entonces LlamameX lo habrá roto :). ¿A que lo rompe entre hoy y mañana?
Na, si no metemos presión ni nada
Ya os vale!
Tengo bastantes caminos abiertos pero falta aún mucho por recorrer. Recordad que es un triple cifrado transposición+sustitución+pseudoOTP, lo que se viene llamando un supercifrado, asi que si bien le vamos quitando patas al taburete, aún se tiene en pie.
La "olla"
La "olla" de LlamameX ya está soltando vapor. Esto marcha.
Infosniper tiene razón
Algo le está pasando a LlamameX, tal vez no debí presentarle otro reto tan pronto después de su esfuero con el Doble XOR. Ahora está hablando de claves largas y claves cortas... y eso no es de aquí, sino del reto anterior. ¡Ay dios mío!
Aclaro la explicación.
Para el público en general:
El bloque
que procede de la desordenación, se XORea con la clave. y se convierte en
En tiempo de descifrado se procede al revés, especularmente, es decir, primero se XORea el bloque cifrado, y luego se reordena con el procedimiento explicado más arriba.
Ataque por distancias
Tengo ya la estrategia de ataque definida. Se trata ubicar en cada columna, (agrupando las filas en grupos de 32) el caracter espacio "_" (en el cifrado) con máximas repeticiones. Eso debería garantizarnos que estamos en la fila en la que la columna correspondiente es nula para el XOR con la clave. Esto finalmente nos dará una lista de 32 números de fila, las distancias entre las cuales corresponderá a la distancia entre las letras de la clave (puesto que la clave evoluciona sumando 1 al alfabeto normal, no al derivado), teniendo por tanto 32 candidatos (¡a clave original!) fácilmente comprobables.
Cuando tenga acceso a mi entorno de desarrollo (estos días estoy en el VMworld, yupi) lo implemento.
VMWorld en Fira Barcelona del 9 al 11 de Octubre
La conferencia anual VMWorld, que en su rama europea se celebra este año 2012 en Fira Barcelona del 9 al 11 de Octubre, acaba precisamente hoy, jueves. Parece -por tu expresión, yupi- que te está yendo bien, ¡me alegro! No dejes, si lo crees oportuno, de contarnos alguna anécdota del evento... siempre se aprende algo ;-)
Aprovecho para agradecerte todos tus comentarios y felicitarte -bueno; a tí, al equipo criptoanalítico habitual y a los demás participantes- por la reciente y admirable resolución del 'cifrario xor' propuesto por sqrmatrix. No puedo, ni pretendo, entenderlo todo ahora pero con el tiempo nunca se sabe porque en realidad todo está ahí muy bien explicado. De todas formas siempre me resulta muy entretenido, aunque no llegue, seguir vuestra plática o departir matemático, programático y criptoanalítico porque casi siempre aprendo algo que, de otra forma, nunca hubiera llegado siquiera a imaginar. Gracias y saludos.
¡Yupi!
Así mi criaturita vivirá un día más...
El ataque funciona pero precisa mas datos
Con el del ejemplo, obtengo la siguiente clave, que comparada con la real ya se ve que acierta bastante
No tengo resultados tan claros con la del reto, pero hay que recordar que tiene 3 veces menos texto
¿Más cifrado?
¿Necesitas más cifrado? ¿Del ejemplo o del reto?
del reto,
del ejemplo ya lo podria generar yo.
Entonces
Entonces quieres un cifrado más largo con la misma clave ¿no? Lo que necesites.
Cifrado largo
Está cifrado con la misma clave que el del extinto Kassimirov, y pesa 133 kb. Si no te basta no tienes más que decirlo.
https://www.dropbox.com/s/m27xng511eoydmx/AESito32-largo.txt
SERIE_ENIGMA_ROMAN
Con la cantidad suficiente de texto ha caído sin problemas. Apenas fallaban un par de caracteres que se han podido obtener de la cola, que actúa como redundancia (o una especie de CRC) del principio de la clave.
El último texto largo:
"EN_EL_VERANO_DE_,_UNA_PEQUEÑA_LOCALIDAD_DEL_CONDADO_DE_BUCKINGHAM_VIO_PERTURBADA_SU_TRANQUILIDAD_POR_LA_LLEGADA_DE_UNOS_ESTRAFALARIOS_VISITANTES._SE_T..."
que corresponde al artículo del genial Roman Ceano "Enigma 00" http://www.kriptopolis.com/engima-00
El texto corto
ENIGMA_POR_ROMAN_CEANO_AUNQUE_EL_CLIMA_DEL_SUR_DE_INGLATERRA_NO_SE_PUEDE_COMPARAR_AL_DEL_ATLANTICO_NORTE,_KENWORTHY_Y_SUS_AYUDANTES
Que corresponde a "Enigma 90" de la misma serie http://www.kriptopolis.com/enigma-90
Luego detallo el ataque. De momento he conseguido cumplir el plazo de Sqrmatrix XDD
Lo que lamento es que te he defraudado. Dijiste que no era para divertirnos y me lo he pasado pipa. XD
Gracias!
Enhorabuena
Mi más cordial enhorabuena.
Estás tan en racha que los demás no han tenido tiempo de decir ni pío.
Esperamos la explicacón del destripe, y la presentación en sociedad de CHE.
Me alegro de que te hayas divertido.
Saludos.
Mi mas sincera enhorabuena a
Mi mas sincera enhorabuena a LlamameX, alias el rayo, por su fulgurante victoria.
Acabo de entrar, a ver si terminaba de entender la propuesta de ataque de LlamameX, entre remiendo y remiendo a mi algoritmo genético para ver si mañana cazaba algo...y ya, ya esta!!!!!!!! ya se ha zampado el reto!!!!!
Digo yo si, al hilo de algunas propuestas europeas sobre el euro, no convendría también hacer dos áreas de retos. Una para Llamamex y Sqrmatrix y otra para el resto. (Y si acaso una tercera para mogdedoges de megenges, ya pelín desdentados con la edad, como un servidor.)
No creo que haya ninguna web española, y dudo que tampoco ninguna asignatura de criptografía, que muestre en vivo y en directo tantos y tan variados ejemplos de complejos criptoanálisis. Es histórico lo que están haciendo estos dos.
Y tanto
... aunque yo te incluiría a ti en el dream team!
Acabo de mandar varios tweets informando de la ruptura, a ver si los del lado oscuro os hacen una oferta que no podáis rechazar ;)
¡No hagas eso!
Primero se llevaron a DEDDS, luego a mellon, y si ahoran desaparecen estos vamos a acabar hablando del famoseo.
- Oíd, chicos, ¿a que no sabéis a qué criptoanalista famoso vi ayer en la cafetería del Ministerio?
- ¡Cuenta, cuenta!
Ya os va
Ya os va el critpoanalisis-ficción, ya XDD
Ataque a AESito32
Bueno os cuento como ha sido el ataque. La verdad es que me ha sorprendido hasta a mi, ya que por el enunciado parecía una bestia parda: Teníamos 3 fuentes de cifrado: una sustitución contra el alfabeto derivado, una transposición variable por bloque y una pseudoOTP. A bote pronto muy duro. Como aderezo, además y a diferencia de Omelette, la generación del alfabeto derivado hacía muy difícil obtener la clave que lo generaba.
Sin embargo, analizando el algoritmo rápidamente aparecen algunas vulnerabilidades muy importantes para el ataque:
Vamos a trabajar pues imaginando el texto dividido en grupos de 32x32 carácteres formando una secuencia de matrices que llenaremos por filas. Así el carácter en la posición 1126 (empezando en 0) irá a parar al grupo 2, fila 3, columna 6 (filas y columnas también empiezan por 0).
La primera cosa que encontre fue que es posible encontrar caracteres en claro en el cifrado. Sabemos que una vez hecha la transposición se realiza la siguiente operación para calcular un Ci
Donde f(x) es la función de sustitución y f'(x) su inversa; A(j) es el carácter en claro que queda en la posición i después de la transposición y K(p,k) el caracter de la clave evolucionada p pasos en la posición k (k=i mod 32). Se da la circunstancia de que K(p,k)=K(0,k)+p, cosa que posibilitará el ataque.
Dado que para algún valor de p se cumplirá que K(p,k)=0, supongamos que es en la posición i. Tendremos C(i)=f'(f(A(j)))=A(j), es decir, un carácter en claro. Es cierto que no sabemos relacionar que C(i) va con que A(j), pero podemos ver algunas cosas:
Sabemos que la función de transposición parte del los carácteres de la clave ordenados de menor a mayor según alfabeto derivado y en igualdad por orden de aparición. Así puestos, el carácter que represente al valor K(p,k)=0 (justamente el que nos anula el XOR) será el primero en la transposición. Lo tendremos ubicado. Si conseguimos desde determinar una posición K(p,0), f(K(p+1,0)) estará a +-1 de la misma. Siguiendo la secuencia podríamos determinar el alfabeto derivado (con un arbol binario de posibilidades). A partir de éste, sabiendo que K(31,k) es la clave original sólo habría que obtener la evolución desde K(p,k) hasta ella. Este ataque se desestima por demasiado costoso.
Tenemos otra vía de ataque. Podemos obviar el alfabeto derivado y atacar la clave directamente. Sabemos que en determinadas condiciones se coloca texto en claro en el cifrado. Localizaremos pues los casos en que se coloquen espacios "_" (el carácter mas abundante) agrupando bloques de 32x32. La estadística nos dice que los espacios que correspondan a texto en claro en una posición de nuestra matriz tienen que ser mucho más abundantes que los que correspondan a un carácter cifrado como tal.
Así pues, obtenemos una matriz de frecuencias de aparición de "_". Hemos visto que para que en una posición un carácter esté en claro K(p,k) ha de ser 0. Para cada columna eso sólo ocurrirá en una fila, ya que el resto contendrán los demás valores entre 1 y 32. Por lo que hemos dicho esa fila deberá tener el valor más alto con lo que podremos identificarla fácilmente. Así obtenemos un lista de 32 filas (el número de fila será nuestra p en K(p,k) y la k la columna a la que corresponde).
Habíamos visto que K(p,k)=K(0,k)+p. Vamos a imaginar 2 columnas k1 y k2 cuyas K(p,k1) y K(p,k2) estén separadas una distancia d. Podemos visualizarlas como dos secuencias iguales ("ruedas" de caracteres) que están desplazadas d posiciones una respecto a la otra, es decir K(p,k1)=K(p-d,k2)=K(p,k2)-d Tenemos también para cada k la posición p en que K(p,k)=0. Es decir, podemos encontrar d restando esas posiciones (recordemos que podemos hacer esto puesto que todas las operaciones de evolución se hacen con el alfabeto normal). De esta manera encontraremos la relación entre todas las columnas, es decir cuanto estan desplazadas las "ruedas" unas respecto a otras.
Ya lo único que nos falta es encontrar una posición inicial con la que encontrar el resto. Dado que tenemos sólo 32 posibles valores, lo más fácil es generar como claves los 32 candidatos empezando en cada uno de los posibles carácteres y ver cual de ellas es más coherente. Haciéndolo tenemos:
Vemos que en la posición 19 tenemos un resultado muy positivo. No es perfecto pero sin duda es nuestro candidato. Vamos a determinar la clave desde él.
Sabemos que la clave está construida rellenando hasta 32 con los carácteres iniciales sumando 1. Eso nos permite usar la cola (últimos caracteres) para determinar aquellas posiciones que nos han quedado con poco sentido. Veamos donde empieza a usarse la cola: dado que la clave empieza por "SER..." la cola ha de empezar por "TFS..." que localizamos rápidamente. Asi tenemos
Restando uno a la cola obtenemos
Combinando ambos resultados obtenemos la clave SERIE_ENIGMA_ROMAN y desciframos
El último texto largo:
que corresponde al artículo del genial Roman Ceano "Enigma 00" http://www.kriptopolis.com/engima-00
El texto corto
Que corresponde a "Enigma 90" de la misma serie http://www.kriptopolis.com/enigma-90
Nota: Puede verse que en este caso la cola la tendremos en claro en el candidato anterior. Esto es así por que en esta construcción se han calculado las diferencias con el primer caracter y el +1 del relleno se compensa con el -1 de la clave que empieza por ese carácter.
Como conclusiones: El cifrado AESito32 puede ser tremendamente difícil de atacar compensando alguna de sus debilidades, especialmente evitando bucles previsibles en la evolución de la clave. Aún así, este ataque ha requerido una cantidad importante de texto. Quizás otros caminos requirieran menos, pero sería a costa de grandes tiempos de cálculo, cosa que pone de manifiesto la fortaleza del concepto.
Muy buen ataque
Magistral, como siempre. Se han evidenciado las debilidades del sistema. No descarto volver más adelante con una versión mejorada.
Muchas gracias.
Enhorabuena
Si ya decía yo que te lo ibas a cargar en un suspiro cuando ví tus últimos avances.
Resulta que esta mañana me puse con él, y me dije: "voy a ver cómo va la cosa", y me encuentro con el cifrario roto :).
Bueno, yo me encontré con algo curioso que no sé si hubiera permitido romper el cifrario, pero lo expongo porque me parece interesante.
Tenemos dos criptogramas del mismo texto, pero encriptados con la misma clave. Sabemos que cada uno se puede dividir en líneas de 1024 caracteres que podemos colocar una debajo de otra, de forma que cada columna está xoreada con la misma letra. Sabemos también que estas líneas de 1024 caracteres se pueden dividir en bloques de 32 caracteres, cada uno de ellos encriptado con una clave distinta. Bloques en la misma posición en uno de los criptogramas encriptan el mismo texto que en el otro criptograma, pero el orden de las columnas puede variar. Tenemos que una columna del primer criptograma está encriptada en el segundo criptograma, aunque seguramente en otra columna distinta (dentro del correspondiente bloque de 32 caracteres) y seguramente con otra letra, por lo que no veremos que coincidan las letras de las columnas.
Sin embargo, puesto que la operación realizada en ambas columnas es la operación XOR con una única letra, resulta que sus patrones coincidirán. Por tanto, lo que tenemos que hacer para saber en qué columna del bloque de 32 caracteres del segundo criptograma está la columna i-ésima del correspondiente bloque del primer criptograma, es obtener el patrón de la columna i-ésima del primer criptograma, y obtener todos los patrones de todas las columnas del correspondiente bloque de 32 caracteres del segundo criptograma. A continuación, basta buscar el patrón del primer criptograma en los patrones obtenidos del segundo. Si sólo encontramos un patrón coincidente, hemos determinado la columna j-ésima en el segundo criptograma del mismo texto encriptado en la columna i-ésima del primer criptograma. Si encontramos más de un patrón coincidente, entonces la columna j-ésima será una de las columnas cuyo patrón coincide, aunque no sabemos cuál. Y si no encontramos ningún patrón coincidente, tenemos la seguridad de que ambos textos no son idénticos.
Para el primer bloque de 32 caracteres, entre el primer y segundo retos, me encontré con las siguientes correspondencias:
0 ---> 31
1 ---> 28
2 ---> 1
3 ---> 13
4 ---> 14
5 ---> 12
6 ---> 2
7 ---> 23
8 ---> 21
9 ---> 7
10 ---> 8
11 ---> 18
12 ---> 3
13 ---> 0
14 ---> 10
15 ---> 11
16 ---> 16
17 ---> 15
18 ---> 5
19 ---> 29
20 ---> 24
21 ---> 27
22 ---> 6
23 ---> 26
24 ---> 4
25 ---> 20
26 ---> 19
27 ---> 25
28 ---> 30
29 ---> 17
30 ---> 9
31 ---> 22
Y aquí me quedé, porque fué cuando entré en Kritópolis y ví que se había resuelto.
De nuevo, doy mi enhorabuena a LlamameX.
Creo que sí
Creo que por ahí cae puede caer algo. La regla de extensión de la clave era demasiado simple, y crea una indeseable periodicidad. Seguramente lo hubieras resuelto, pero est hombre no da tiempo a madurar las ideas, je, je.
Espero que el próximo reto lo pongga LlamameX, y así tendrá que estarse quieto mientras pensamos... a ritmo sostenible.
Gracias por tu atención.
Si, tiene muy buena pinta
Sin duda hay mucho que obtener de ahí. Si no hubiera sido tan asequible la clave por estadísticas hubiera sido la puerta para entrar a por él. Como ya le comenté a Agustín un recifrado del mismo texto original con otra clave es una pista gordísima.
¡Báiss-báiss!
¡Sit dáun!. La criatura ha sido destripada y yace mansa y dócil a nuestros pies.
LlamameX está destacando dentro del grupo de Vengadores, no solamente por sus mallas ajustadas, de esas de las que no escapa ni un pedo, sino por su habilidad disparando con el arma de programa-repetición. Ya van dos, y esta última casi sin sacarla. Menudo fenómeno.
Felicidades al resto del equipo también porque sóis unos auténticos cracks.
¿A que no sabéis a donde ha ido a parar Agustín?. Pues aquí http://pampasur.files.wordpress.com/2007/12/preso.jpg
Y lo que no se ve
que es peor
Páginas
opinar