Autor
|
Tema: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ). (Leído 8,604 veces)
|
mat.marchantt
Desconectado
Mensajes: 3
|
Hola maestros, les cuento, soy un novato en esto y necesito hacer un programa que " Des cifre" un texto, pero sin conocer la clave ( o el numero de desplazamientos en el abecedario ), en vez de eso, conociendo una palabra que se incluye dentro del texto cifrado.
Por más que e buscado no logro dilucidar como lograr que lo haga, algún maestro que me pueda ayudar ?
Saludos.
|
|
|
En línea
|
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
Hola! Mirá, lo que se suele hacer con cifrado cesar, es un análisis de frecuencias, aunque realmente es bastante simple de crackear, si tenés una palabra entera, y sabés en donde está, lo único que tendrías que hacer es fijarte cuantos desplazamientos se están haciendo. Por ejemplo: "Uq vwujzm ma Ixwstqxbqkw g awg cacizqw lm mtpiksmz.vmb lmalm mt 22 lm Vwdqmujzm lm 2004."
Uno entonces puede pensar que "Vwdqmujzm" puede significar un mes, los únicos meses que tienen 9 letras, son "Diciembre" "Noviembre" y si se escribe de esa manera "Setiembre". Diciembre no puede ser, porque la segunda y cuarta letra deberían ser iguales y "Setiembre" no puede ser, porque la tercera letra debería ser "w" en vez de "d". Nos queda que es "Noviembre". Agarramos y nos fijamos que la cantidad de letras entre "N" y "V" son 8. Desciframos el texto con esa clave y nos queda:
"Mi nombre es Apokliptico y soy usuario de elhacker.net desde el 22 de Noviembre de 2004."
Un abrazo Apokliptico
PD: Para estas cosas, te conviene utilizar cryptool. Tiene incluso un crackeador incluido.
|
|
|
En línea
|
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore ASUS M4A89GTD-PRO/USB3 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) Seagate 500 Gb XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
|
|
|
mat.marchantt
Desconectado
Mensajes: 3
|
Entiendo lo que me planteas, es lo lógico, pero el problema es que me exigen que el programa de forma autonoma pruebe todas las combinaciones necesaria para identifica donde esta la palabra "Conocida", y que este me informe por ejemplo; El numero de desplazamientos para que dentro del texto diga "Casa" son (ej) 5, y asi yo utilizar esa clave para descifrar lo demas del texto.
Eso es el pero , como puedo lograr eso? no logro dar con la estructura que le ordene eso al programa. Por lo demas necesito hacerlo en C++ por que es lo unico que conozco, llevo apenas un curso de programacion....
Espero su ayuda con ideas porfavor.
Saludos.
|
|
|
En línea
|
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
La estructura es bastante simple, le tendrías que dar de datos de entrada al programa la frase cifrada, la palabra descifrada (o incluso el caracter cifrado, ya que sólo se necesitaría eso) y la ubicación de la palabra o caracter en el texto. Luego el programa tendría que hacer una diferencia para ver cuál es la clave, y descifrar el texto con esa clave, no veo cual es el problema.
|
|
|
En línea
|
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore ASUS M4A89GTD-PRO/USB3 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) Seagate 500 Gb XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
|
|
|
mat.marchantt
Desconectado
Mensajes: 3
|
Ahh, entiendo lo que dices, pero si no se la ubicacion de la palabra en el texto, que codigo hace que busque la ubicacion?
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Puedes separar las palabras y buscar las palabras con la misma longitud de caracteres (strtok o algo asi podes usar) y comprobar luego (tal como hizo Apokilptico con el nombre del mes) la diferencia entre sus caracteres
|
|
|
En línea
|
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
También podés analizar las palabras para buscar correlaciones, es decir, la palabra "auto" tiene unas determinadas diferencias entre sus letras, de la "a" a la "u" hay una cantidad de caracteres de la "u" a la "t" hay otra y así, si vos agarrás ese "patrón" y lo buscás en el texto, si encontrases una palabra que siguiese ese patrón, entonces lo más probable es que esa sea la palabra que tengas que reemplazar. La otra opción, es utilizando un diccionario.
|
|
|
En línea
|
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore ASUS M4A89GTD-PRO/USB3 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) Seagate 500 Gb XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
|
|
|
Died
Desconectado
Mensajes: 32
|
Suerte tienes de que tenga abierto un código para lo que necesitas Modifícalo un poco, está hecho según mis necesidades xD. La cosa es que le pongas una diferencia mínimamente alta (10, 20...) y mires si alguna frase tiene sentido lingüistico. Demasiado sencillo #include <stdio.h> #include <string.h> int a, i; int main (int argc, char *argv []) { printf ("Distancer 0.1 : Sagrini 11 : H-Sec.org"); if (argc != 3) { printf ("\nUse: %s <string> <diff>\n\n", argv [0]); return 0; } for (i =1; i <=atoi (argv [2]); i ++) { printf ("\nMoving %d chars...\n\t", i ); for (a =0; a < strlen (argv [1]); a ++) printf ("%c", argv [1][a ] + i ); } return 0; }
Un saludo! Sagrini
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cifrado César en Python
Scripting
|
.:WindHack:.
|
3
|
7,689
|
7 Junio 2010, 02:10 am
por Novlucker
|
|
|
cifrado César... elemental... ¿o no tanto?
Criptografía
|
Glezo
|
2
|
5,804
|
13 Octubre 2010, 14:11 pm
por Glezo
|
|
|
Qué preferis: Cifrado cesar o Ensalada cesar?
Foro Libre
|
Castg!
|
6
|
4,926
|
1 Agosto 2011, 22:45 pm
por scr21
|
|
|
[pseint] Ayuda - Cifrado César
Programación General
|
shadowzgz
|
4
|
12,071
|
24 Diciembre 2014, 01:32 am
por Eleкtro
|
|
|
Ayuda!!!!!!! MYSQL PARA WINDOWS Y LINUX, Cesar Perez Lopez
Bases de Datos
|
spaw2001mx
|
5
|
6,378
|
22 Febrero 2015, 03:51 am
por WIитX
|
|