elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía (Moderador: kub0x)
| | | |-+  Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).  (Leído 6,194 veces)
mat.marchantt

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« en: 10 Julio 2011, 10:29 »

 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 Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« Respuesta #1 en: 10 Julio 2011, 20:08 »

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 Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« Respuesta #2 en: 11 Julio 2011, 11:33 »

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 Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« Respuesta #3 en: 11 Julio 2011, 13:08 »

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 Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« Respuesta #4 en: 12 Julio 2011, 03:47 »

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 Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« Respuesta #5 en: 12 Julio 2011, 04:34 »

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 Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« Respuesta #6 en: 12 Julio 2011, 12:59 »

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 Desconectado

Mensajes: 32


Ver Perfil
Re: Ayuda con una modificacion del cifrado cesar en c++( Ubuntu ).
« Respuesta #7 en: 12 Julio 2011, 22:38 »

Suerte tienes de que tenga abierto un código para lo que necesitas :D
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 ;)

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int a, i;
  5.  
  6. int main (int argc, char *argv [])
  7. {
  8. printf ("Distancer 0.1 : Sagrini 11 : H-Sec.org");
  9. if (argc != 3) { printf ("\nUse: %s <string> <diff>\n\n", argv [0]); return 0; }
  10.  
  11. for (i=1; i<=atoi (argv [2]); i++)
  12. {
  13. printf ("\nMoving %d chars...\n\t", i);
  14. for (a=0; a < strlen (argv [1]); a++)
  15. printf ("%c", argv [1][a] + i);
  16.  
  17. }
  18.  
  19. printf ("\n\n");
  20. return 0;
  21. }
  22.  

Un saludo! Sagrini
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cifrado César en Python
Scripting
.:WindHack:. 3 6,170 Último mensaje 7 Junio 2010, 02:10
por Novlucker
cifrado César... elemental... ¿o no tanto?
Criptografía
Glezo 2 4,216 Último mensaje 13 Octubre 2010, 14:11
por Glezo
Qué preferis: Cifrado cesar o Ensalada cesar?
Foro Libre
Castg! 6 3,115 Último mensaje 1 Agosto 2011, 22:45
por scr21
[pseint] Ayuda - Cifrado César
Programación General
shadowzgz 4 7,206 Último mensaje 24 Diciembre 2014, 01:32
por Eleкtro
Ayuda!!!!!!! MYSQL PARA WINDOWS Y LINUX, Cesar Perez Lopez
Bases de Datos
spaw2001mx 5 3,941 Último mensaje 22 Febrero 2015, 03:51
por WIитX
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines