Criptografía: Algoritmos Simétricos

Uno de los libros que comencé a leer, a todos los efectos de formalizar algunas notas sobre criptografía es Understanding Cryptography, de Christof Paar, 2010. Dicho lo anterior de otro modo, en el pasado, mientras escribí sobre algoritmos criptográficos evité deliberadamente las anotaciones matemáticas, de modo que es posible que vaya completando las notas con definiciones que requieran que el lector sume, reste o multiplique.

A continuación, algunas las anotaciones.

Como todo el mundo sabe, la criptografía está en todos lados. Desde el control remoto para destrabar el auto o abrir el garage hasta conectarse en una red wireless LAN o hacer una llamada telefónica por Skype (VoiP). También comprando bienes y servicios con tarjetas de crédito (o débito) y en algunos lugares, el pago del transporte público.

Masivamente, los teléfonos celulares y todo lo que está por venir. La salud o las casas inteligentes.

Como es de esperarse, la criptografía ha sido empleada por todas las culturas que desarrollaron el lenguaje escrito. Un ejemplo lejano en el tiempo es la escítala espartana del cual ya hemos hablado en el pasado aquí, en la serie de notas sobre Criptografía.

Un diagrama que ubica la disciplina tendría el siguiente aspecto:

Criptografia

Sobre los algoritmos simétricos

Más conocidos por la gente como el método para encriptar y desencriptar un mensaje compartiendo una clave secreta. Toda la criptografía antigua, hasta 1976 se basa en la criptografía simétrica. Esto es porque en 1976 un algoritmo totalmente distinto fue introducido, el algoritmo de clave pública.

Los esquemas criptográficos simétricos se pueden ejemplificar con dos entidades que quieren comunicarse mediante un canal. Por ejemplo, dos personas a través de una red.

Las variables x, y, y k tienen un significado especial en criptografía a saber:

  • x es denominado texto plano
  • y es el texto cifrado
  • k es denominada la clave

Además, suele llamarse el espacio de claves al conjunto de todas las posibles claves

Algoritmos Públicos o Privados

Un detalle poco intuitivo sobre los algoritmos de encriptado es sobre lo público de los algoritmos de encriptado o desencriptado. Cuando más públicos sean, más han sido expuestos y probados. De modo que, un algoritmo secreto es poco fiable. Lo único que hay que mantener secreto es la clave.

El Cifrado por Sustitución

Llamemos (x, y) al par de texto plano y texto cifrado mientras que K = { k1, .. ,Kk } al espacio de claves Ki.

Una búsqueda exhaustiva de clave por fuerza bruta tendría el siguiente aspecto:

Dki (y) = x

(D)esencripto empleando cada clave ki del espacio de claves hasta que la igualdad se cumpla, esto es, el texto descrifrado sea igual al texto plano.

En practica se pueden complicar los ataques de fuerza bruta pues pueden ser computacionalmente inviables.  Además, también es posible que arroje falsos positivos.

Por ejemplo, en el caso del cifrado por sustitución cuando elegimos el reemplazo para, por ejemplo, la letra “a” elegimos una de las 26 letras del alfabeto, la próxima letra del alfabeto sería la “b” y por ende debemos elegir del resto de las 25 letras.

El espacio de claves para la cifra de sustitución es = 26 x 25 x … x 3 x 2 x 1 = 26! =~ 2^88

No se deje engañar por la notación, estos números son realmente grandes. Tomemos un caso bien conocido, el factorial de 70!. Un Gúgol (un Googol en inglés) es un uno seguido de cien ceros, o lo que es lo mismo, en notación científica, uno por diez a la cien. De allí, como Ud. sabe, tomo Google el nombre de la compañía.

1 gúgol = 10 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000

A un centenar de PC’s les llevaría décadas en el peor caso. Pero el cifrado por sustitución no es poco seguro por lo anterior sino, por el ataque por análisis de frecuencias, gracias al polímata árabe Al-kindi.

Más sobre esto, como siempre, en cuanto pueda!

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: