Páginas: [1]
|
 |
|
Autor
|
Tema: Un poco de historia: Cifra César (Leído 2741 veces)
|
|
Aberroncho
|
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
|
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
|
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
|
|
|
|
|
dakomt
|
Yo creo que este subforo puede servir de manual porque hay de todo  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. http://www.megaupload.com/?d=1PBBOIRWsaludos!!
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1]
|
|
|
|