elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Julio 2008, 02:29  



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía
| | | |-+  Un poco de historia: Cifra César
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Un poco de historia: Cifra César  (Leído 2741 veces)
Aberroncho
Colaborador
*****
Desconectado Desconectado

Mensajes: 1.283


Daría todo lo que sé por la mitad de lo que ignoro


Ver Perfil
Un poco de historia: Cifra César
« en: 23 Diciembre 2005, 09:22 »

La cifra César es un método muy simple de cifrado. Resulta sencillo de utilizar pero también resulta muy sencillo de descifrar. Como curiosidad, el nombre de cifra César lo recibe porque cuando Cicerón y su ejército quedó sitiado por los galos, Julio César le envió un mensaje cifrado de esta manera avisándole de que le había enviado refuerzos.

El método consiste en desplazar el alfabeto un número fijo de caracteres de modo que a cada letra del texto claro le corresponda una y solo una del alfabeto cifrado. Por ejemplo, supongamos que hacemos el siguiente desplazamiento:

Alfabeto texto claro..: ABCDEFGHIJKLMNÑOPQRSTUVWXYZ
Alfabeto texto cifrado: DEFGHIJKLMNÑOPQRSTUVWXYZABC


Si cogemos la frase "Esto es una prueba" y la ciframos con el alfabeto anterior nos quedaría: "HVWR HV XPD SUXHED" (podríamos suprimir los espacios en blanco o asignarles un código diferente para dificultar el descifrado).

El problema que tiene este tipo de cifra es que a cada letra en el alfabeto normal le corresponde una y solo una del alfabeto cifrado. En todos los idiomas existe una frecuencia característica de aparación de cada letra, así que si analizamos la frecuencia de aparición de cada una de las letras del texto cifrado y las sustituimos con las letras que en el idioma en que se escribió el texto original tienen la misma frecuencia habremos descifrado buena parte del texto.

Cuanto más cantidad de texto cifrado tengamos más preciso será el análisis estadístico y más fácil nos va a resultar atacar la cifra. Si probáis con la frase del ejemplo no os van a coincidir las frecuencias, pero si aplicáis el análisis estadístico a este post comprobaréis que las frecuencias de aparición si se aproximan a las frecuencias estándar del idioma español..

Para el que sienta curiosidad por jugar con todo esto, aquí os dejo las frecuencias del español que he encontrado por Internet:

E   16.78
A   11.96
O   8.69
L   8.37
S   7.88
N   7.01
D   6.87
R   4.94
U   4.80
I   4.15
T   3.31
C   2.92
P   2.76
M   2.12
Y   1.54
Q   1.53
B   0.92
H   0.89
G,F,V,W,J,Z,X,K   < 0,5%

Las vocales serán un 47% del texto
Las consonantes L,S,N,D serán un 30% del texto
Las letras V,Ñ,J,Z,X y K serán menos del 1% del texto



En línea

"La libertad, Sancho, es uno de los más preciosos dones que a los hombres dieron los cielos; con ella no pueden igualarse los tesoros que encierran la tierra y el mar: por la libertad, así como por la honra, se puede y debe aventurar la vida."
Don Quijote de la Mancha (Miguel de Cervantes)
sirdarckcat
sdc
CoAdmin
*****
Desconectado Desconectado

Mensajes: 4.201


HAND


Ver Perfil WWW
Re: Un poco de historia: Cifra César
« Respuesta #1 en: 24 Diciembre 2005, 01:32 »

Criptografia Clásica..
Solo sirve para divertirse, es muy insegura
TUTORIAL DE CRIPTOGRAFIA CLÁSICA

INDICE:

0-Breve Intro

>>CODIFICACIÓN:<<

1-CESAR
2-ESPEJO
3-MURCIELAGO
4-TABLA / MESA
5-SERIAL-CODE-CAPTION

------------------------------------------------------------------------------------------------------0
Hola, este es un tutorial para que aprendas que es encriptación, y como encriptar.

Bueno, la encriptación forma parte de la criptografia, que es la ciencia que estudia
los caracteres, como letras, numeros, signos, etc..

La encriptación esta basada en la codificación, y por eso para saber que es encriptación
debemos ver que es codificación.
------------------------------------------------------------------------------------------------------1
La codificación inicio, en la epoca de Roma, com Julio Cesar.
El mandaba a sus generales mensajes codificados, colocando la letra que esta 2 espacios
despues de la deseada.

por ejemplo:

para codificar segun el metodo CESAR, usamos:

>>>>>ANTES
>>atacaremos el valle
>->
<<<<<DESPUES
<>cvcectgoqu gn ycnng


bueno, ahora, tu codifica segun el metodo cesar:

HOLA

_~_~_

supondre que si supiste como, no es muy dificil.

pondre el alfabeto, para que veas como funciona:

A=C   |   N=P
B=D   |   O=Q
C=E   |   P=R
D=F   |   Q=S
E=G   |   R=T
F=H   |   S=U
G=I   |   T=V
H=J   |   U=W
I=K   |   V=X
J=L   |   W=Y
K=M   |   X=Z
L=N   |   Y=A
M=O   |   Z=B


bueno, ahora solo cambia la letra de la izquierda, por la de la derecha. ejemplo:

HOLA
 ||
JQNC


¿facil no?
------------------------------------------------------------------------------------------------------2
ahora, hay otro metodo muy comun, consiste en usar el simetrico del numero, en el alfabeto.
se llama metodo ESPEJO.

por ejemplo:

ayuda
 ||
zbfwz

Bueno, veamos:

A=Z   |   N=M
B=Y   |   O=L
C=X   |   P=K
D=W   |   Q=J
E=V   |   R=I
F=U   |   S=H
G=T   |   T=G
H=S   |   U=F
I=R   |   V=E
J=Q   |   W=D
K=P   |   X=C
L=O   |   Y=B
M=N   |   Z=A

es el resultado al reves.

hay muchos metodos, si quieres adelantarte a DEcodificacion, ya puedes, solo busca muchos asteriscos... abajo

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
------------------------------------------------------------------------------------------------------3
bueno decidiste seguir con codificación, esta bien, asi entenderas, mejor.

hay otro metodo, llamado MURCIELAGO.

este consite en cambiar las letras por numeros.

M=1
U=2
R=3
C=4
I=5
E=6
L=7
A=8
G=9
O=0

tiene una variante.

M=0
U=9
R=8
C=7
I=6
E=5
L=4
A=3
G=2
O=1

y una tercera y cuarta, poniendo el 0 al principio.

veras, para codificar, un mensaje en MURCIELAGO, haces esto.

primero, el mensaje.

NUDO INGLES

vemos las letras que tiene la palabra murcielago, que coincidad con el mensaje.

U
O
I
G
L
E

ahora vemos el valor que les corresponde (PRIMERA TABLA).

U=2
O=0
I=5
G=9
L=7
E=6

y cambiamos por estos numeros las letras en el mensaje.

N2D0 5N976S

ahi dice, NUDO INGLES.

si no entiendes algo leelo de nuevo.


------------------------------------------------------------------------------------------------------4
VEAMOS OTRO METODO.

este se llama, TABLA, o MESA.
y es algo cercano a la encriptación, pero sigue siendo codificación.

consiste en tomar una palabra cualquiera, pero que no repita letras, por ejemplo:

PANTALLA

no sirve, porque repite la "a" 2 veces y la "l".

TECLADO

si sirve, veamos..

y la ponemos en una tabla de 6x5, iniciando con la palabra elegida.

 T E C L A D
 O B F G H I
 J K M N P Q
 R S U V W X
 Y Z Ñ é á ó

LAS ULTIMAS 4, SOLO SON SI LAS USAS, SI USAS OTRO CARACTER ESPECIAL COMO !, O ?,
ETC.. PUEDES CAMBIARLAS,(incluso por espacio).

ahora, esa es tu contraseña, teclado.

esta contraseña la debe saber tanto el que codifica el mensaje como el que lo va
a decodificar, es una clave PUBLICA/PRIVADA.

////////---COMENTARIO------11111111111111111111111111111111111111111111111111111111

(((((la clave publica es con la que se codifica, la privada, es con la que se
decodifica,  la privada es secreta, la publica.. es publica)))))

EN ESTE METODO NO HAY CLAVE PUBLICA Y CLAVE PRIVADA, LA CLAVE ES PUBLICA Y
PRIVADA A LA VEZ.

////////---COMENTARIO------000000000000000000000000000000000000000000000000000000000


necesitamos un mensaje.

probemos con:

EL MOSAICO ESTA ROTO

separamos el mensaje en parejas.

EL MO SA IC OE ST AR OT O

si el numero de letras es impar, ponemos la letra Z, al final.
quedaria:

EL MO SA IC OE ST AR OT OZ


ahora, con la tabla:
 |1|2|3|4|5|6|
 -------------
a|T E C L A D|
b|O B F G H I|
c|J K M N P Q|
d|R S U V W X|
e|Y Z Ñ é á ó|
 -------------

buscamos la primera pareja.

EL

la E esta en:

2a
 
y la L, en:

4a

... asi con todos. quedaria:

2a,4a  EL
3c,1b  MO
2d,5a  SA
6b,3a  IC
1b,2a  OE
2d,1a  ST
5a,1d  AR
1b,1a  OT
1b,2e  Oz

AHORA, CAMBIAMOS LOS NUMEROS, DE LA LETRA, CON SU PAREJA.

por ejemplo
con MO.

M=3c, se cambia por 1c, porque la O, tiene un 1.

O=1b, se cambia por 3b, porque la M, tiene un 3.

queda.

M=1c
O=1b

vemos que letra esta en 1c

M=1c=J
O=3b=F

entonces

M=J
O=F

asi con todas las parejas..

E=L
L=E
M=J
O=F
S=W
A=E
I=F
C=D
O=B
E=T
S=R
T=E
A=T
R=W
O=T
T=O
O=B
z=Y

el mensaje codificado es:

LEJFWEFDBTRETWTOBY

dado que no hay espacios en este codigo (si no los pones en los caracteres especiales), puedes
ponerlos solo para confundir a un decodificador, inexperto.

LE JFW E FDBT RETWTO BY

claro, que el que reciba el mensaje debe saber que no sirven los espacios..

------------------------------------------------------------------------------------------------------5
Por ultimo, pongo uno de los mas utiles para codificar.
toma mucho tiempo, pero es extremadamente util, ya que
la cantidad de variables es muy muy grande.
se llama SerialcoDeCaption

ahora, dado que es muy larga la lista..
la pondre en un documento aparte.

tabla.txt
esta en este mismo ZIP.

consite en lo siguiente:

con los numeros del 1 al 676, hay pares de letras.

y para codificar un mensaje como:
HOLA MUNDO

(igual si es impar ponemos z al final)

buscamos ho =197
buscamos la =287
buscamos mu =333
buscamos nd =342
buscamos oz =390

si el numero es de 1a cifra o 2, coloca 0 antes.

HOLAMUNDOz quedaria;

197287333342390

ahora, los separamos en 2(o en 3,o 4, etc.. puedes crear tu propia rutina):

19 72 87 33 33 42 39 00

(si es impar agregamos 0)

les sumamos 1 y buscamos los pares de letras con esos numeros en la tabla.
o sumas lo que quieras, para hacerte una clave propia.

20=at
73=cr
88=dj
34=bh
34=bh
43=bq
40=bn
01=aa

el mensaje HOLAMUNDO queda codificado en:

ATCRDJBHBHBQBNAA

(si quieres hacerlo mas tuyo, el codigo, puedes re-codificar este mensaje)
Y APARTE PUEDES COLOCAR ENTRE CADA x CANTIDAD DE LETRAS UNA LETRA O MAS DE UNA PALABRA AL AZAR.

AJEURT, al azar. la agregamos cada 1,2,3,4,5,6,.. etc.. cantidad de letras.(tu decides el orden)

AATCJRDJEBHBHUBQBNARAT

para diversificarlo mas, debes cambiar el orden, en vez de aa=1 ab=2 etc.. puedes poner el orden que quieras..
o uno generado al azar, desafortunadamente el programa que generaba las claves fue demandado por derechos
de autor,el nombre del generador, tenia un nombre de una marca registrada, y no hemos podido encontrar una copia,
ojala tengas mas suerte.

ahora seguimos con DEcodificación.

****************************************************************************************************************************************************************-*
****************************************************************************************************************************************************************-*
****************************************************************************************************************************************************************-*
****************************************************************************************************************************************************************-*
******************************DECODIFICACION********************************************************************************************************************-*
*******************************************************************************************************************************************************************************************************************************************************************************
*******************************************************************************************************************************************************************************************************************************************************************************
**************************************************************************************************************************************************************                                                                                                                *
**************************************************************************************************************************************************************                                                    DEcodificación                                              *
**************************************************************************************************************************************************************                              >>>>>>>>>>>>>>>>>>>>>>>>>>3333333333<<<<<<<<<<<<<<<<<<<<<<                        *
**************************************************************************************************************************************************************                                                                                                                *
**/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/******************************************************************************************************************

Bien ahora, decodificación..

Antes que nada, para decodificacion son necesario responder algunas cosas.

1ero.- ¿Sabemos en que metodo esta codificado?

Lo increible es que para presumir algunas veces ponen:
   -------------------------------------------------------------
      /*********************************************
      *CODIFICADO CON SUPER CODIFICADOR ANTI TODO  *
      *-----------------MARSX----------------------*
      *********************************************/
      clav="jnqtjcmf.ef.efdpejgjdbs";
      /*********************************************
      ******DISPONIBLE EN http://www.marsx.enx******
      *********************************************/
            (este codificado no existe)
            ( solo es un ejemplo, ;-D )
   --------------------------------------------------------------

2ndo.- ¿Que tipo de información contiene, tenemos idea?
   
por ejemplo, lo conseguimos en.. un mail, y dice:
   
   --------------------------------------------------------------
      De:     "Director - TU JEFE" <superboss@whosyourdaddy.now>
      Para:   "Empleado - TU" <pablito@pobres.df.com>
      Fecha:  11/09/2001 10:02:51 GMT -5
      Asunto: TE MANDO LAS ESTADISTICAS PARA QUE LAS PASES A MANO
      <!--FILE: encoded1.enc-->
      |*|
      MN;LNCh^c]_4@_]b[4P[fil4++*)*+),
      ***+.*-,++)*+),***+/*+-+,)*+),**
      *+/,*.+/)*+),***+0*,/+3)*+),***
      +0*.0+-)*/),***+0*11+1)*0),***+0
      +*2*0)*2),***+0,*3,/)*3),***+00+
      +**+)+*),***+03+++*,)+*),***+30+
      +,+*)+*),***+33++-++)+*),***+333
      +.*/)++),***,+2*+/+*)++),***,./*
      +0,-)+,),***,03/?H>
      |*|
      <!--FILE: encoded1.enc-->
   ---------------------------------------------------------------
al menos sabemos que son estadisticas..

3ero.- ¿Que tanta seguridad necesita el documento, la necesaria para encriptacion?

si obtenemos las contraseñas de todos los usarios de una organización, es extremadamente probable
que los encripte, y no los codifique, a que si enontramos un password que por ejemplo, un gestor
de FTP guarda, para recordarlo.


   Ya teniendo estas variables.. y pensando que respondimos:
      1.-si
      2.-no
      3.-no
   

Para decodificar el primero haremos lo siguiente:

vamos a http://www.marsx.enx (ni entres que no existe), y vemos donde esta el codificador ese..
el codigo es:

------------------------------------------------------------------------------------
   <script language="JavaScript">
      function co(text){
         var antes=text.value;
         var despues ="";   
            for(i=0;i<antes.length;i++){
               despues+=String.fromCharCode(antes.charCodeAt(i)+1);
            }
         text.value=despues;
      }
   </script>
------------------------------------------------------------------------------------

y lo que hace es.. regresa el caratcer que esta despues del recibido.

ahora supondre que no sabes programar.

mandamos a codificar:
   HOLA
y recibimos:
   -------------------------------------------------------------
      /*********************************************
      *CODIFICADO CON SUPER CODIFICADOR ANTI TODO  *
      *-----------------MARSX----------------------*
      *********************************************/
      clav="IPMB";
      /*********************************************
      ******DISPONIBLE EN http://www.marsx.enx******
      *********************************************/
   --------------------------------------------------------------
   
ahora pensemos..

mandamos 4 letras, y recibimos 4, tal vez es coincidencia..

mandamos a codificar:
   HOLA MUNDO
y recibimos:
   -------------------------------------------------------------
      /*********************************************
      *CODIFICADO CON SUPER CODIFICADOR ANTI TODO  *
      *-----------------MARSX----------------------*
      *********************************************/
      clav="IPMB.NVOEP";
      /*********************************************
      ******DISPONIBLE EN http://www.marsx.enx******
      *********************************************/
   --------------------------------------------------------------
   
ahora, esto esta mejor.
recibimos el IPMB del primer HOLA.. y aparte 6 caracteres nuevos.

ya se que:
HOLA=IPMB
 MUNDO=.NVOEP

ahora, trata de esforsar mucho tu cerebro.. y ve que tienen en comun:

H con I
O con P
L con M
A con B
  con .
M con N
U con V
N con O
D con E
O con P

y vemos que la O, la unica letra repetida, se repite en la tabla, oseaa que la letra nunca cambia..

y bueno, ya para genios, se daran cuenta que la H es la letra que esta antes que la i, la o de la p,
etc..

tambien pudiste haber puesto (una ves que ya sabes que es codificacion):

mando a codificar:

ABCDEFGHIJKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 .

y recibo:
   -------------------------------------------------------------
      /*********************************************
      * CODIFICADO CON SUPER CODIFICADOR ANTI TODO *
      *-----------------MARSX----------------------*
      *********************************************/
      clav="BCDEFGHIJKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 .A";
      /*********************************************
      ******DISPONIBLE EN http://www.marsx.enx******
      *********************************************/
   --------------------------------------------------------------
   
y ya es mas que obvio.. como codifica.. y si no lo has visto, solo haz una tabla asi:
A=B
B=C
C=D
D=E
E=F
F=G
G=H
.. hasta el final.

y las decodificas manualmente.

y para los programadores.. solo deben de modificar el codigo, y cambiar el + por - asi:

------------------------------------------------------------------------------------
   <script language="JavaScript">
      function co(text){
         var antes=text.value;
         var despues ="";   
            for(i=0;i<antes.length;i++){
               despues+=String.fromCharCode(antes.charCodeAt(i)-1);
            }
         text.value=despues;
      }
   </script>
------------------------------------------------------------------------------------

y listo, tienes un decodificador.

==============================-------ACTIVIDAD-------==============================

el segundo mensaje, el del correo..
aplica lo que has aprendido, y decodificalo.
no sabes el metodo por medio del cual fue obtenido, sin embargo sabes que tiene estadisticas.. una pista:

-tablas
-fechas
-años
-numeros

pista: investiga que es ASCII y consigue una tabla ASCII.

te recomiendo que lo conviertas a sus valores hexadecimales..
puedes hacerlo desde:
   http://x.ldhackers.com.ar/EUU.html

piensa en una tabla, la primera fila dice que tipo de valores hay..

por ejemplo:

   FECHA      CANTIDAD   comentario
   10/01/01   $500.00      n/a
   11/01/01   $150.00      muy poco
   etc..

y ultima pista..
   aunque no sabes en que esta codificado, sabes que el valor hexadecimal %1D=#.. lo sabes porque ya has
   interceptado mensajes antes y los primeros 6 caracteres siempre son iguales.. lo que demuestra que es
   un comentario, o cabezera.. y despues de buscar un rato en google, te diste cuenta de que en todos los
   mensajes codificados, empiesan con #START, o con #BEGIN.. depende de la version del codificador, y como
   no sabes su version, almenos sabes que valor es el primero.

cuando logres decodificarlo, conseguiras el resto del manual..

lo puedes obtener mandandome un MP, con la clave...
la clave es el valor que hay el dia 5 de noviembre del 2000 en la tabla del mail que debes decodificar.

hacemos esto para asegurar que hallas entendido.. si quieres el manual, pero no tiene ni idea de como
resolver este problema, pideme el manual para decodificar este mensaje por mp:

NOS VEMOS PRONTO.
« Última modificación: 24 Diciembre 2005, 01:35 por Sirdarckcat » En línea

Carloswaldo
*****
Desconectado Desconectado

Mensajes: 2.317


Lo que haría sería hacerme pasar por sordo-mudo...


Ver Perfil WWW
Re: Un poco de historia: Cifra César
« Respuesta #2 en: 22 Julio 2007, 05:16 »

Todo esto me parece muy interesante, sobre todo porque no sabia nada de criptografia y me parece muy bueno para principiantes como yo, quisiera que me digan donde puedo encontrar un manual o tutorial basico de cripto, gracias
En línea

Lo que haría sería hacerme pasar por sordomudo y así no tendría que hablar. Si querían decirme algo, tendrían que escribirlo en un papelito y enseñármelo. Al final se hartarían y ya no tendría que hablar el resto de mi vida.

Traducción de textos
http://foro.elhacker.net/-t209349.0.html
Comunidad de idiomas
http://babelruins.tk/
Descarga de mp3
http://foro.elhacker.net/-t206265.0.html
dakomt
*
Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: Un poco de historia: Cifra César
« Respuesta #3 en: 02 Agosto 2007, 21:21 »

Yo creo que este subforo puede servir de manual porque hay de todo  ;D pero si buscas un libro yo particularmente te recomiendo "Criptografía y Seguridad en Computadores" de Manuel José Lucena López, lo puedes descargar gratuitamente desde la página web del autor : http://wwwdi.ujaen.es/~mlucena/wiki/pmwiki.php.

Y ya de paso aprovecho para aportar  mi granito de arena para los que estén interesados en este mundillo de la Criptografía y os dejo un enlace para descargar un par de aplicaciones para "trapichear" con el cifrado de César y el Cifrado Afín o César genérico. :D 

http://www.megaupload.com/?d=1PBBOIRW

saludos!!
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  








Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC