31.10.08

Criptoanalisis (I)

Imaginamos ahora que estamos en el lado del malo, por esas cosas de la vida nos hemos enterado de que el texto cifrado con el que nos hemos encontrado ha sido cifrado mediante una cifra aditiva, hay dos formas principales con las que nos podemos enfrentar con el problema:

1) Ataque de fuerza bruta o (Exhaustión de todas las posibilidades):

Solo hay 26 posibles claves, asi que si las aplicamos todas habra un texto que tendra sentido, la razon de que esto funciona es que la mayoria de las combinaciones de letras no tienen sentido, el problema es que probar si un texto "tiene sentido" no es algo que podamos automatizar mediante un programa, o por lo menos tendriamos que tener un programa que conozca muchas palabras por lo que sería matar moscas a cañonazos.

IOL GYMMUAY XIYM HIN LYGUCH MYWLYN

Si aplicamos el razonamiento solo a la palabra HIN vemos que usando un desplazamiento 6 obtenemos la palabra "not" la unica que tiene sentido.

Ejemplo sacado de Cryptology

2) Análisis estadístico

En casi todos los lenguajes las letras del alfabeto no aparecen con la misma frecuencia y es curioso lo poco que cambian estas distribuciones entre distintos textos aunque si cambian entre diferentes idiomas.

Wikipedia Español
H4ck1t

Si ciframos un texto y le aplicamos un análisis estadistico veremos que la frecuencia de aparición de ciertas letras será similar a las originales a las que representan, en el ejemplo anterior tenemos:

Como la letra con mas apariciones es la Y, asumimos que representa a la "e" (que es la letra mas común en Ingles), esto hay que comprobarlo ya que está basado en estadísticas, siempre podríamos encontrarnos con un texto que hable de "Pañales dañados en España" y la ñ ocuparia una posición que no le corresponde. La evidencia la encontrámos en que las siguientes letras "Y" y "Z" tienen poca frecuencia al igual que la "f" y la "g" en el inglés.

La buena noticia es que esto es facil de automatizar, la mala es que al ser un método estadistico podemos fallar al hacer ciertas suposiciones y hay que tener cuidado con lo que suponemos, sobre todo en textos cortos.

(Ahora se para que sirve la estadistica que me enseñaron en la universidad)

Cifras Aditivas

Uno de los primeros usuarios de los que se tiene noticia de las cifras aditivas fue Cayo Julio Cesar (100-44 a.c), la cifra de cesar consistía en sumar tres posiciones a cada letra:

Texto Claro: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Texto Cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC

Se encripta substituyendo las letras que se encuentran en el texto en claro por las del cifrado, así cifra se convierte en FLIUD, para descifrar se restan tres posiciones a cada letra. Hay 26 posibles claves que se pueden usar con este método que serian las posiciones a desplazar en nuestro alfabeto.

Cifrar con las tablas de arriba es fácil pero tedioso para textos largos, así que en 1470 el arquitecto Leone Battista Alberti inventó una maquina hecha con dos discos que mecanizaba el proceso, el disco interior podía rotar generando la cifra aditiva.


El algoritmo y la clave tienen funciones diferentes, el algoritmo es grande y complicado, en consecuencia no se debe mantener en secreto, la seguridad del algoritmo debe recaer en la clave.

26.10.08

La Scitala Espartana

Scitala de la Wikipedia
Todo viene de hace 2500 años, por lo menos segun lo cuenta Plutarco, el gobierno de Esparta enviaba mensajes secretos a sus generales usando un curioso método, la idea era que emisor y receptor tenian un cilindro cada uno de el mismo radio en el que el emisor enrollaba una tira de tela y escribia sobre la tira en sentido horizontal. Asi quedaba oculto el mensaje que se enviaba y solo se podia recuperar si se disponia de un cilindro igual al que tenia el emisor.

La Scitala usada tiene una circunferencia c, que se puede medir en número de letras, asi que lo que hay que descubrir el la circunferencia.

Para el siguiente mensaje:

SYBLCRESEERACHTAYPUOHIPHRUEMTYILSOO!TDOFG

c=5
S R R A H U I ! G
Y E A Y I E L T
B S C P P M S D
L E H U H T O O
C E T O R Y O F

c=6
S E C U R I T
Y S H O U L D
B E T H E S O
L E A I M O F
C R Y P T O G
R A P H Y !

La Scitala es un metodo de cifra por transposición, las letras permanecen iguales y el cambio se produce en la posicion, este método (transposición) se sigue usando combinado con otros como la substitucion.

Para saber mas:

Wikipedia