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

Autor: fran

21 Comentarios

  1. En orden de seguridad :P
    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

    Publica una respuesta
  2. Yo tampoco conocía el segundo. Y sí, yo también lo veo útil para cifrados personales :P

    Publica una respuesta
  3. 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?

    Publica una respuesta
  4. 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.

    Publica una respuesta
  5. 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, :P

    Ah! Y el criptonomicon me lo tengo que comprar rápidamente.

    Publica una respuesta
  6. Bueno… esta parte todavía la comprendo matemáticamente hablando ;)

    Cuando lleguemos a la Enigma ya fliparé :D

    Publica una respuesta
  7. Pues el cifrado de la máquina Enigma es el siguiente que quiero explicar.

    Publica una respuesta
  8. Sobre el cifrado Polybios, ¿cómo se descifraría la divertida palabra hindú “2424242424″?

    Solución: “ijiji”, que significa “mosca”.

    Publica una respuesta
  9. 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 ;-)

    Publica una respuesta
  10. Lek a tanto no llego, jajajaja

    Aunque creo que cada rotor se correspondía con un alfabeto, al ser el cifrado polialfabético.

    Publica una respuesta
  11. Wow! Una serie sobre criptografía :D 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 :)

    Publica una respuesta
  12. 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

    Publica una respuesta
  13. 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.

    Publica una respuesta
  14. Su búsqueda – “qué es flonante” – no produjo ningún documento. (Google)

    Casi, casi, como el ziritione xDDDD

    Publica una respuesta
  15. 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 ^_^’

    Publica una respuesta
  16. 10 meses… pero jugaban con ventaja… joder, con Turing cualquiera. Y mucho tardó xDDDD

    Publica una respuesta
  17. 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. ;)

    Publica una respuesta

Trackbacks/Pingbacks

  1. Gaussianos » Criptografía: Cifrado por sustitución II - [...] Post anterior: Cifrado por sustitución I neok, 3 November 2006 en Informática, Criptografía [...]

Puedes utilizar código LaTeX para insertar fórmulas en los comentarios. Sólo tienes que escribir
[latex]código-latex-que-quieras-insertar[/latex]
o
$latex código-latex-que-quieras-insertar$.

Si tienes alguna duda sobre cómo escribir algún símbolo puede ayudarte la Wikipedia.

Y si los símbolos < y > te dan problemas al escribir en LaTeX te recomiendo que uses los códigos html & lt; y & gt; (sin los espacios) respectivamente.

Envía un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *