Foros:
Por sqrmatrix
¡Resuelto! Enhorabuena a Agustín, LlamameX y el equipo criptoanalítico habitual
Hola a todos. Lo primero de todo, pedir disculpas por la ausencia tan larga. En mi defensa diré que no fue intencionada, sino consecuencia de ciertas circunstancias personales. En este tiempo no he podido dedicarme a ningún reto.
Bueno, y ahora que ya está aclarado todo, deciros que me he cambiado de bando, y ahora, en lugar de ponerme a atacar algún reto, voy a proponer uno. Como nunca he propuesto retos, no sé si éste estará a la altura. Ya veremos. Antes de plantearlo eché un vistazo por encima a los retos propuestos anteriormente, para no repetirlo, y no me pareció ver ninguno similar a éste, aunque no los miré a fondo (eran muchos). Espero que no se repita.
He ideado un cifrario que se puede definir como un XOR con doble clave. El cifrario es bastante simple.
Siendo este cifrario un XOR, necesita un alfabeto cuyo número de letras sea una potencia de 2. Utilizaremos el alfabeto de 32 letras "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ_.,:;".
Este cifrario dispone de dos claves. Una la llamaremos clave par, y la otra clave impar. Por cada letra que avancemos en el cifrado, elegiremos una de las claves. Si estamos situados en la letra i-ésima, consultaremos la letra (i-1)-ésima del mensaje original en claro. Si esta letra ocupa una posición par en el alfabeto, elegiremos la clave par, y si ocupa una posición impar en el alfabeto, elegiremos la clave impar. Cuando estemos en la primera letra del mensaje, como no tenemos letra (0-1)-ésima, tomaremos en este caso la clave par.
Para el cifrado, crearemos una copia del mensaje sobre la que trabajaremos. Es decir, inicialmente el criptograma será el mensaje claro.
Empezamos en la primera letra. Como estamos en la primera letra, tomamos la clave par. Enfrentamos las letras de la clave con las letras del criptograma, a partir de la primera letra, y hacemos XOR de las letras de la clave con las del criptograma, dejando el resultado en el criptograma.
Avanzamos a la posición 1 del criptograma. Consultamos la letra de la posición 0 del mensaje claro. Si ocupa una posición par en el alfabeto, tomamos la clave par, y si es impar, la clave impar. Colocamos las letras de la clave elegida encima de las correspondientes letras del criptograma, a partir de la posición 1, y repetimos la operación XOR como se hizo antes.
Pasamos a la siguiente posición y repetimos el proceso. Cuando nos acerquemos al final del criptograma, a la hora de colocar las letras de la clave sobre el criptograma, habrá letras que sobrepasen el final del criptograma. Estas letras se descartan.
Para descifrar, el procedimiento es el mismo. Cuando estemos sobre la primera letra, aplicamos la clave par. Al realizar la operación XOR, obtenemos la primera letra del mensaje, con la cual podemos determinar qué clave se eligió para la segunda letra, y así sucesivamente.
Para verlo mejor, se pondrá un ejemplo:
Mensaje: EN_UN_LUGAR_DE_LA_MANCHA
Clave par: SANCHO
Clave impar: QUIJOTE
Empezamos por la primera letra del criptograma. Elegimos la clave par, "SANCHO", y hacemos XOR de las letras de la clave enfrentadas a las letras del criptograma:
SANCHO EN_UN_LUGAR_DE_LA_MANCHA ----------------------------------- WNVWKTLUGAR_DE_LA_MANCHA
Pasamos a la segunda letra del criptograma. Ahora debemos consultar la primera letra del mensaje claro para ver qué posición ocupa en el alfabeto y así elegir la clave. La letra es la "E", y en el alfabeto ocupa la posición 4 (empezamos a contar desde 0), que es par, luego elegimos la clave par, "SANCHO", otra vez:
SANCHO WNVWKTLUGAR_DE_LA_MANCHA ----------------------------------- W:VZISEUGAR_DE_LA_MANCHA
Estamos en la tercera letra del criptograma. Consultamos la segunda letra del mensaje claro, que es la "N", y vemos que ocupa la posición 13, que es impar, luego elegimos la clave impar, "QUIJOTE":
QUIJOTE W:VZISEUGAR_DE_LA_MANCHA ----------------------------------- W:HOAZLBCAR_DE_LA_MANCHA
Seguimos aplicando este procedimiento. Al final, resultará que la clave sobrepasará el final del criptograma. Tenemos el caso:
QUIJOTE W:H:EVÑL.X;SCX_SAMZATUMA ----------------------------------- W:H:EVÑL.X;SCX_SAMLU..DT
Que, como se ve, se descarta la letra que sobra. En el siguiente caso se hace lo mismo:
SANCHO W:H:EVÑL.X;SCX_SAMLU..DT ----------------------------------- W:H:EVÑL.X;SCX_SAMLG.QBS
Es decir, se descartan las letras de la clave que sobrepasen el final del criptograma:
SANCHO W:H:EVÑL.X;SCX_SAMLG.QBS ----------------------------------- W:H:EVÑL.X;SCX_SAMLGOQMQ
Queda al final el criptograma:
W:H:EVÑL.X;SCX_SAMLGOAKI
Para descifrar, los pasos son casi idénticos. Empezamos por la primera letra y, como sabemos, se aplica la clave par:
SANCHO W:H:EVÑL.X;SCX_SAMLGOAKI ----------------------------------- E:K.DYÑL.X;SCX_SAMLGOAKI
En esta operación hemos obtenido la primera letra del mensaje, que nos permitirá decidir qué clave hay que elegir a continuación. En este caso, como antes, es la letra "E", que ocupa la posición 4 y, por tanto, debemos coger de nuevo la clave par "SANCHO":
SANCHO E:K.DYÑL.X;SCX_SAMLGOAKI ----------------------------------- ENKQB:BL.X;SCX_SAMLGOAKI
Hemos obtenido la segunda letra, que es la "N", y que ocupa la posición 13 y, por tanto, tenemos que elegir la clave impar "QUIJOTE":
QUIJOTE ENKQB:BL.X;SCX_SAMLGOAKI ----------------------------------- EN_EJWÑ;XX;SCX_SAMLGOAKI
Seguimos así. Los últimos pasos quedan:
QUIJOTE EN_UN_LUGAR_DE_LA_MANSBY ----------------------------------- EN_UN_LUGAR_DE_LA_MANCTQ
SANCHO EN_UN_LUGAR_DE_LA_MANCTQ ----------------------------------- EN_UN_LUGAR_DE_LA_MANCHQ
QUIJOTE EN_UN_LUGAR_DE_LA_MANCHQ ----------------------------------- EN_UN_LUGAR_DE_LA_MANCHA
Aquí está el enlace del reto: https://sites.google.com/site/sqrmatrix/criptograma.txt?attredirects=0&d=1. Son 79956 caracteres. No sé si será suficiente. Si alguien necesita más, sólo tiene que pedirlo.
No sé si este reto será demasiado fácil o demasiado difícil. Ya veremos según avancen las cosas.
Un saludo a todos.

Repeticiones
He aquí un bloque de 30-gramas, en posiciones sucesivas. Forman parte de un bloque aún más amplio.
11325,19422,"X_WJNQ;XMEM:UF:MVLSJSZ:JD_WQI:"
11326,19423,"_WJNQ;XMEM:UF:MVLSJSZ:JD_WQI:U"
11327,19424,"WJNQ;XMEM:UF:MVLSJSZ:JD_WQI:UV"
11328,19425,"JNQ;XMEM:UF:MVLSJSZ:JD_WQI:UVK"
11329,19426,"NQ;XMEM:UF:MVLSJSZ:JD_WQI:UVKY"
11330,19427,"Q;XMEM:UF:MVLSJSZ:JD_WQI:UVKYA"
11331,19428,";XMEM:UF:MVLSJSZ:JD_WQI:UVKYAO"
11332,19429,"XMEM:UF:MVLSJSZ:JD_WQI:UVKYAOV"
11333,19430,"MEM:UF:MVLSJSZ:JD_WQI:UVKYAOV;"
11334,19431,"EM:UF:MVLSJSZ:JD_WQI:UVKYAOV;O"
11335,19432,"M:UF:MVLSJSZ:JD_WQI:UVKYAOV;OE"
11336,19433,":UF:MVLSJSZ:JD_WQI:UVKYAOV;OED"
11337,19434,"UF:MVLSJSZ:JD_WQI:UVKYAOV;OEDB"
11338,19435,"F:MVLSJSZ:JD_WQI:UVKYAOV;OEDBJ"
11339,19436,":MVLSJSZ:JD_WQI:UVKYAOV;OEDBJ:"
11340,19437,"MVLSJSZ:JD_WQI:UVKYAOV;OEDBJ::"
11341,19438,"VLSJSZ:JD_WQI:UVKYAOV;OEDBJ::_"
11342,19439,"LSJSZ:JD_WQI:UVKYAOV;OEDBJ::_V"
11343,19440,"SJSZ:JD_WQI:UVKYAOV;OEDBJ::_VH"
11344,19441,"JSZ:JD_WQI:UVKYAOV;OEDBJ::_VHR"
11345,19442,"SZ:JD_WQI:UVKYAOV;OEDBJ::_VHRP"
11346,19443,"Z:JD_WQI:UVKYAOV;OEDBJ::_VHRPM"
11347,19444,":JD_WQI:UVKYAOV;OEDBJ::_VHRPMX"
11348,19445,"JD_WQI:UVKYAOV;OEDBJ::_VHRPMXM"
11349,19446,"D_WQI:UVKYAOV;OEDBJ::_VHRPMXM;"
11350,19447,"_WQI:UVKYAOV;OEDBJ::_VHRPMXM;Z"
11351,19448,"WQI:UVKYAOV;OEDBJ::_VHRPMXM;ZM"
11352,19449,"QI:UVKYAOV;OEDBJ::_VHRPMXM;ZMJ"
11353,19450,"I:UVKYAOV;OEDBJ::_VHRPMXM;ZMJQ"
No es tanto el texto repetido
Si no lo que los diferencia. De otro modo sólo tenemos la constancia de que bloques iguales provocan, tras un cierto número de caracteres, cifrados iguales.
Además de los carácteres previos también destacan los siguientes, puesto que en ellos tenemos la certeza de que se ha aplicado la misma función de cifrado (se mantienen las paridades ya que el texto en claro en la parte repetida es igual) con lo que lo que les diferencia es el caracter en claro.
Mis mejores candidatos (5 letras)
Para la clave par obtengo "ESTA_" para la impar "LA_PR" descifrando como "CIVIL". La posición del texto sería la 67701 (contando desde -2) correspondiente a la combinación par/par.
No estoy seguro
No estoy seguro, pero es posible que hayas caído en la misma trampa que yo. También yo creí que la clave par empezaba por "ESTA...", y también obtenía "CIVIL..." http://www.kriptopolis.com/comment/2240#comment-2240
Pero creo que sqrmatrix llegó a confesar que la cadena "CIVIL" (CIVILIZADO, CIVILIZACION) "no estaba al principio, ni cerca del principio"
http://www.kriptopolis.com/comment/2238#comment-2238
Ocurre que en este cifrado hay más de una combinación de claves legibles que produce textos legibles. Creo que no es intencionado, pero esta característica puede llevar al atacante a una ilimitada pérdida de tiempo y a la desesperación.
Que hable el autor, si lo cree oportuno.
.
Cierto, lo dice
Con lo atractiva que me había quedado la parejita.
Créolo oportuno
Los fragmentos de clave que menciona LlamameX no se parecen en nada a las claves del reto. También es cierto que no fue intencionado que claves legibles diferentes de las utilizadas generasen texto legible. Precisamente me resultó muy sorprendente. No obstante, es posible que encontréis alguna clave, totalmente diferente de las originales, que os permita descifrar buena parte del texto, como lo demostró Tokamak.
Pues en el fichero de
Pues en el fichero de posiciones candidatas que había subido en este mensaje figura la posición 67.704, contando desde 1, lo que coincide con el resultado de LlamameX. Va a ser que sí.
Va a ser que no
Ni la frase _EL_MUNDO_CIVILIZADO ni la palabra CIVILIZADO se encuentran en esa posición
Vaya, pues el cifrado si
Vaya, pues el cifrado si cumple el criterio de LlamameX. Bueno, pues le echaré otro ojo a las cadenas repetidas, a ver si se me ocurre como sacarle partido a la cosa.
muchas claves posibles
Haciendo un esquema del cifrado con el ejemplo, se ve claramente que muchas claves lo descifrarán:
S A N C H O | 00 S A N C H O | E 04 Q U I J O T E | N 13 Q U I J O T E | _ 27 Q U I J O T E | U 21 Q U I J O T E | N 13 Q U I J O T E | _ 27 Q U I J O T E | L 11 Q U I J O T E | U 21 S A N C H O | G 06 S A N C H O | A 00 S A N C H O | R 18 Q U I J O T E | _ 27 Q U I J O T E | D 03 S A N C H O | E 04 Q U I J O T E | _ 27 Q U I J O T E | L 11 S A N C H O | A 00 Q U I J O T | _ 27 S A N C H | M 12 S A N C | A 00 Q U I | N 13 S A | C 02 Q | H 07 | A 00 ------------------------------------------------|--------------- E N _ U N _ L U G A R _ D E _ L A _ M A N C H A | texto en claro S S . L J N F : Z X N I B . A X A W H G C C N I | clave xor W : H : E V Ñ L . X ; S C X _ S A M L G O A K I | texto cifradoLo que llamo clave xor es lo que realmente se aplica al texto en claro para obtener el texto cifrado. Y esa "clave" es la combinación de varias posiciones de las claves originales (se ve en las columnas). Y queda claro que la combinación podría ser otra. Por ejemplo, el punto de la clave xor (posición 3, contando desde 1) es la combinación de Q, A y N. Pero el punto también se podría obtener mediante otras combinaciones (las más triviales, cambiando el orden: NAQ; o : QANA, QANAA, QANAAA y así, porque la A equivale a cero).
Una observación: la novena posición (contando desde 1) está cifrada con la clave impar solamente (nótese que la novena columna es QUIJOTE). Esto ocurre porque se repite la paridad del texto las suficientes veces (en el segmento ...N_UN_LU... son todas impares). Si buscaramos un texto probable con todas letras pares o impares solamente, ¿el problema no se reduciría a un xor común, con clave fija (al menos para esas partes del texto)?
Si pero
De entrada será difícil encontrar lo que dices y la cantidad de texto necesaria dependerá de la longitud de clave más larga L. Para una posición determinada te empezará a afectar desde L-1 carácteres con lo que si la más larga es la de la paridad que buscas bien, pero si no necesitarás más texto. Después, tener una una paridad fija durante N (N>L) carácteres, aunque complicado, tendrá un efecto mayor que el que planteas, puesto que durante N-L carácteres habrás codificado con un XOR de todos los carácteres de esa clave, cosa que equivale a hacerlo con un único carácter, siempre el mismo, en todo ese trozo. Lo difícil, sin embargo, será identificar ese trozo y ubicarlo en el texto cifrado.
Reducción del problema
Al no conseguir resultados brillantes con el ataque al trigrama inicial, me desanimé, y no supe valorarlos positivamente. Ahora, al repasarlos, creo que en ellos aparecen cosas que pueden ser de utilidad. Veamos:
Se han aplicado las siguientes restricciones:
1. La primera letra de la clave par, y la primera de la clave par, han de pertenecer al conjunto de 18 letras formado por [A B C D E F G H J L M O Q R S T U V]. De lo contrario el primer carácter del texto o de la clave pertenecerían al conjunto -prohibido para esa posición - [Ñ K W X _ . , : ;] Esas letras vendrán emparejadas de esta forma
o al revés. claro está.
2. Tanto el trigrama inicial de la clave par, como el del texto plano, han de pertenecer a los trigramas iniciales del lemario.
3. El digrama de la clave par, cuando se aplique, tendrá que pertenecer a los digramas inciales del lemario
La consecuencia de estas restricciones es que el universo de las soluciones para texto y claves está bastante reducido. Veamos (2):
1. El texto sólo puede empezar por alguna de las siguientes 16 letras:
o sea, que la P, y la T tampoco son viables.
Pero la reducción va más allá, porque sólo aparecen 477 trigramas posibles para el texto, que os pongo a continuación. Obsérvese que con la A sólo aparece un trigrama posible: "AL_". Con la C aparecen siete: CIR CLA COE COL COM CON COO. Y con la E aparecen sólo cinco: EON ERA ERT(?) EUR EUS
2. Los trigramas posibles para la clave par quedan reducidos a 805, que os dejo en el fichero clave_par.txt en la carpeta compartida https://www.dropbox.com/sh/dt4n6gr5osee06a/bMLiQKUpoG. Obsérvese, por ejemplo, que sólo hay 8 claves que empiecen por E: EPI ESP ET_ ETA ETC ETE ETI ETO, y ¡tres! con la G.; GRI GRO GRU
Me preocupa que, al haber utiizado un lemario simplificado, eliminado términos exóticos, haya podido excluir la solución al problema. Espero que no.
Pues uso eso para reducir mi ataque
Voy a probar, para las 2500 posiciones del texto posible, cuales de esos trigramas generan un trigrama válido para la impar y que además, descifren un trigrama también válido. Estaba haciéndolo para toda la tabla de trigramas pero se me estaba haciendo enterno.
Datos en bruto
En el fichero ataque_tres_letras3.txt en la carpeta compartida https://www.dropbox.com/sh/dt4n6gr5osee06a/bMLiQKUpoG tienes los datos en bruto, sin eliminar las combinaciones que a mí me parecen bizarras de caracteres, como AKA, UÑU, etc
Lamentablemente tu
Lamentablemente tu preocupación es cierta, ninguno de los trigramas que presentas es el inicio del texto, aunque hay un trigrama que se acerca a dicho inicio (es decir, que no estás desencaminado). No he podido comprobar los trigramas para la clave par, porque tengo prohibido el acceso a ese sitio. Luego a la noche lo miro.
Error en el cribado
Los resultados que he expuesto en Reducción del problema tienen serios errores de cribado, faltando numerosas entradas. Lo siento. Cuando tenga un rato lo reharé.
EXPLICACIÓN
La criba realizada tiene varias fases:
a) Eliminar trigramas bizarros del texto. Ya conté que el lemario estaba lleno de americanimos y de siglas, como TNT, GPS, etc, que son fácilmente eliminables, así como muchos términos que empiezan por Ñ
b) Lo mismo para la clave par
c) Eliminar los monogramas o digramas de la clave impar, cuando sean claramente bizarros, como los que empiezan por K o por Ñ
d) Eliminar los trigramas de texto que, aun siendo claramente reconocibles como del idioma, no forman parte de palabras con las que sea probable que empiece un texto
La fase d) es la más complicada y arriesgada, porque hay una gran probabilidad de eliminar algún trigrama válido. Es aquí donde seguramente cercené demasiado la lista de trigramas, por lo que es preferible acudir al resultado completo que está en el fichero ataque_tres_letras3.txt de la carpeta compartida https://www.dropbox.com/sh/dt4n6gr5osee06a/bMLiQKUpoG , y practicar uno mismo las cribas que crea convenientes.
Sin embargo, es cierto que ni la letra P ni la letra T arrojan valores de texto aceptables, porque las únicas ocurrencias son PNE y TNT, claramente rechazables.
Trigramas de inicio
Adjunto el enlace a mi coleccion de trigramas iniciales de palabras en castellano obtenido de textos con unos 2 millones de carácteres
http://llamamex.nixiweb.com/xor2/trigramas_inicio.txt
Interesante, voy a echarle un
Interesante, voy a echarle un ojo (o dos)
Tetragramas
Yo sigo con las repeticiones de cadenas, creo que he averiguado algo.
Tengo establecidos dos principios fundamentales:
1-) Cada uno de los cien tetragramas más abundantes del cifrado se corresponden con un único tetragrama del texto en claro, de acuerdo a los tests realizados con mis propios cifrados.
2-) Uno de los tetragramas más abundantes de los textos en castellano "NTE_" se delata en los cifrados por su gran abundancia, que viene acompañada por la de otros tetragramas donde se desplaza el texto, asimismo muy frecuentes.
Por todo ello creo que los siguientes tetragramas cifrados presentan las siguientes correspondencias:
F:JN NTE_
PF:J ENTE
;PF: MENT
Comprobaré esta hipótesis en breve..
10-Grama
Por ejemplo observad el decagrama "F_NNF;PF:J" que aparece en la posición 6.776 y se repite en la 9.493: *****MENTE ?
Y mucho mejor, el decagrama "SC;RW:_DF:" se repite en la posición 5 y en la 35709, codificando el mismo texto. Es muy interesente, porque está al inicio del criptograma.
G;ULSC;RW:_DF:JN
************NTE_
Una lista no exhaustiva de candidatos:
ACCIDENTALMENTE_
AFORTUNADAMENTE_
APROXIMADAMENTE_
ARBITRARIAMENTE_
ARTIFICIALMENTE_
CONSCIENTEMENTE_
CONTINUADAMENTE_
DEFINITIVAMENTE_
DELIBERADAMENTE_
DISIMULADAMENTE_
EQUIVOCADAMENTE_
ESPIRITUALMENTE_
ESPLENDIDAMENTE_
EVANGELICAMENTE_
EXPLICABLEMENTE_
FASTIDIOSAMENTE_
FILOLOGICAMENTE_
FILOSOFICAMENTE_
HIPOTETICAMENTE_
HORIZONTALMENTE_
IMAGINARIAMENTE_
IMPACIENTEMENTE_
IMPERATIVAMENTE_
IMPERFECTAMENTE_
IMPLACABLEMENTE_
IMPROBABLEMENTE_
IMPRUDENTEMENTE_
INCANSABLEMENTE_
INCIDENTALMENTE_
INCOMPLETAMENTE_
INCORRECTAMENTE_
INDEFINIDAMENTE_
INDISCRETAMENTE_
INDISTINTAMENTE_
INDIVIDUALMENTE_
INELUDIBLEMENTE_
INESPERADAMENTE_
INEXORABLEMENTE_
INMERECIDAMENTE_
INOPORTUNAMENTE_
INSACIABLEMENTE_
INSENSIBLEMENTE_
INSISTENTEMENTE_
INSTINTIVAMENTE_
INTERESADAMENTE_
INTRINSECAMENTE_
INVARIABLEMENTE_
IRRACIONALMENTE_
LAMENTABLEMENTE_
MAJESTUOSAMENTE_
MATEMATICAMENTE_
METAFORICAMENTE_
METICULOSAMENTE_
MISTERIOSAMENTE_
MOMENTANEAMENTE_
MONSTRUOSAMENTE_
NEGLIGENTEMENTE_
OCASIONADAMENTE_
ORIGINARIAMENTE_
OSTENSIBLEMENTE_
PARTICULARMENTE_
PERDURABLEMENTE_
PERMANENTEMENTE_
PERNICIOSAMENTE_
PORTENTOSAMENTE_
PRECEPTIVAMENTE_
PREFERENTEMENTE_
PREFERIBLEMENTE_
PRELIMINARMENTE_
PRODIGIOSAMENTE_
PROVECHOSAMENTE_
PROVERBIALMENTE_
PRUDENCIALMENTE_
RECONOCIDAMENTE_
REDUNDANTEMENTE_
REPUGNANTEMENTE_
RESPETUOSAMENTE_
RESPLANDECIENTE_
SEGUNDARIAMENTE_
SILENCIOSAMENTE_
SIMULTANEAMENTE_
SOSPECHOSAMENTE_
SUFICIENTEMENTE_
SUSTANCIALMENTE_
TELEFONICAMENTE_
TERMINANTEMENTE_
TRIANGULARMENTE_
TRIUNFANTEMENTE_
TUMULTUOSAMENTE_
TURBULENTAMENTE_
VERGONZOSAMENTE_
VICTORIOSAMENTE_
VITUPEROSAMENTE_
VOLUNTARIAMENTE_
VOLUPTUOSAMENTE_
No necesariamente
Puede no ser una palabra tan larga, sino varias, como
Pues si, claro. Estoy
Pues si, claro. Estoy haciendo pruebas para comprobar si F:JN es NTE_ Es una gran suerte que el tetragrama más abundante esté al inicio del criptograma. Creo que es así, pero veremos.
Cribado corregido
He montado un proceso semiautomático para consultar el lemario antes de eliminar cualquier trigrama, en el texto o en las claves, y he procurado ser más prudente. Las 18.647 ternas (clave.par, clave.impar, texto) iniciales, se quedan en 5.846, que están en el fichero ataque_tres_letras_cribado.txt de la carpeta compartida https://www.dropbox.com/sh/dt4n6gr5osee06a/bMLiQKUpoG. Pero como diferentes claves generan el mismo texto, hay multitud de repeticiones, encontrando tan solo 802 trigramas de texto, que están en el fichero texto_sin_rep.txt. Asimismo, tan solo tenemos 854 trigramas diferentes para la clave par, que están en el fichero clave_par_sin_rep.txt, todos en la misma carpeta.
Espero que el autor encuentre en esta lista el trigrama inicial del texto.
Hay candidatos muy hermosos, como:
Pero ya no me fío de la belleza de mis hallazgos, en este endiablado sistema.
Ahora sí lo encuentro en la
Ahora sí lo encuentro en la lista
¡¡¡Bien!!!
Señores, el problema ha sido acotado a 802 candidatos. Creo que aún quedan trigramas algo bizarros que se podrían depurar.
.
Gracias, sqrmatrix.
Muy bien! y además el
Muy bien! y además el trigrama inicial NO estará en la lista antigua, de acuerdo a las pistas de Sqrmatrix, pero tendrá algún parecido, diferirá un solo caracter con alguno de esa lista.
Más reducción
Después de unos complicadísimos cálculos (je, je), puedo asegurar que el primer trigrama del texto se encuentra en esta lista de 350 elementos:
Las ternas
Siguiendo la línea de trabajo que apunta tokamak, una de estas ternas contiene el trigrama de la clave par, la clave impar que se aplica, y el primer trigrama del texto en claro correspondiente:
El trigrama de la clave par estará en esta lista de 713 elementos
Y aún cabría eliminar muchas entradas por tener texto o claves bizarras, es decir, poco probables.
Espero que este material sirva para los ataques que están en marcha.
Váis bien, váis bien. Por ahí
Váis bien, váis bien. Por ahí veo el trigrama del inicio del texto original, también el trigrama de inicio de la clave par y la primera letra de la clave impar... venga, que ya falta poco para darle la estocada mortal
Como decía el Sr. Lobo, en
Como decía el Sr. Lobo, en uno de sus inmortales diálogos en Pulp Fiction, no empezemos x xxxxxxxxx xxx xxxxxx todavía. Todavía son 350 trigramas posibles. Yo estoy intentado un ataque con el AG, fijando para cada ejecución uno de los trigramas, pero la cosa va para largo.
Por cierto ¿Qué hay de mi hipótesis sobre el tetragrama F:JN, el más abundante del cifrado, que aparece por primera vez en la posición 13 y que yo asocio al claro NTE_? ¿Es correcto, es falso, o no es contestable, inquiero?
Mis pruebas no han podido confirmarlo, y me inclino a pensar que mi hipótesis es falsa.
Efectivamente, al comienzo no
Efectivamente, al comienzo no está esa combinación de letras. No he comprobado que el tetragrama F:JN se corresponda con esta combinación en el resto del criptograma
Vamos p'allá
A ver si esos fieros atacantes dan ya la puntilla al bicho, que yo me iré limitando a reducir su tamaño. Con la nueva perspectiva, aplicando los cálculos pertinentes (je, je), la situación es la siguiente:
Sólo hay 52 trigramas posibles para el inicio del texto:
que corresponden a 283 ternas:
y a 81 claves pares posibles
Gracias, sqrmatrix.
Pues ahí están, comienzo de
Pues ahí están, comienzo de texto y clave par, y primera letra de clave impar. A ver si refináis esa búsqueda y reducís candidatos
Qué bárbaro Agustín, ni
Qué bárbaro Agustín, ni siquiera el Sr. Lobo es tan rápido.
Gracias Sqrmatrix, si no es es cuatrigrama en la posición 13, no lo es en ninguna concurrencia, ya me lo temía...
Tareas fáciles
Es que me encantan las tareas fáciles.
Ahora bien, montar el ataque combinatorio a esas ternas, me da una pereza....
Sin embargo, la idea la tengo:
1. Se toma la clave par de una terna, se va al lemario, y se busca la primera aparición del trigrama, aumentándolo una letra (que puede ser el separador _)
2. Se toma la clave impar, se va al lemario y se busca su primera ocurrencia, aumentándolo una letra (que puede ser el separador para los casos O, Y, etc)
3. Se prueban conjuntamente en la implementación el tetragrama de la clave par y el digrama de la clave impar, y se obtiene el resultado
4. Se busca el resultado obtenido en el lemario. Si está, se graba con una marca, y si no está, con otra, para su posterior análisis.
5. Se repite el proceso con todos los digramas posibles para la clave impar.
6. Cuando se han agotado los digramas de la clave impar, se busca el siguiente tetragrama de la clave par, y se repite el proceso
7, Cuando se agoten todos tetragramas de esa terna se repite todo con la terna siguiente.
Como hay trigramas de clave par y letras de clave impar repetidos, se pueden almacenar sus tetragramas y digramas correspondientes.
Todo ello suponiendo que la cuarta letra del texto no sea un signo de puntuación ni un separador, lo que parece razonable a la vista de los trigramas de texto candidatos. Para la quinta letra, ya veremos.
Es una pena
Era un buen chico, muy inteligente, y además no carecia del sentido del humor. Pero ahora me temo que lo hemos perdido para siempre. La cosa está clara: si te descubren, estás perdido. Va a ser el cuarto día que no postea nada, y eso sólo puede significar una cosa: A LlamameX lo han abducido los del Lado Oscuro. Snif.
A falta de capacidad para atacar mediante brillantes combinaciones de XORs, estoy planteando el ataque a la cuarta letra, ahora que el universo de la muestra se ha reducido bastante, gracias a la generosidad de sqrmatrix.
Espero que no sea por la
Espero que no sea por la forma de llevar el reto. Quizá esté dando demasiadas pistas para su gusto, y le esté fastidiando los ataques. Espero que no sea por eso, pero si así fuera, pues le preparo un reto para él solo :).
Mientras tanto, en su ausencia, tendréis que llevar el ataque vosotros solos, que lo estáis haciendo muy bien. Así que, ánimo
Hombre,
La verdad es que no se te da demasiado bien agazaparte en las sombras retorciendote las manos con una sonrisa maléfica. Para ser un auténtico genio del mal deberías disfrutar más del sufrimiento de tus víctimas y prolongarlo durante más tiempo. Eso si, salvo que seas aún más torticero y nos estés conduciendo deliberadamente a callejones sin salida... Oh wait!
Bueno, este bicho produce
Bueno, este bicho produce suficientes falsos positivos como para no tener que preocuparme en llevaros a callejones sin salida... ya os metéis vosotros solos en ellos (risa maléfica)
Y bueno, es mi primer planteamiento de reto. No quiero que la gente abandone en este primer reto por no poder avanzar, así que doy algunas pistas, quizá demasiadas...
Ataque a las cuatro primeras letras
Déjate de lisonjas, que si no fuera por algunas pistas, los ataques por fuerza bruta no serían posibles, dada nuestra escasa potencia de cálculo. De hecho, a partir de los 52 trigramas posibles para el texto me he atrevido a buscar la cuarta letra, usando como referencia el lemario.
Con tres letras, teníamos la siguiene situación:
G ; U (cifrado) P P P (clave par) 0 T (1er XOR) P P (clave par) 1 T (2º XOR) I (clave impar) ===== 0 1 T (trigrama)donde "0" representa letra par, y "1" letra impar
Para la cuarta letra tenemos dos posibilidades:
Tercer carácter par G ; U L P P P P 0 T T T P P P 1 T T I I 0 T P ======= 0 1 0 T Tercer carácter impar G ; U L P P P P 0 T T T P P P 1 T T I I 1 T I ======= 0 1 1 TEn ambos casos se utilizan dos caracteres de la clave impar, y las operaciones para obtener el cuarto carácter son:
3er carácter par T4= XOR ("L", P4, P3, I2, P1) 3er carácter impar T4= XOR ("L", P4, P3, I2, I1)Para cada trigrama de la clave par se buscan todos los cuatrigramas del lemario, y para cada clave impar (una letra) se buscan todos los digramas, y se combinan entre sí, según el algoritmo expuesto. Al tetragrama de texto resutante se le impone la condición de que pertenezca al lemario, es decir, se supone también, que no aparecen todavía ni el separador ni los signos de puntuación. Y entonces salen 1324 ternas válidas (clave-par, clave impar texto), con el formato (XXXX XX** XXXX) que pongo en el fichero TERNAS4_BUENAS.TXT en la carpeta compartida https://www.dropbox.com/sh/dt4n6gr5osee06a/bMLiQKUpoG
Las otras 15763 combinaciones daban como resultado tetragramas "malos", pero de todas formas os las pongo en el fichero TERNAS4_MALAS.TXT en la misma carpeta.
Como ocurre siempre en este cifrado,varias combinaciones de claves dan el mismo resultado del que, una vez cribados los términos más exóticos, se obtienen 177 tetragramas de texto distintos, que pongo aquí. Aún se podrían eliminar algunos, y muy pocos parecen buenos para empezar un artículo, pero he querido ser prudente.
Obsérvese que tan sólo hay 5 iniciales distintas: A C E G R, lo que podría sugerir alguna forma de convegencia. Si atacáramos por fuerza bruta más letras ¿se reducirían aún más las iniciales hasta tener segura la primera letra?
Vas por el buen camino...
...sigue así. Veo por aquí las primeras 4 letras del texto en claro
Ya lo he visto
No he tenido en cuenta que en algunos casos, el tercer carácter también salía par, por lo que hay más operaciones involucradas. O sea, que el ataque es "manifiestamente mejorable".
Ya veremos si mañana tengo fuerza para enfrentarme a ello, o si lo dejo. ¡¡Andandas, LlamameX!!! ¿Firmando compromisos de confidencialidad?
REEDICIÓN
He revisado los cálculos y parecen ser correctos, aparte de que sqrmatrix da el visto bueno.
Pero si ya lo tienes a tiro,
Pero si ya lo tienes a tiro, hombre sólo queda rematar. Consigno algunos hallazgos de claves impar y par que voy encontrando, que son compatibles con la lista de candidatos, pero seguramente serán consecuencia del polimorfismo de este criptosistema.
BUCHONA GRANCILLA ALGUN_
JAZMIN GRIPO ALGUNA_
¿A tiro?
Aun eliminando la mitad de los tetragramas, todavía quedarían centenares de ternas con diferentes claves para probar. Habría que plantear un ataque combinatorio al quinto carácter... aarrrgh, afffsssh, grrññññb ("¡Doctor, doctor! ¡Venga, que al de la 112 le ha vuelto a dar el ataque!")
Vuelvo vuelvo
Ando algo ocupado atenuando un apocalipsis tecnológico causado por el regreso vacacional de algunos. Dejadme que vea lo poco que me dejais para aportar, que parece que ya lo teneis todo hecho, y a ver si queda algo más por hacer aparte de repartir aplausos y felicitaciones.
No te fies Agustín. No es él,
No te fies Agustín. No es él, le noto raro...
Ya
igual le han dicho: "Durante un tiempo haz como si no pasara nada, y ve desapareciendo poco a poco, que no se note. De paso ve rellenando estos formularios"
Más ejemplos de polimorfismo
He encontrado más combinaciones de claves que producen palabras de inicio acordes con las restricciones, pero seguro que son espejismos Por ejemplo:
LEMUR GRINGA ALEMAN
LOGOMAQUIA GRIDO ALEJADO
Letras iniciales
El principio del texto está entre cinco letras posibles: A C E G R. Eso permite "ALEJADO", "ALEMAN" , "GRIDO" (¿qué es "GRIDO"?), y "GRINGA" y, pero no "LEMUR" ni "LOGOMAQUIA". Pero "GRIDO" y "GRINGA" no encacan con los tetragramas válidos, de manera que sólo quedan "ALEMAN" y "ALEJADO". Puede que la cosa sea interresante.
En efecto
En efecto, las claves "GRABA_" y "DAGA" (entre otras) dan como resultado la cadena "ALEMAN". Y GRABA_H" con "DAGA_R" proporcionan "ALEMANIA". Pero en este cifrado aparecen muchos falsos positivos. De hecho el tetragrama "ALEM" aparece en quince ternas distintas, y habría que desarrollarlas todas. A ver si vosotros encontráis algo más concluyente.
Páginas
opinar