Pequeño reto: ¿Sois capaces de descifrar esto?

Zerokkk

Buenas!

Recientemente he estado programando un sencillísimo cifrador de textos para un proyecto de fin de trimestre. Apenas estoy en segundo trimestre del primer año de DAM, por lo que mis conocimientos en programación son casi nulos y sólo conozco Java. Si a esto le sumamos que no tiene mucho trabajo y que el código completo está lejos de alcanzar las 500 líneas, creo que queda bien clara la simplicidad del cacharrito.

Entonces, se me ocurrió una idea... Ya que por aquí hay muy buenos programadores (me han encantado vuestros kata), imagino que tendréis idea de cómo realizar un descifrador de cifrados no matemáticos (mediante iteradores, por ejemplo), así que me dispongo a proponeros "romper" mi pequeño cifrado.

Tenéis que averiguar qué esconde este texto cifrado:

VjҖ8jҖ9@545=5c؎Җ(3Җj8؎)Җ2jz1jz؎
Җv؎@Җ@1z5@Җ5Җ
؎=Җv@؎p@5º5c؎@1=Җc1ҖÑ1c25i2c5¤
Җy1Җ=2c؎Җf5=z5º1jz1Җ؎ъj15c؎¨
Җ_U1242c5c1=Җv؎@Җ5i1@2pﻯ5@Җ1Җ4ﻭc2p؎;

Pistas:

  • El texto está en español bien escrito, pero con lenguaje sencillo.
  • No utiliza un cifrado matemático. Actúa a un nivel superior (más simple).
  • Como ya habréis supuesto, si se conoce la tabla de asignaciones, se puede descifrar cualquier código. Peeeeeero no os la voy a dar xDDD.
  • Otra obviedad, es que no hay claves de por medio. Es una clave única y estática que se aplica siempre.
  • El mecanismo es el más simple que se pueda utilizar en un cifrador.

PD: La verdadera finalidad del hilo, más que ser un reto para vosotros, es comprobar la fuerza de esta "clave" (hoy en día ya se llama clave a todo, menuda vergüenza). O básicamente, ver cuán complicado puede ser descifrar algo tan sencillo de cifrar.

2
eXtreM3

Me pillas totalmente en blanco, no sabría ni por dónde empezar... es más, esto se puede hacer?

Quiero decir, no tenemos nada para hacer comprobaciones, ni una tabla con comparaciones, ni un sistema al que acceder...

1 respuesta
xPipOx

Aparte de un programa que te cambie simbolos por letras y lo compare con un diccionario... Sigo la pista al tema por que estoy muy verde es mas no se si lo que digo es factible.

1 respuesta
Zerokkk

Veréis, mientras programaba el encriptador se me ocurrió una forma de hacerlo, voy a ponérosla a modo de pista sin siquiera saber muy bien hasta qué punto es posible:

El sistema funciona por simple sustitución, por lo cual, podríamos conseguir averiguar el carácter real a través de diccionario, como dice #3. Pero hay un problema, y es que a la hora de comprar, pueden salirte varios resultados iguales para la misma cadena comparada, ya que sólo estamos trabajando sobre un número de caracteres. No hay más información que esa.

Así que, si ya toma tiempo realizar una biblioteca y hacer comparaciones (más tedioso no podía ser, vaya), ahora tenemos que tener en cuenta que la comparación ha de hacerse sobre una cadena grande para que así la posibilidad de fallo sea menor.

Eso implica hacer un diccionario enorme, bestial, con muchísimas frases de todos tipos utilizando montones de caracteres diferentes.

Ahora, ¿qué pensáis? ¿Es posible realizar el descifrado de esa manera, o hay otra? Sigo esperando a ver si alguien consigue descifrarlo :). Si queréis otro texto codificado para hacer las comparaciones, sólo tenéis que pedirlo.

1 respuesta
Shisaia

Pon otro a ver.. xDD

1 respuesta
xPipOx

Җ por empezar lo pondria como separador (espacio) ya que se repite mucho xD.

1 1 respuesta
PiradoIV

#4 Un segundo texto ayudaría =)

1 respuesta
Zerokkk

#5 #7 Aquí lo tenéis:

Lf2p5c؎Җº1Җy5**؎Җ5Җv5=5@؎=Җ؎z@؎Җz1uz؎Җc1Җºﻪ=Җc1Җ╗—Җ45@54z1@1=Җv5@5Җ,81Җ@1524ﻫ2=Җi81=z@5=Җ4؎ºv5@542؎j1=;

#6 Un importante primer paso! Ahora, a pasar con los artículos y demás palabras pequeñas. A ver si conseguís conocer toda la codificación.

elkaoD

#2 http://en.wikipedia.org/wiki/Cryptanalysis

desgraciao

Cuando lo posteaste por primera vez lo intente hacer durante un rato pero lo deje, me parecio demasiado complicado y me ralle bastante (aunque estaba seguro de que lo sacaria en un principio).

Lo que hice fue listar el total de apariciones de cada caracter buscando las letras que mas aparecen en el español. Tambien busque el espacio (la mejor manera de empezar en mi opnion) buscando que el caracter apareciese en intervalos de pocos caracteres y que sobretodo estuviera presente en todas las lineas.

Pero no consegui nada de nada.

1 respuesta
Zerokkk

#10 Me he ocupado de que fuera difícil. Es decir, en lugar de utilizar sucesiones romanas y otros métodos sencillos, he tirado por la completa aleatoriedad, utilizando caracteres sustitutos de muchos tipos distintos. Pero más allá de eso, no tiene mucha ciencia. El mecanismo es increíblemente sencillo, y por eso he puesto esto, para ver si algo tan sencillo se puede romper con relativa facilidad.

No obstante tengo pensado añadirle varios niveles de seguridad con mecánicas más complicadas y menos intuitivas que sí lo van a volver prácticamente indescifrable, aunque no sin antes solucionar los "fallos de seguridad", como el del espacio. Pero tiempo al tiempo :].

1 respuesta
allmy

Le iba a pasar un programa de criptoanalisis, pero no me acuerdo del nombre xD

SpiuK

Yo no tengo ni idea de esto,pero lo añado a favs para ver que haceis XD. Me parece curioso como lo hareis para descifrarlo...

eXtreM3

#11 es que si después le metes un salt ya lo haces prácticamente imposible de descifrar.

1 respuesta
Zerokkk

#14 Con el método que dije antes, se seguiría pudiendo descifrar. Pero tardarías mucho en realizar dicho programa, aún teniendo posibilidad de error.

Esmoris

Si el mecanismo es el más simple para cifrar, seguramente lo que has hecho es añadir posiciones a cada carácter.

Por código ASCII sería muy fácil de hacer, haces un bucle en el que a cada carácter del texto le añades un número, el que sea.

Por ejemplo la primera letra que usas es la "V" que tiene el código ascii correspondiente 86.
Si le añadimos un número a ese código cambia el carácter.
Y para descifrarlo solo tendréis que hacer el paso inverso, ir carácter a carácter restando el número que el añadió.

2 respuestas
B

No estoy en el mundo de la encriptación pero diría que sin la clave fija que se usa para codificar es "imposible" sacarlo a menos que sea debil. Suponiendo que la salida cambie en base a la clave dada claro.

1 respuesta
allmy

Enigma no es, lo acabo de intentar, ahroa estoy intentando bruteforcearlo por transposición

desgraciao

#16 Segun entiendo yo no lo ha hecho asi, simplemente ha hecho una tabla de asignaciones sin ningun criterio y aleatoria, siendo imposible sacar toda la lista de golpe mediante ninguna operacion. Solo se puede sacar examinando cada caracter.

Zerokkk

#16 Es todavía más sencillo que eso. Mucho más xD. Con esto deberías ya saber de qué estoy hablando.

#17 No utiliza claves. Bueno, a ver, la clave aquí es qué carácter real está detrás de cada sustitución, pero eso se debería poder descifrar :).

#21 Lo dije mismamente en el post: 1º de DAM (Desarrollo de Aplicaciones Multiplataforma, un ciclo superior). Si te refieres a qué tema estamos tratando, estamos ahora con ficheros: escribir y leer ficheros, usar búferes...

1 respuesta
KooPad

#1 Una duda de offtopic, que estas estudiando?

1 respuesta
Esmoris

#20 Usas cifrado César?

2 respuestas
Zerokkk

#22 Es un cifrado completamente aleatorio. No hay cifrado César, sino sería muy fácil xD.

#24 Carácter = Carácter a sustituir. El descifrado es el caso inverso.

2 respuestas
eXtreM3

#23 has mezclado diccionarios? o es unidireccional? (ya me he picao xD)

1 respuesta
allmy

#22 No

B

Yo empezaria cogiendo un archivo de texto con una buena parrafada. Sacar de ahi cuantas veces se repite cada letra y aplicar lo mismo a los textos que os ha dado. Por lo menos para encontrar algunas concordancias valdra. Luego a partir de ahi ya podeis centraros en sacar el algoritmo utilizado.

eXtreM3

Vaya mierda, esto ؎ es árabe y esto Җ chino xd

1 respuesta
Esmoris

#23

Se podría descifrar si no pusieras todo el texto junto, dices que el texto está escrito en correcto español pero nadie escribe todo seguido sin espacios

4 respuestas
B

#27 Pero tendran sus codigos ascii digo yo no?

#28 El espacio tambien puede estar encriptado.

desgraciao

#28 ¿has pensado que el espacio es tambien un caracter y que tendra tambien su equivalencia?