Mostrando entradas con la etiqueta criptografia. Mostrar todas las entradas
Mostrando entradas con la etiqueta criptografia. Mostrar todas las entradas

domingo, 30 de enero de 2011

Criptografía 03. El atbash y los hebreos


La cábala judía asocia a cada letra del alfabeto hebreo un número. Manipulando dichos números con reglas matemáticas se pretende descubrir importantes secretos, estudiando cabalísticamente el texto sagrado judío por excelencia, la torá.  La torá está formada por los cinco primeros libros de la biblia, (el Pentateuco) que según la tradición judía, fueron escritos directamente por Dios. La creencia de que Dios codificó información importante en la biblia ha sido una constante a lo largo de la historia.  El mismo Newton creía en ello y le dedicó grandes esfuerzos, aunque no sabemos con qué éxito.  Actualmente existen programas de ordenador que pretenden obtener profecías, analizando númericamente la biblia. El libro de Michael Drosnin, El código de la Biblia, que presenta uno de esos programas, ha sido un verdadero best-seller en todo el mundo a finales del siglo XX (hoy en día es fácil de conseguir).

El pueblo judio siempre ha sido amigo de este tipo de estudios que rayan con lo esotérico.  Empleaban también en sus escritos distintos métodos criptográficos, pero más como un medio de dar un aura de misticismo, que con el proposito de ocultar información.  De todos los métodos que empleaban el más conocido es el atbash, ya que aparece en la biblia, en concreto en el libro de Jeremías, donde el nombre de la ciudad de Babel se codifica como Sesac (se debe tener en cuenta que en hebreo antiguo no se escribían las vocales)

El atbash sustituye la primera letra del alfabeto por la última, la segunda por la penúltima y así sucesivamente.  Empleando un alfabeto latino de 26 letras (quitamos la ñ), podemos poner un

Ejemplo.
Texto claro: yonomellamojavier
Texto cifrado: BLMLNVOOZNLQZERVI


Otro método de codificación era el Albam (que hoy en día se denomina Rot13).  Lo explicamos en el caso de un alfabeto de 26 letras.  La primera letra se sustituye por la letra que ocupa la posición 14, la segunda por la que ocupa la posición 15 y así sucesivamente. La letra 14 se sustituye por la primera, la letra 15 por la segunda, etc. En todo es equivalente a un cifrado Cesar con una clave igual a 13. Para los que sepan hebreo, que no es mi caso, os dejo un alfabeto hebreo y cuatro de los métodos de cifrado que empleaban.



Explicación matemática.
De nuevo tenemos que codificar las letras: a la A le hacemos corresponder el 0, a la B el 1,... y a la Z el 25. Para saber que código le corresponde a la letra encriptada, debemos observar que siempre una letra y su encriptada suman 25. Por lo tanto si una letra tiene código n le corresponde la letra con código 25 - n. Por ejemplo, a la C le corresponde el 2 y 25-2=23. Así que a la C le corresponde la X, que es la letra asociada al número 23.
A pesar de su simplicidad esto se puede realizar de otro modo. Calculemos -n en la aritmética del reloj de 25 horas
-2 modulo 25


Obtenemos el mismo resultado.

Software.
En esta página marcando la opción "atbash" se puede encriptar y desencriptar rápidamente.

Aquí os dejo una frase, del famoso San Agustin, donde habla de las matemáticas (y no nos deja muy bien). Como siempre he eliminado los espacios en blanco, los acentos, los signos de puntuación,...

voyfvmxirhgrzmlwvyvkvinzmvxvizovigzwvolhnzgvnzgrxlhbglwlhzjfvoolh jfvivzorxvmkiluvxrzhezxrzhbzjfvvcrhgvvokvortilwvjfvolhnzgvnzgrxlhszbz
msvxslfmzzorzmazxlmvowvnlmrlkzizlhxfivxvivovhkirgfbxlmurmzizoslnyi
vvmozhzgzwfizhwvormurviml

Utilizando la página anterior (y un poco de imaginación) es posible descubrir el contenido de esta frase.


Criptografía 02. El método César

Julio César es considerado por muchos (tal vez con Alejandro Magno) el mayor genio militar de la historia. El mundo de la guerra siempre ha echado mano de la criptografía y grandes avances en este campo se deben a problemas de índole militar. El escritor romano Suetonio, en su libro Doce Césares, nos informa del método de cifrado de César. Este es un extracto donde Suetonio habla de los escritos de César.
 ... Existen también sus cartas al Senado, y fue al parecer el primero en escribir sus comunicaciones en hojas dobladas en forma de oficio, pues hasta entonces las había escrito los cónsules y generales en toda la extensión de la hoja. Se conservan, por último, sus cartas a Cicerón, así como las que escribió a sus amigos acerca de sus asuntos domésticos. Para los negocios secretos utilizaba una manera de cifra que hacía el sentido ininteligible, estando ordenadas las letras de manera que no podía formarse ninguna palabra; para descifrarlas tiene que cambiarse el orden de las letras, tomando la cuarta por la primera, esto es d por a, y así las demás. 
Después de leer a Suetonio tenemos claro como cifraba César. Utilizaba un método de sustitución que consistía en cambiar cada letra, por otra situada tres lugares más adelante. A las tres últimas letras le hace corresponder las tres primeras del alfabeto. En el idioma castellano (hemos quitado la ñ, pues es informática es una letra que da bastantes problemas), el alfabeto cifrado es


Utilizando la tabla anterior podemos cifrar y descifrar cualquier mensaje escrito utilizando la cifra de César.

Ejemplo:
Texto Claro: yonomellamojavier
Texto Cifrado:  BRQRPHOODPRMDYLHU

En este caso nos hemos desplazado 3 letras hacia la derecha. Podríamos tomar otro número distinto de 3 y obtener otro cifrado distinto. Todos estos cifrados se denominan también cifrados César.

Explicación matemática.
Lo primero que tenemos que hacer es codificar el alfabeto. A la letra A le hacemos corresponder el 0, a la B el 1,... y finalmente a la Z el 25. Ahora que ya tenemos números en vez de letras podemos emplear las matemáticas. Resulta que en el método de César tenemos que desplazar la letra tres unidades a la derecha. Esto equivale a sumar 3 al número en cuestión. Para que las últimas letras "vuelvan al principio" la suma tiene que hacerse módulo módulo 26. Por ejemplo, para cifrar la letra Y (=24) realizamos la operación:
24 + 3 modulo 26


Por lo tanto a la Y le corresponde la B.

Software.
Aunque no existe ningún problema para encriptar y desencriptar "a mano" es mucho más cómodo utilizar un ordenador y un programa adecuado. En la página de Cryptool podemos hacer esto. Primero debemos seleccionar el alfabeto (es recomendable usar uno sólo con mayúsculas) en la opción "Parse alphabet". Después debemos elegir la clave, que es el desplazamiento y ya podemos cifrar y descifrar.

La siguiente frase se atribuye a Poincaré, uno de los mejores matemáticos de la historia. Naturalmente esta encriptada.

ODJHRPHWULDHVHODUWHGHUDCRQDUELHQVREUHILJXUDVPDOKHFKDV

Aquí tenemos un pequeño video de introducción a la criptografía.




domingo, 23 de enero de 2011

Criptografía 01. Aritmética modular

Es bien conocido que 2 + 2 = 4 y que no hay nada tan claro y evidente como eso. Sin embargo no todo es tan sencillo. Si estamos a las 3 de la tarde y pasan 5 horas (lo que podemos escribir como 3 + 5) estamos a las 8 de la tarde. Sin embargo si estamos a las 7 y pasan 8 horas (7 + 8) resulta que casi nadie dice que estamos a las 15 horas. Mas bien se suele decir que estamos a las 3. Esto en fórmulas se escribe 7 + 8 = 3. De igual forma podemos realizar muchas otras operaciones en un reloj. Por ejemplo 7 + 11 + 10  = 4 (pues la suma en realidad da 28). Un poco más difícil es multiplicar en un reloj, pero podemos afirmar que 6 * 7 = 6. También se pueden realizar restas: 7 - 9 = 10 (¿?) y potencias: 3^3 = 3 (¿¿¿???).
Con un poco de imaginación nos podemos imaginar relojes que en vez de 12 horas tengan, por ejemplo, 17 horas. La forma de operar en estos nuevos relojes es similar y con un poco de práctica se puede conseguir el mismo dominio que el que tenemos para manejar el reloj de 12 horas.
Aqui tenemos un archivo de Wiris en formato html donde se realizan las operaciones anteriores.
Sin embargo la forma más simple de realizar cálculos en distintos tipos de relojes consiste en utilizar el buscador WolframAlpha. Basta con añadir a la operación que queramos realizar el comando modulo 12 (u otro número si el reloj tiene un número distinto de horas). Por ejemplo para realizar la suma 7 + 11 + 10  debemos teclear
7 + 11 + 10 modulo 12
y obtenemos el resultado (además nos dibuja la solución en un reloj de 12 horas)


