Mostrando entradas con la etiqueta sustituciones monoalfabéticas. Mostrar todas las entradas
Mostrando entradas con la etiqueta sustituciones monoalfabéticas. Mostrar todas las entradas

lunes, julio 19, 2010

Criptografía clásica. Sustituciones monoalbaféticas. Cifrado monoalfabético general.

Cifrado monoalfabético general

Descripción

    El cifrado monoalfabético general consiste en asignar las letras que van a componer el mensaje cifrado a las letras del alfabeto de forma aleatoria. Esto no es más que hacer una permutación de las letras del alfabeto.

En el caso del castellano tenemos 27 letras, así que pedemos formar un total de 27! posibles permutaciones de las mismas. Cada posible permutación es un cifrado monoalfabético diferente.

La llave (clave) de este cifrado es la permutación que se ha usado para cifrar el texto, y debe permanecer secreto, ya que si se hace público, cualquiera podría descifrar el texto de forma fácil, con sólo invertir la permutación.

Como ejemplo de cifrado, consideremos la siguiente permutación de letras:

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

Con esta permutación de las letras se puede cifrar un mensaje cualquiera como "Vuelvo el martes" y obtener como resultado "Botmbe tm xpysft".

Para descifrar un mensaje cifrado, sólo hay que invertir la permutación y aplicarla al mensaje cifrado. La permutación inversa de la anterior es:

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

Si nos encontramos con el texto cifrado "mp omszxp kpfp itm kpxzre", que sabemos que ha sido cifrado con la permutación anterior, no tenemos más que aplicar la permutación inversa y obtenemos "la última casa del camino", que es el texto original.


Criptoanálisis

    El criptoanálisis de textos cifrados con este método no es demasiado complejo. El análisis a fuerza bruta consistiría en probar con todas las permutaciones posibles hasta que el texto cifrado cobrara sentido. No vamos a entrar en él, ya que hay 27! permutaciones.

Como en casos anteriores es menos costoso hacer un análisis estadístico del texto cifrado, ya que todos los cifrados monoalfabéticos mantienen las frecuencias de aparición de las letras del alfabeto. En este caso las frecuencias estarán cambiadas de sitio según la permutación que se haya escogido para cifrar el texto, pero se corresponderán con las del lenguaje.

Supongamos que nos encontramos con el siguiente texto cifrado: 
Ft mmtje p ftrszy pgfemospxtrst syprfqeyspie qey tm mtrse gpmprkte it mp xofzkp, w tm yekt it mp xthzmmp it ktmzp fegyt fo xthzmmp, w tm emey spr vytfke, spr jypse it fo qztm. Tm sztxqe ft ñpgzp itstrzie, re tnzfszp wp. Feme tnzfszpr tmmef ief, orzief, tr fzmtrkze. Ktmzp re ñpgmpgp, re ytzp, re mt seysoypgp wp ker fof gyexpf.
Si hacemos un análisis estadístico del texto tenemos que las letras mas usadas ordenadas por mayor uso son t, p, e, m, f, z, r y s.

Vamos a intentar sustituirlas por las letras más frecuentes en Castellano, a ver si va tomando sentido el texto. Primero vamos a sustituir la t por la e:
Fe mmeje p ferszy pgfemospxerse syprfqeyspie qey em merse gpmprkee ie mp xofzkp, w em yeke ie mp xehzmmp ie kemzp fegye fo xehzmmp, w em emey spr vyefke, spr jypse ie fo qzem. Em szexqe fe ñpgzp ieserzie, re enzfszp wp. Feme enzfszpr emmef ief, orzief, er fzmerkze. Kemzp re ñpgmpgp, re yezp, re me seysoypgp wp ker fof gyexpf.
En la lista de palabras más frecuentes en Castellano, la palabra más usada es de, y en el texto cifrado la palabra más frecuente acabada en e es it (suponiendo que la t se descifre como e). Si sustituimos en el texto cifrado it por de tenemos:
Fe mmeje p ferszy pgfemospxerse syprfqeyspde qey em merse gpmprkee de mp xofzkp, w em yeke de mp xehzmmp de kemzp fegye fo xehzmmp, w em emey spr vyefke, spr jypse de fo qzem. Em szexqe fe ñpgzp deserzde, re enzfszp wp. Feme enzfszpr emmef def, orzdef, er fzmerkze. Kemzp re ñpgmpgp, re yezp, re me seysoypgp wp ker fof gyexpf.
Si nos fijamos en el texto cifrado, hay tres palabras que contienen el bigrama mm: mmtje, xthzmmp y tmmef. En castellano, normalmente cuando aparecen dos letras iguales seguidas en una palabra se trata de ll (lluvia, callar,...), de rr (perro, correr,...) o de la secuencia cc (acceso, acción, ...). Sin embargo, de estos tres casos el único que puede aparecer al principio de una palabra es el de ll. Por tanto lo más seguro es que la palabra cifrada mmtje empiece por ll. Entonces, sustituyendo en el texto cifrado la m por la l tenemos: 
Fe lleje p ferszy pgfelospxerse syprfqeyspde qey el lerse gplprkee de lp xofzkp, w el yeke de lp xehzllp de kelzp fegye fo xehzllp, w el eley spr vyefke, spr jypse de fo qzel. El szexqe fe ñpgzp deserzde, re enzfszp wp. Fele enzfszpr ellef def, orzdef, er fzlerkze. Kelzp re ñpglpgp, re yezp, re le seysoypgp wp ker fof gyexpf.
Si seguimos mirando el texto podemos observar que hay una palabra de dos letras, mp, de la que sabemos que la primera es una l. Teniendo en cuenta que la palabra la es una de las más usadas, que la letra a es la segunda más usada en castellano y que la letra p es la segunda más frecuente en el texto cifrado parece lógico sustituir la p por la a:

Fe lleje a ferszy agfelosaxerse syarfqeysade qey el lerse galarkee de la xofzka, w el yeke de la xehzlla de kelza fegye fo xehzlla, w el eley sar vyefke, sar jyase de fo qzel. El szexqe fe ñagza deserzde, re enzfsza wa. Fele enzfszar ellef def, orzdef, er fzlerkze. Kelza re ñaglaga, re yeza, re le seysoyaga wa ker fof gyexaf.
Ahora nos podemos fijar en que tenemos en el texto cifrado unas cuantas ocurrencias de la palabra cifrada w. Teniendo en cuenta que las palabras más frecuentes en Castellano de una letra son la a y la y y que la a ya la hemos sustituido parece acertado sustituir la w por la y:

Fe lleje a ferszy agfelosaxerse syarfqeysade qey el lerse galarkee de la xofzka, y el yeke de la xehzlla de kelza fegye fo xehzlla, y el eley sar vyefke, sar jyase de fo qzel. El szexqe fe ñagza deserzde, re enzfsza ya. Fele enzfszar ellef def, orzdef, er fzlerkze. Kelza re ñaglaga, re yeza, re le seysoyaga ya ker fof gyexaf.
Nos encontramos en el texto cifrado la palabra ellef, de la que nos quedan por descifrar las dos últimas letras. Esta palabra sólo puede haberse obtenido cifrando ellas o ellos. Como sabemos que la p se descifra por a, podemos descifrar la e por la o y la f por la s:

Se llejo a serszy agsolosaxerse syarsqoysado qoy el lerso galarkeo de la xoszka, y el yoke de la xehzlla de kelza sogye so xehzlla, y el oloy sar vyesko, sar jyaso de so qzel. El szexqo se ñagza deserzdo, ro enzssza ya. Solo enzsszar ellos dos, orzdos, er szlerkzo. Kelza ro ñaglaga, ro yeza, ro le soysoyaga ya kor sos gyoxas.
La penúltima palabra de texto es sos. En castellano, la única palabra por la que tiene sentido descifrarla es por sus, así que cambiamos la o por la u:

Se llejo a serszy agsolusaxerse syarsqoysado qoy el lerso galarkeo de la xuszka, y el yoke de la xehzlla de kelza sogye su xehzlla, y el oloy sar vyesko, sar jyaso de su qzel. El szexqo se ñagza deserzdo, ro enzssza ya. Solo enzsszar ellos dos, urzdos, er szlerkzo. Kelza ro ñaglaga, ro yeza, ro le soysuyaga ya kor sus gyoxas.
Hacia el final del texto aparece la palabra er. Sabemos que empieza por e, pero la segunda letra sigue cifrada. Las candidatas para descifrarla son n, l y s. Como ya hemos asignado anteriormente la l y la s, sustituimos ahora la r por la n:

Se llejo a senszy agsolusaxense syansqoysado qoy el lenso galankeo de la xuszka, y el yoke de la xehzlla de kelza sogye su xehzlla, y el oloy san vyesko, san jyaso de su qzel. El szexqo se ñagza desenzdo, no enzssza ya. Solo enzsszan ellos dos, unzdos, en szlenkzo. Kelza no ñaglaga, no yeza, no le soysuyaga ya kon sus gyoxas.
Una de las últimas palabras del texto cifrado es unzdos, que solo cobra sentido si sustituimos la z por la i:

Se llejo a sensiy agsolusaxense syansqoysado qoy el lenso galankeo de la xusika, y el yoke de la xehilla de kelia sogye su xehilla, y el oloy san vyesko, san jyaso de su qiel. El siexqo se ñagia desenido, no enissia ya. Solo enissian ellos dos, unidos, en silenkio. Kelia no ñaglaga, no yeia, no le soysuyaga ya kon sus gyoxas.
Más o menos al final aparece la palabra silenkio, que indica claramente que debemos sustituir la k por la c:

Se llejo a sensiy agsolusaxense syansqoysado qoy el lenso galanceo de la xusica, y el yoce de la xehilla de Celia sogye su xehilla, y el oloy san vyesco, san jyaso de su qiel. El siexqo se ñagia desenido, no enissia ya. Solo enissian ellos dos, unidos, en silencio. Celia no ñaglaga, no yeia, no le soysuyaga ya con sus gyoxas.
Tal y como está en texto ya, se ven claras las sustituciones: g por b, x por m y s por t
Se llejo a sentiy absolutamente tyansqoytado qoy el lento balanceo de la musica, y el yoce de la mehilla de Celia sobye su mehilla, y el oloy tan vyesco, tan jyato de su qiel. El tiemqo se ñabia detenido, no enistia ya. Solo enistian ellos dos, unidos, en silencio. Celia no ñablaba, no yeia, no le toytuyaba ya con sus byomas.
Realizamos las sustituciones: h por j, y por r, q por p, ñ por h y n por x:

Se llejo a sentir absolutamente transportado por el lento balanceo de la musica, y el roce de la mejilla de Celia sobre su mejilla, y el olor tan vresco, tan jrato de su piel. El tiempo se habia detenido, no existia ya. Solo existian ellos dos, unidos, en silencio. Celia no hablaba, no reia, no le torturaba ya con sus bromas.
Por último realizamos las sustituciones: j por g y v por f:

Se llegó a sentir absolutamente transportado por el lento balanceo de la música, y el roce de la mejilla de Celia sobre su mejilla, y el olor tan fresco, tan grato de su piel. El tiempo se había detenido, no existía ya. Sólo existían ellos dos, unidos, en silencio. Celia no hablaba, no reía, no le torturaba ya con sus bromas.
Este texto ha sido extraído de "Edad prohibida", de Torcuato Luca de Tena.

jueves, julio 15, 2010

Criptografía clásica. Substitucione monoalfabéticas. Cifrados afines.

Cifrados afines

Descripción

Se trata de complicar un poco el cifrado de César. En este caso, el criptosistema está determinado por dos enteros, a y b comprendidos entre 0 y 26, ambos extremos incluidos. Además, a y 27 son primos relativos. Una letra x se cifra como c de la forma:

c = (ax + b) mod 27

De esta forma, si a = 4 y b = 3, se obtiene la sustitución:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
3 7 11 15 19 23 0 4 8 12 16 20 24 1 5 9 13 17 21 25 2 6 10 14 18 22 26

Esta sustitución al decodificarla en letras da como resultado:

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

Por ejemplo, la frase "No me gustan los caramelos" se cifraría como "BJ XS AGYCDB TJY LDUDXSTJY".

La restricción de que a y 27 sean primos relativos está para asegurar que la sustitución sea uno a uno y que se pueda invertir para obtener el texto original. Por tanto, para descifrar el texto se usa la expresión:

x = (c-b) a-1 mod 27

y si a no fuera primo relativo con 27, no existiría su inverso.


Criptoanálisis

Supongamos que nos encontramos el siguiente texto cifrado:
MCIONW CD CXCL QZLCNUV KWLCP. S QV BLWNUW PV VNMWNULW VN DC BDCXC QV DC ONICMZDCQC MWNMVBMOWN, VN HVDFLCNW. PV PVNUW VN ZNW QV DWP HCNMWP. ALVNUV C VD, DC OFDVPOC MOLMZDCL BCLVMOC UWQCEOC EOEOL VD BCEWL QV DC TWLNCQC. ZN PONOVPULW PODVNMOW S DC DZX IWLUVMONC, DC DDWEOXNC, QCHCN C CGZVD LONMWN QV HZVNWP COLVP ZN PVNUOQW WIONWPW: BCLVMOC MWIW PO VN CGZVDDC EOVTC VQOAOMCMOWN UCNFVNUV C DC OFDVPOC PV VPMWNQOVLC CDFZN BWQVLWPW S UVIOHDV VNOFIC, S ZNC PZVLUV QV ACPMONCMOWN ONVÑBDOMCHDV ICNUVNOC DC IOLCQC QV ICLUON MDCECQC VN CGZVD LONMWN GZV EVOC BWL BLOIVLC EVX VN PZ EOQC.

Siempre se va a poder criptoanalizar como se hace en los cifrados monoalfabéticos generales, pero en el caso de los criptosistemas afines se puede llegar a criptoanalizar el texto de una forma más sencilla. Sabemos que se ha seguido una ecuación del tipo c = (ax + b) mod 27, donde a y 27 son primos relativos. Por tanto a no puede ser un múltiplo de 3. Dscartamos pues los casos a = {3, 6, 9, 12, 15, 18, 21, 24}.

De un análisis estadístico del texto cifrado tenemos que las letras más frecuentes por orden de aparición son C, V, N, O y W. Comparándolas con las letras más frecuentes del castellano podemos suponer que la e se ha cifrado como C y que la a se ha cifrado como V. Planteamos el siguiente sistema de ecuaciones:

C = (ae + b) mod 27
V = (aa + b) mod 27

que codificado a números queda como:

2 = (4a + b) mod 27
22 = (0a + b) mod 27


Resolviendo el sistema, tenemos que a = b = 22, y para descifrar aplicamos x = (c-22)22-1 mod 27 , con lo que obtenemos:
ceswrp et efen bknerla xpnem. g ba onprlp ma arcprlnp ar te otefe ba te wrsecktebe cprcaocwpr, ar datynerp. ma marlp ar krp ba tpm dercpm. znarla e at, te wytamwe cwnckten oenacwe lpbejwe jwjwn at oejpn ba te vpnrebe. kr mwrwamlnp mwtarcwp g te tkf spnlacwre, te ttpjwfre, beder e eñkat nwrcpr ba dkarpm ewnam kr marlwbp pswrpmp: oenacwe cpsp mw ar eñkatte jwave abwzwcecwpr leryarla e te wytamwe ma amcprbwane etykr opbanpmp g laswdta arwyse, g kre mkanla ba zemcwrecwpr wrahotwcedta serlarwe te swnebe ba senlwr ctejebe ar eñkat nwrcpr ñka jawe opn onwsane jaf ar mk jwbe.

El texto que nos ha salido no se parece en nada a un texto llano en castellano, así que nos hemos equivocado en las sustituciones anteriores. La estadística acierta casi siempre, pero también falla. Probemos ahora la sustitución C por a y V por e, esto es, supongamos que el texto cifrado las letras más probables son la a y después la e. Obtenemos el siguiente sistema de ecuaciones:

V = (ae + b) mod 27
C = (aa + b) mod 27

que codificado a números queda como:

22 = (4a + b) mod 27
2 = (0a + b) mod 27

Resolviendo el sistema, tenemos que a = 5 y b = 2. Desciframos con x = (c-2)5-1 mod 27 , con lo que obtenemos:
Caminó al azar durante horas. Y de pronto se encontró en la plaza de la Inmaculada Concepción, en Belgrano. Se sentó en uno de los bancos. Frente a él, la iglesia circular parecía todavía vivir el pavor de la jornada. Un siniestro silencio y la luz mortecina, la llovizna, daban a aquel rincón de Buenos Aires un sentido ominoso: parecía como si en aquella vieja edificación tangente a la iglesia se escondiera algún poderoso y temible enigma, y una suerte de fascinación inexplicable mantenía la mirada de Martín clavada en aquel rincón que veía por primera vez en su vida.

El texto toma sentido, lo que nos confirma que la llave que se ha usado es a = 5 y b = 2.

Este texto ha sido extraído de "Sobre héroes y tumbas" de Ernesto Sabato.

lunes, julio 12, 2010

Criptografía clásica. Sustituciones Monoalfabéticas. Cifrado de César con palabra clave

Cifrado de César con palabra clave

    Seguimos con las Sustituciones Monoalfabéticas. Ahora le toca el turno a una variante del Cifrado de César: Cifrado de César con palabra clave.

Descripción

Es otra modificación del cifrado de César. En este caso se escoge un entero k entre 0 y 26 (ambos extremos incluidos) y una palabra o una frase corta a la que llamaremos palabra llave (clave). Si en la palabra llave hay letras repetidas, sólo se tendrá en cuenta la primera ocurrencia de cada una. La palabra llave será escrita debajo del alfabeto, empezando en la posición que indique k y saltando las letras repetidas. Por ejemplo, si escogemos k = 7 y la palabra llave EXTREMADURA tenemos:

0             7                                     26
A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
              E X T R M A D U
 
El resto de las letras se emparejan con las que quedan en orden alfabético, empezando justo después de la palabra llave:

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

Una vez que se ha completado la sustitución, ya se puede cifrar cualquier texto, por ejemplo, la frase "Hoy no me puedo levantar" queda como "EBÑ DB AW CJWVB MWKPDIPG".

El número de llaves (claves) de este cifrado es grande, aunque no podamos encontrar llaves para las 27! sustituciones posibles como en una sustitución monoalfabética general. Es un método más fuerte que el cifrado de César normal.


Criptoanálisis

El criptoanálisis de textos cifrados con este cifrado no es demasiado complejo. El análisis a fuerza bruta consistiría en probar con todas las permutaciones posibles hasta que el texto cifrado cobre sentido. No vamos a entrar en él, ya que hay 27! permutaciones.

Es menos costoso hacer un análisis estadístico del texto cifrado ya que todos los cifrados monoalfabéticos mantienen las frecuencias de aparición de las letras del alfabeto. En este caso las frecuencias estarán cambiadas de sitio según la permutación que se haya escogido para cifrar el texto, pero se corresponderán con las del lenguaje.

Supongamos que nos encontramos con el siguiente texto cifrado:

Q YB TGLYO VBJKTBKY MVUHD, WDB OT XYOVWTXYST Q XLHYST JDOD FDJVUOYJ YB YO WHVJKTO. LBT MVUHTWVDB KYBLY WDAD YO YWD, D YO HYWLYHXD; XLHT Q fHTIVO T LB KVYAFD, WTFTS XY XYHHVUTH LB ALHD D XYJFYHKTH LB WDHTSDB. Q YJT MVUHTWVDB TAYBTSD, FDH LB VBJKTBKY, YJKTOOTH YB AVO FYXTSDJ OT LHBT GLY TFHYJTUT YO WDHTSDB XYO HYQ. FYHD YO JDHKVYIVD YHT ALQ FDXYHDJD, D OT BTKLHTOYST XY HYQ FDWD FHDFVWVT T KTOYJ WDJTJ. XY JLYHKY GLY, XY VBAYXVTKD, OT MVUHTWVDB WYJD, Q XY BLYMD YO WDHTSDB XYO HYQ FYHATBYWVD T JTOMD.

Si hacemos un análisis estadístico del texto tenemos que las letras mas usadas ordenadas por mayor uso son Y, T, D, H, B y O.

Las tres letras más frecuentes en castellano son e, a y o. Vamos a sustituirlas por las tres letras más frecuentes del texto cifrado para ver lo que obtenemos:

Q eB aGLeO VBJKaBKe MVUHo, WoB Oa XeOVWaXeSa Q XLHeSa JoOo FoJVUOeJ eB eO WHVJKaO. LBa MVUHaWVoB KeBLe WoAo eO eWo, o eO HeWLeHXo; XLHa Q fHaIVO a LB KVeAFo, WaFaS Xe XeHHVUaH LB ALHo o XeJFeHKaH LB WoHaSoB. Q eJa MVUHaWVoB aAeBaSo, FoH LB VBJKaBKe, eJKaOOaH eB AVO FeXaSoJ Oa LHBa GLe aFHeJaUa eO WoHaSoB XeO HeQ. FeHo eO JoHKVeIVo eHa ALQ FoXeHoJo, o Oa BaKLHaOeSa Xe HeQ FoWo FHoFVWVa a KaOeJ WoJaJ. Xe JLeHKe GLe, Xe VBAeXVaKo, Oa MVUHaWVoB WeJo, Q Xe BLeMo eO WoHaSoB XeO HeQ FeHAaBeWVo a JaOMo.

En el texto encontramos eO y Oa; eO podría ser en, es o el, con lo que Oa podría ser na, sa o la respectivamente. Parece lógico que cambiemos la O por una l, que es lo único que parece tener sentido:

Q eB aGLel VBJKaBKe MVUHo, WoB la XelVWaXeSa Q XLHeSa Jolo FoJVUleJ eB el WHVJKal. LBa MVUHaWVoB KeBLe WoAo el eWo, o el HeWLeHXo; XLHa Q fHaIVl a LB KVeAFo, WaFaS Xe XeHHVUaH LB ALHo o XeJFeHKaH LB WoHaSoB. Q eJa MVUHaWVoB aAeBaSo, FoH LB VBJKaBKe, eJKallaH eB AVl FeXaSoJ la LHBa GLe aFHeJaUa el WoHaSoB Xel HeQ. FeHo el JoHKVeIVo eHa ALQ FoXeHoJo, o la BaKLHaleSa Xe HeQ FoWo FHoFVWVa a KaleJ WoJaJ. Xe JLeHKe GLe, Xe VBAeXVaKo, la MVUHaWVoB WeJo, Q Xe BLeMo el WoHaSoB Xel HeQ FeHAaBeWVo a JalMo.

Tenemos las palabras Xel y Xe, con lo que parece razonable sustituir la X por una d:

Q eB aGLel VBJKaBKe MVUHo, WoB la delVWadeSa Q dLHeSa Jolo FoJVUleJ eB el WHVJKal. LBa MVUHaWVoB KeBLe WoAo el eWo, o el HeWLeHdo; dLHa Q fHaIVl a LB KVeAFo, WaFaS de deHHVUaH LB ALHo o deJFeHKaH LB WoHaSoB. Q eJa MVUHaWVoB aAeBaSo, FoH LB VBJKaBKe, eJKallaH eB AVl FedaSoJ la LHBa GLe aFHeJaUa el WoHaSoB del HeQ. FeHo el JoHKVeIVo eHa ALQ FodeHoJo, o la BaKLHaleSa de HeQ FoWo FHoFVWVa a KaleJ WoJaJ. de JLeHKe GLe, de VBAedVaKo, la MVUHaWVoB WeJo, Q de BLeMo el WoHaSoB del HeQ FeHAaBeWVo a JalMo.

Tenemos la palabra de una Q, que podría descifrarse por y o a, pero la a ya la hemos sustituido, así que sustituimos la Q por una y:

y eB aGLel VBJKaBKe MVUHo, WoB la delVWadeSa y dLHeSa Jolo FoJVUleJ eB el WHVJKal. LBa MVUHaWVoB KeBLe WoAo el eWo, o el HeWLeHdo; dLHa y fHaIVl a LB KVeAFo, WaFaS de deHHVUaH LB ALHo o deJFeHKaH LB WoHaSoB. y eJa MVUHaWVoB aAeBaSo, FoH LB VBJKaBKe, eJKallaH eB AVl FedaSoJ la LHBa GLe aFHeJaUa el WoHaSoB del Hey. FeHo el JoHKVeIVo eHa ALy FodeHoJo, o la BaKLHaleSa de Hey FoWo FHoFVWVa a KaleJ WoJaJ. de JLeHKe GLe, de VBAedVaKo, la MVUHaWVoB WeJo, y de BLeMo el WoHaSoB del Hey FeHAaBeWVo a JalMo.

Tenemos la palabra Hey, que puede ser rey o ley, con lo que la H se puede sustituir por r o por l. Para resolver el problema basta que nos fijemos en la palabra eHa, que con las dos sustituciones posibles de H queda como era o ela. Parece más adecuado realizar la sustitución de la letra H por r, con lo que queda:

y eB aGLel VBJKaBKe MVUro, WoB la delVWadeSa y dLreSa Jolo FoJVUleJ eB el WrVJKal. LBa MVUraWVoB KeBLe WoAo el eWo, o el reWLerdo; dLra y fraIVl a LB KVeAFo, WaFaS de derrVUar LB ALro o deJFerKar LB WoraSoB. y eJa MVUraWVoB aAeBaSo, For LB VBJKaBKe, eJKallar eB AVl FedaSoJ la LrBa GLe aFreJaUa el WoraSoB del rey. Fero el JorKVeIVo era ALy FoderoJo, o la BaKLraleSa de rey FoWo FroFVWVa a KaleJ WoJaJ. de JLerKe GLe, de VBAedVaKo, la MVUraWVoB WeJo, y de BLeMo el WoraSoB del rey FerAaBeWVo a JalMo.

En el texto aparece la palabra Fero, que se descifra por pero, lo que nos hace sustituir la F por la p:

y eB aGLel VBJKaBKe MVUro, WoB la delVWadeSa y dLreSa Jolo poJVUleJ eB el WrVJKal. LBa MVUraWVoB KeBLe WoAo el eWo, o el reWLerdo; dLra y fraIVl a LB KVeApo, WapaS de derrVUar LB ALro o deJperKar LB WoraSoB. y eJa MVUraWVoB aAeBaSo, por LB VBJKaBKe, eJKallar eB AVl pedaSoJ la LrBa GLe apreJaUa el WoraSoB del rey. pero el JorKVeIVo era ALy poderoJo, o la BaKLraleSa de rey poWo propVWVa a KaleJ WoJaJ. de JLerKe GLe, de VBAedVaKo, la MVUraWVoB WeJo, y de BLeMo el WoraSoB del rey perAaBeWVo a JalMo.

Con la palabra poderoJo deducimos que la J se sustituye por la s:

y eB aGLel VBsKaBKe MVUro, WoB la delVWadeSa y dLreSa solo posVUles eB el WrVsKal. LBa MVUraWVoB KeBLe WoAo el eWo, o el reWLerdo; dLra y fraIVl a LB KVeApo, WapaS de derrVUar LB ALro o desperKar LB WoraSoB. y esa MVUraWVoB aAeBaSo, por LB VBsKaBKe, esKallar eB AVl pedaSos la LrBa GLe apresaUa el WoraSoB del rey. pero el sorKVeIVo era ALy poderoso, o la BaKLraleSa de rey poWo propVWVa a Kales Wosas. de sLerKe GLe, de VBAedVaKo, la MVUraWVoB Weso, y de BLeMo el WoraSoB del rey perAaBeWVo a salMo.

Ya se ven algunas palabras claramente. Sustituimos la B por la n, la W por la c, la K por la t, la U por la b y la M por la v:

y en aGLel Vnstante vVbro, con la delVcadeSa y dLreSa solo posVbles en el crVstal. Lna vVbracVon tenLe coAo el eco, o el recLerdo; dLra y fraIVl a Ln tVeApo, capaS de derrVbar Ln ALro o despertar Ln coraSon. y esa vVbracVon aAenaSo, por Ln Vnstante, estallar en AVl pedaSos la Lrna GLe apresaba el coraSon del rey. pero el sortVeIVo era ALy poderoso, o la natLraleSa de rey poco propVcVa a tales cosas. de sLerte GLe, de VnAedVato, la vVbracVon ceso, y de nLevo el coraSon del rey perAanecVo a salvo.

Ya parece claro que el texto original es:

Y en aquel instante vibró, con la delicadeza y dureza sólo posibles en el cristal. Una vibración tenue como el eco, o el recuerdo; dura y frágil a un tiempo, capaz de derribar un muro o despertar un corazón. Y esa vibración amenazó, por un instante, estallar en mil pedazos la urna que apresaba el corazón del Rey. Pero el sortilegio era muy poderoso, o la naturaleza de Rey poco propicia a tales cosas. De suerte que, de inmediato, la vibración cesó, y de nuevo el corazón del Rey permaneció a salvo .

Una vez descifrado el texto, sabemos que se ha usado la siguiente sustitución:

0           6
a b c d e f g h i j k l m n ñ o p q r s t u v w x y z
t u w x y z i n v e r o a b c d f g h j k l m ñ p q s

Con lo que podemos asegurar que el texto ha sido cifrado con la llave "invierno" empezando en la posición 6.

El texto del ejemplo ha sido extraído de Olvidado Rey Gudú, de Ana María Matute.

martes, julio 06, 2010

Criptografía clásica. Sustituciones Monoalfabéticas. Cifrado de César

Cifrado de César

Descripción

    Uno de los criptosistemas más antiguos se lo debemos a Julio César. El método es bastante sencillo, está basado en sustituciones: la letra cifrada se obtiene a partir de la original desplazándola k posiciones a la derecha. El alfabeto se considera cíclico, esto es que la letra siguiente a la z es la a y que la anterior a la a es la z.

La llave (clave) de este cifrado es el valor de k que se ha usado para cifrar el texto, y éste valor debe permanecer secreto, ya que si se hace público, cualquiera podría descifrar el texto de forma fácil, con sólo desplazar a la izquierda las letras del texto cifrado k lugares a la izquierda.

A cada letra se le asigna un código numérico que no es más que su posición en el alfabeto, la codificación de las letras es por tanto:

A B C D E F G H I J K  L  M  N  Ñ
 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

O  P  Q  R  S  T  U  V  W  X  Y  Z
15 16 17 18 19 20 21 22 23 24 25 26

De una forma más formal el cifrado de César se puede definir como:

Ek = (i+k) mod q

Donde i mod n denota al único entero j entre 0 y n-1 tal que j es congruente con i módulo n. Además, q representa el total del letras del alfabeto (en el caso del castellano q = 27), i el índice de letra que se quiere cifrar y k el desplazamiento que se va a aplicar. Se supone que tanto k como i están entre 0 y q-1 (ambos extremos incluidos). Por lo tanto tendremos q cifrados de César diferentes, uno para cada valor de k que escojamos. El desplazamiento que aplicaba César era k = 3 según los documentos de la época, aunque luego el cifrado se generalizó al que se ha expuesto anteriormente.

Veamos algunos ejemplos:

E26(IBM) = HAL
 E6(HOLA) = NUQA
 E1(PATATA) = QBUBUB

Criptoanálisis

   El criptoanálisis de textos cifrados con este método va a ser muy fácil, ya que existen sólo 27 llaves. Además, como con todos los cifrados monoalfabéticos, se van a mantener las frecuencias de aparición de las letras del alfabeto (http://darthnet.blogspot.com/2010/06/criptografia-clasica-datos-estadisticos.html, http://www.kriptopolis.org/criptografia-clasica-ii). En este caso estarán desplazadas según la llave que se haya escogido, en las siguientes gráficas se puede apreciar cómo se desplazan las frecuencias del castellano al aplicar el cifrado E3.


En la gráfica anterior están reflejadas las frecuencias de las letras en castellano, y en la siguiente se puede apreciar cómo se desplazan tres posiciones a la derecha al aplicar E3.


Hay varias formas de abordar el problema, la primera que se le viene a cualquiera a la cabeza es la de aplicar la fuerza bruta, pero como sabemos que este cifrado hace un desplazamiento de las frecuencias de aparición de las letras, podemos aprovecharnos de esto y hacer un análisis estadístico del texto que nos simplificará bastante el trabajo.

- Fuerza bruta

Ya que sólo existen 27 llaves posibles, se trata de ir probando cada uno de los posibles desplazamientos hasta que el texto cifrado cobre sentido. Vamos a intentar descifra el texto: JYOWAVNYHMOH

 0 JYOWAVNYHMOH
 1 KZPXBWÑZINPI
 2 LAQYCXOAJÑQJ
 3 MBRZDYPBKORK
 4 NCSAEZQCLPSL
 5 ÑDTBFARDMQTM
 6 OEUCGBSENRUN
 7 PFVDHCTFÑSVÑ
 8 QGWEIDUGOTWO
 9 RHXFJEVHPUXP
10 SIYGKFWIQVYQ
11 TJZHLGXJRWZR
12 UKAIMHYKSXAS
13 VLBJNIZLTYBT
14 WMCKHJAMUZCU
15 XNDLOKBNVADV
16 YÑEMPLCÑWBEW
17 ZOFNQMDOXCFX
18 APGÑRNEPYDGY
19 BQHOSÑFQZEHZ
20 CRIPTOGRAFIA
21 DSJQUPHSBGJB
22 ETKRVQITCHKC
23 FULSWRJUDILD
24 GVMTXSKVEJME
25 HWNUYTLWFKNF
26 IXÑVZUMXGLÑG

Como podemos observar la prueba numerada como 20 contiene el texto llano correspondiente a nuestro texto cifrado. Por tanto el texto JYOWAVNYHMOH se descifra como CRIPTOGRAFIA.

Análisis estadístico del texto

Supongamos que nos encontramos con el siguiente texto cifrado:

Edqjnrn qr hud od flxgdg iuhvfd b wudqtxlod gh whpsorv b fdqdohv txh br hvshuded. Ho oxjdu kdeld shuglgr vx ruljlqdo fdudfwhu wdl kdvwd wdo sxqwr txh or txh txhgded uhvxowded devxugr b shuyhuvr hq phglr gh wdq dfxvdgd rfflghqwdolcdflrq. Orv uhvlghqwhv hawudqmhurv hvwdedq gh dfxhugr hq txh kdeld vlgr xq oxjdu kdelwdeoh kdvwd txh oohjdurq odv wursdv hvwdgrxqlghqvhv

Lo primero que hay que hacer es hacer un análisis estadístico del texto cifrado y ver cuáles son las letras más frecuentes, que en este caso son d, h, v, u y r, y se intentan sustituir por las letras más frecuentes del castellano, que según la gráfica anterior son e, a, o, s y n.

Probamos a sustituir la d por la e, esto significa que estamos suponiendo que el texto se cifró con E26, ya que d = (e + 26) mod 27 , luego si deshacemos los veintiséis desplazamientos a la derecha que hace E26 tenemos que la primera palabra del texto Edqjnrn pasa a ser Dcpimqm, que no tiene mucho sentido en castellano, luego parece que E26 no se usó para cifrar el texto.

Vamos a probar ahora a sustituir la segunda letra más probable del texto cifrado, h, por la e a ver si hay mejor suerte. Este cambio supone que para cifrar se usó E3, luego vamos a probar con la primera palabra a ver si toma sentido. Edqjnrn se convierte en Bangkok, que parece una palabra castellana. Para asegurarnos si verdaderamente hemos encontrado la llave, vamos a probar ahora con la palabra flxgdg. Esta palabra pasa a ser ciudad, que es claramente una palabra castellana. Desciframos el resto del texto y obtenemos:

Bangkok no era la ciudad fresca y tranquila de templos y canales que yo esperaba. El lugar había perdido su original carácter tai hasta tal punto que lo que quedaba resultaba absurdo y perverso en medio de tan acusada occidentalización. Los residentes extranjeros estaban de acuerdo en que había sido un lugar habitable hasta que llegaron las tropas estadounidenses

Luego ya sabemos que la llave que se ha usado para cifrar el texto ha sido 3 y tenemos descifrado el texto.

Este texto ha sido extraído de Memorias de un nómada, de Paul Bowles.

lunes, julio 05, 2010

Criptografía clásica. Sustituciones Monoalfabéticas. Polybios

Criptosistema de Polybios


    Quizá el criptosistema más antiguo que se conoce se debe al historiador griego Polybios. No se conoce si Polybios usaba este sistema para propósitos criptográficos.

Este sistema está pensado para alfabetos con 25 símbolos, así que para ajustarlo al castellano, cambiaremos la J por la I y la Ñ por la N, con lo que tenemos ya un alfabeto reducido de 25 símbolos.

Para cifrar un texto se usa la siguiente tabla, que llamaremos tabla de Polybios:

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

Cada letra del mensaje original se cifra por el par de letras que indican la fila y la columna en la que se encuentra. De esta forma, la representación de K será BE. El texto

ESTOY AL BORDE DE UN PRECIPICIO

se cifra como:

AEDCDDCDED AACA ABCDDBADAE ADAE DECC CEDBAEACBDCEBDACBDCD

Esto no es más que una sustitución monoalfabética con el alfabeto de destino {AA, AB, ..., AE, BA, ..., EE} de 25 símbolos.

Criptografía clásica. Sustituciones Monoalfabéticas. Cifrado del camposanto

Cifrado del camposanto

    Algunos cifrados de sustitución usan alfabetos de cifrado no estándar. Por ejemplo, en una lápida del camposanto de la Trinidad, en Nueva York, en 1794, se encontró grabado el siguiente mensaje (el mensaje está en inglés):


La primera solución publicada a este mensaje apareció en el New York Herald en 1896, unos 100 años después.

Dejamos al lector que descifre el mensaje.

Adelantaremos que se trata de un cifrado utilizado por los masones en el siglo XXVI para proteger sus documentos y que la "llave" está basada en el juego de las 3 en raya.

Más información en:
http://www.malditagranmanzana.com/2007/09/la-tumba-de-james-leeson.html
http://blog.creativeitp.com/posts-and-articles/cryptography/the-pigpen-cipher-aka-masonic-cipher/

Criptografía clásica. Sustituciones Monoalfabéticas

Sustituciones Monoalfabéticas


    Los sistemas monoalfabéticos reemplazan cada símbolo de texto llano con un símbolo de texto cifrado. Los caracteres del texto llano y del texto cifrado se corresponden uno a uno, esto es, todas las ocurrencias de un símbolo en el texto llano serán sustituidas por el mismo símbolo cifrado, con lo que se mantienen las frecuencias de aparición de los símbolos y no ofrecen ninguna resistencia ante ataques que se ayuden de análisis estadísticos del texto cifrado.

Como ejemplos tenemos: