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

Author: fran

23 Comments

  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

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

    Post a Reply
  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?

    Post a Reply
  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.

    Post a Reply
  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.

    Post a Reply
  6. Bueno… esta parte todavía la comprendo matemáticamente hablando ;)

    Cuando lleguemos a la Enigma ya fliparé :D

    Post a Reply
  7. Pues el cifrado de la máquina Enigma es el siguiente que quiero explicar.

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

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

    Post a Reply
  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 ;-)

    Post a Reply
  10. Estará interesante… ¿la de 4 rotores?

    Post a Reply
  11. Lek a tanto no llego, jajajaja

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

    Post a Reply
  12. Ok, gracias por las aclaraciones. Permaneceré en sintonía. ;-)

    Post a Reply
  13. 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 :)

    Post a Reply
    • lo mismo espero sergio. Una pregunta si fuese una frase se separaria los numeros que forman cada palabra o todos juntos?

      Post a Reply
  14. 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

    Post a Reply
  15. 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.

    Post a Reply
  16. Lek ¿flonante? ¿qué es flonante? xD

    Post a Reply
  17. Su búsqueda – “qué es flonante” – no produjo ningún documento. (Google)

    Casi, casi, como el ziritione xDDDD

    Post a Reply
  18. 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 ^_^’

    Post a Reply
  19. 10 meses… pero jugaban con ventaja… joder, con Turing cualquiera. Y mucho tardó xDDDD

    Post a Reply
  20. 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. ;)

    Post a Reply
  21. Ser matemático obliga a saber encriptar o no tiene nada que ver las matemáticas con la persona que se dedica a encriptar abecedaios.

    Post a Reply

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.

Submit a Comment

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.