Tecleando 6 * 7 modulo 12 obtenemos efectivamente 6 y si introducimos 3^3 modulo 12 se obtiene un 3.

Más o menos todo el mundo está acostumbrado a poner un signo menos delante de un número y tal vez recuerde que ese número se llamaba el opuesto. Del mismo modo afirmamos que 1/7 (también escrito 7^(-1), elevándolo a lo potencia negativa) es el inverso de 7. En los relojes no todo es tan sencillo, así que lo primero que vamos a hacer es definir de nuevo los concepto de inverso y opuesto.

Definición.

Dado un reloj de n  horas y una hora a llamamos opuesto de a al único número b que cumple 

a + b = 0 modulo n

Ejemplos. 
  • En un reloj de 12 horas el opuesto de 4 es 8 puesto que si los sumamos dan cero.
  • En un reloj de 37 horas el opuesto de 5 es 32, puesto que su suma es 0.
En realidad calcular opuestos es una cosa muy sencilla. Todo se reduce a una resta. El siguiente concepto es un poco más difícil.

Definición.

Dado un reloj de  horas y una hora a llamamos inverso de a al único número b que cumple 
a * b = 1 modulo n

Ejemplos.
  • En un reloj de 12 horas el inverso de 5 es 5 puesto que 5 * 5 modulo 12 es 1.
  • En un reloj de 37 horas el inverso de 5 es 15 (se debería comprobar este hecho).
  • Si intentamos calcular el inverso de 2 en un reloj de 12 horas tropezaremos con un problema, pues resulta que es imposible.
En WolframAlpha la manera de calcular el inverso es muy sencilla: simplemente elevamos el número del que queremos hallar el inverso a la potencia -1. Por ejemplo el inverso de 5 en un reloj de 37 horas se calcula 
5^(-1) modulo 37



Si intentamos calcular el inverso de 2 en un reloj nos dice que es imposible.

Criptografía 00

Según la Real Academia de Lengua la criptografía es
Arte de escribir con clave secreta o de un modo enigmático.
Esta definición se ha quedado a día de hoy algo absoleta. Es cierto que hasta hace más o menos medio siglo cualquier persona con mínimos conocimientos de matemáticas podía estudiar criptografía y aplicarla. Este período es lo que se denomina Criptografía Clásica. Tenemos un excelente artículo donde se expone, de modo comprensible para cualquier persona interesada, algunos de los métodos de cifrado clásico.


Sin embargo, a pesar de que la RAE dice que la criptografía es un arte, hoy en día no se estudia ni en la carrera de Bellas Artes, ni en las carreras de letras. La criptografía se estudia en carreras de ciencias, en especial en Matemáticas, Informática y Telecomunicaciones. Desgraciadamente para muchos, el componente matemático de la criptografía no es despreciable. Aquel que quiera estudiar de modo serio la criptografía debe estudiar "algo" de matemáticas. En el siguiente artículo se hace una introducción a la llamada criptografía moderna, que es la que se emplea en los ordenadores, en las tarjetas de crédito, en los móviles,...


En próximas entregas se darán unas pinceladas sobre algunas de las matemáticas necesarias para entender este último artículo.

Para aquellos interesados en como emplean los gobiernos y los hackers la criptografía la web más interesante en castellano es http://www.cripto.es/, en especial el boletín enigma.