Bueno, parece ser que nadie intenta resolverlo, o nadie puede, en todo caso, como es aburrido esperar, os daré la solución:
No voy a reescribir lo que ya comenté en el post anterior sobre el Criptoreto II, así que escribo presuponiendo que se ha leído ése post. Sabemos que la clave varía en una cantidad fija cada vez que avanzamos una posición en el texto, y eso nos tendría que dar alguna pista. Bien, podríamos intentar imaginar qué parejas de letras son las menos probables, con lo que también se obtendría fácilmente las diferencias entre letras menos probables. ¿Qué obtenemos con ello? Si analizamos el texto cifrado buscando las diferencias entre letras consecutivas que menos aparecen (lo que menos aparece es la diferencia, no las letras) podremos suponer que también se corresponden con las diferencias menos comunes del texto en claro, suponiendo ésto sólo hace falta restar y obtenemos un valor para K2 (la segunda parte de la clave). (O puede que no sea el valor bueno, entonces cogeríamos la segunda diferencia menos común…).
Bien, ¿Y como sabemos qué diferencias son las menos comunes en el texto en claro si no lo tenemos? Pues no lo sabemos a ciencia cierta, pero las podemos acotar y podemos calcular la media conociendo la cantidad de letras de cada tipo que tiene el mensaje en claro (dato que dí con el reto). Otra forma de hacerlo es por la patilla y suponer que los pares de letras que menos aparecen son los pares de letras iguales, es decir, diferencia 0. En este caso particular se da la casualidad de que no sólo son las menos, si no que además no se da ni un caso, con lo que en la lista de diferencias ese 0 resalta claramente (haciendo sospechar).
Bien, analizando el mensaje el 0 (o mínimo) apareció en la diferencia 23. De eso deduzco que el valor de K2 es 23, ya que como (suponemos) no aparecen nunca dos letras iguales seguidas en el texto en claro y nunca aparecen dos letras con diferencia 23 seguidas en el texto cifrado hay una probable correlación.
Una vez hemos obtenido K2, lo que se hace es ir restando módulo 40 a las letras del mensaje cifrado, a la primera no se le resta nada, a la segunda se le resta 23, a la tercera (23*2)mod40, y así hasta la n-ésima restándole (23*(n-1))mod40. Hecho esto podemos aplicar un simple ataque estadístico buscando pares de conjuntos de letras que tengan la misma probabilidad de aparición, uno en el texto en claro y otro en el cifrado. Para las demás letras sólo haría falta calcular la clave K1 y no tener que buscar esas relaciones. K1 se puede buscar restando a una letra del mensaje cifrado su letra correspondiente del mensaje en claro.
Y bueno, para los listillos que no quieran trabajar, también se puede imaginar uno que todo texto medianamente correcto termina con un punto, así que, ¿Por qué no probar a ver si la última letra es un punto? Si fuera así no tendríamos que contar letritas, sólo tendríamos que restar el valor numérico del punto a la última letra del mensaje para obtener K1, y ya estaríamos.
Como véis ésto no es una ciencia ni mucho menos exacta, si se quiere ir rápido se pueden hacer supuestos (y luego ya veremos si nos hemos equivocado o no), y bueno, si se quiere ser puntill0so, también se puede hacer sin supuestos, lo del punto final no es necesario, y lo de las letras seguidas tampoco. Un rato más de cálculo muestra lo mismo, las letras iguales aparecen juntas con probabilidad baja.
Otro día con más tiempo explico como se hace para detectar el sistema de cifrado (que tal vez sea lo más complicado).
Hasta otra, y bueno, otra vez le dedico este post a Chisposo, ya que sin él no habría cifrado el mensaje.