Critpografía: Cifrado por sustitución
¿Qué es un cifrado por sustitución?
Es aquel cifrado que sustituye cada letra o grupo de letras por otra letra o grupo de letras distinta/s para cifrar el texto en claro.
Los primeros y antiguos métodos de cifrado se basaban en este principio, aunque en aquella época no eran muy robustos ni difíciles de descifrar, pero les resultaban muy útiles.
Cifrado César
Quizá el cifrado más conocido, fue inventado por Julio César en el antiguo imperio Romano. Sigue el siguiente principio:
Cada letra del texto en claro se sustituye por la letra que hay a “k” posiciones detrás de ella en el alfabeto.
Matemáticamente hablando:
Definimos las siguientes operaciones:
-
Ordinal de una letra: Es la posición que ocupa la letra en el alfabeto que usamos. Se denota como: ORD (Letra) [ORD (A) = 0]
-
Caracter de un número: Es la letra que ocupa la posición del número que tenemos. Se denota como: CAR (x) [donde “x” tiene que ser mayor o igual a cero, y menor o igual al número de letras del alfabeto usado]
Vamos a pasar a lo interesante la fórmula del cifrado y descifrado:
-
Cifrado: C(x) = x + k (mod T)
-
Descifrado: D(x) = x - k (mod T)
(Siendo “x” el ORD (Letra a cifrar), “k” es el número de posiciones a desplazar y “T” es el total de letras en el alfabeto a usar)
Se puede observar que la clave de este cifrado es el número de posiciones a desplazar las letras (k).
Como véis no hemos hecho nada más que empezar y ya aparece la operación módulo, aunque Julio César no tuviera ni idea de qué era el módulo.
(Más información en Wikipedia)
Cifrado Polybios
Este cifrado fue realizado en la antigua Grecia y usaba el alfabeto Griego en su versión original, aunque se ha adaptado a los demás alfabetos. Se basa en colocar las letras del alfabeto en una matriz, normalmente de 5×5, y en las cabeceras de las columnas y filas se le asigna unos números o letras siguiendo un patrón preestablecido por el usuario del cifrado.
Así usando el alfabeto tradicional, sin contar la Ñ, tendríamos la siguiente matriz:
| 1 | 2 | 3 | 4 | 5 | |
| 1 | A | B | C | D | E |
| 2 | F | G | H | I | K |
| 3 | L | M | N | O | P |
| 4 | Q | R | S | T | U |
| 5 | V | W | X | Y | Z |
(Aclaración: La J se junta con la I por convenio)
Y a partir de esta matriz se cifra el mensaje, cogiendo letra a letra y sustituyendola por los números de su fila y columna. Por ejemplo:
HOLA => 23343111
Para descifrar, se cogerían de dos en dos números y se buscaría el cruce de dichos números en la matriz.
Es obvio, que la clave de este cifrado es la matriz, y más concretamente el orden del contenido de ésta y los valores que usemos en los encabezados de las filas y columnas.
(Más información en Wikipedia En inglés)
Post anterior: Introducción


mimetist | 23 de Octubre de 2006 | 11:26
En orden de seguridad
Este último no lo conocía y cambiando el orden de las letras tiene pinta de ser una buena forma de ocultar mensajes en la agenda y esas cosas jeje
^DiAmOnD^ | 23 de Octubre de 2006 | 13:21
Yo tampoco conocía el segundo. Y sí, yo también lo veo útil para cifrados personales
kaizen | 23 de Octubre de 2006 | 13:41
Muy interesante. También desconocía el segundo.
¿Cómo hacen para descifrar por fuerza bruta? Para hacerlo, tienen que conocer el método con el que se ha cifrado; o hay alguna aproximación genérica?
Ellohir | 23 de Octubre de 2006 | 14:21
No sabía que ya los antiguos usaban la criptografía, supuse que los bárbaros no sabían ni leer xDDD
Para descifrar se puede buscar las letra más repetidas y sustituirlas por las más comunes, luego se va intentando adivinar palabras para conseguir más, y listo.
Pero bueno, con la llegada de los ordenadores, esta criptografía es anecdótica (y por ello interesante).
Recomiendo a quién le interese que busque el Criptonomicón, de Neal Stephenson; una novela genial sobre matemáticas, criptografía y ordenadores.
neok | 23 de Octubre de 2006 | 16:47
kaizen para descifrar por fuerza bruta no se necesita saber el cifrado usado, aunque sí una aproximación, por ejemplo:
En el cifrado César se sustituye una letra por otra, pero en el Polybios se sustituye una letra por dos números, entonces para descifrar por fuerza bruta se debería saber que cada par de números es una letra.
Pero como su propio nombre indica, es fuerza bruta, es decir, probar todas las combinaciones posibles y existentes, y quedarse con las que tengan un sentido semántico.
Después, como dice Ellohir, existen otros métodos de criptoanálisis, como el de frecuencia que es el que menciona, y se basa en estadísticas de apariciones de letras y palabras en un lenguaje, por ejemplo:
En el español, la letra “e” es la que aparece en más palabras, así que en un mensaje cifrado el símbolo que aparezca más veces tiene muchas posibilidades de ser la letra “e”.
Y Ellohir, no hables más de criptoanálisis y temas que no hayamos tocado, que me fastidias los siguientes posts,
Ah! Y el criptonomicon me lo tengo que comprar rápidamente.
Lek | 23 de Octubre de 2006 | 17:07
Bueno… esta parte todavía la comprendo matemáticamente hablando
Cuando lleguemos a la Enigma ya fliparé
neok | 23 de Octubre de 2006 | 17:14
Pues el cifrado de la máquina Enigma es el siguiente que quiero explicar.
Davidmh | 23 de Octubre de 2006 | 19:05
Sobre el cifrado Polybios, ¿cómo se descifraría la divertida palabra hindú “2424242424″?
Solución: “ijiji”, que significa “mosca”.
ghostDancer | 23 de Octubre de 2006 | 23:10
Un ejemplo del sistema de Julio Cesar para evitar a los abogados es el de la película “Odisea del espacio:2001″ donde el nombre del ordenador se modifico para evitar una demanda judicial de IBM por presentar un ordenador asesino de su marca y paso de IBM a HAL. o por lo menos eso cuenta la leyenda urbana
Michoacano | 24 de Octubre de 2006 | 3:50
En mi tarea de Métodos Numéricos, me dejaron descrifrar un mensaje….
Aqui les dejo el doc, es el problema número 7, yo ya lo resolvi… si alguien quiere la solucion pidamela xD… que sirva como ejercicio.
http://www.michoacano.com.mx/wp-content/uploads/2006/10/Tarea_03_06b_v02.pdf
Lek | 24 de Octubre de 2006 | 9:05
Estará interesante… ¿la de 4 rotores?
neok | 24 de Octubre de 2006 | 9:39
Lek a tanto no llego, jajajaja
Aunque creo que cada rotor se correspondía con un alfabeto, al ser el cifrado polialfabético.
kaizen | 24 de Octubre de 2006 | 10:15
Ok, gracias por las aclaraciones. Permaneceré en sintonía.
Sergio | 24 de Octubre de 2006 | 12:54
Wow! Una serie sobre criptografía
Genial.
No comentaré nada para mantener el secreto hasta el próximo post, pero espero con impaciencia algún que otro sisitema de cifrado.
Por cierto, no se si tienes pensado hablar de lor problemas de cada sistema y de la manera de romperlos, pero hay que decir que efectivamente el cifrado del Cesar es muy sencillo y cae en un analisis de frecuencias, y por otro lado, en el Polybios resulta que la cantidad de información a enviar crece bastante desde el mensaje en claro hasta el mensaje cifrado.
Suerte con todo
Synbios | 24 de Octubre de 2006 | 22:34
Como todos conocia el del cesar pero no el polybios ^_^. Así que la Triton existió d verdad… (Triton = Enigma de 4 rotores) pensaba q se la habia inventado Stephenson para darle mas emocion al criptonomicon. Con este hombre nunca se sabe XD
Lek | 25 de Octubre de 2006 | 16:30
Que yo recuerde, Synbios, existe, se ha intentado romper recientemente (proyecto M4 en Kriptópolis) y creo que se ha conseguido descifrar alguno de los mensajes… pero es chungo de pelotas. Imagina que por cada posición inicial tienes……….. no sé… miles de alfabetos posibles. Es flonante.
neok | 25 de Octubre de 2006 | 16:43
Lek ¿flonante? ¿qué es flonante? xD
Lek | 26 de Octubre de 2006 | 17:04
Su búsqueda - “qué es flonante” - no produjo ningún documento. (Google)
Casi, casi, como el ziritione xDDDD
Synbios | 27 de Octubre de 2006 | 21:30
sisi, Lek, afirmaba q existió lo busque en la wikipedia. Los aliados rompieron el codigo de Triton a los 10 meses de que empezaran a usarla ^_^’
Lek | 30 de Octubre de 2006 | 18:42
10 meses… pero jugaban con ventaja… joder, con Turing cualquiera. Y mucho tardó xDDDD
neok | 30 de Octubre de 2006 | 19:42
jeje, me equivoqué de cifrado y el que yo creía que usaba la enigma es el que usaban los aliados en realidad. De todos modos a ver si preparo el siguiente post para esta semana.
Trackback | 23 Nov, 2006
Gaussianos » Criptografía: Cifrado por sustitución II