- OroyFinanzas.com - https://www.oroyfinanzas.com -

Criptografía simétrica: Sistemas de cifra con clave secreta (I)

(OroyFinanzas.com) – Este es el primer artículo de una larga serie que publicaremos en OroyFinanzas.com para asentar las bases de los conocimientos que se precisan para poder entender el protocolo Bitcoin y por defecto los protocolos de muchas otras criptomonedas (también llamadas Altcoins) aunque tengan matices diferentes. El bloque inicial de artículos estará dedicado a los conceptos básicos de criptografía que son esenciales para entender una gran parte del funcionamiento del protocolo Bitcoin. Este artículo explica el funcionamiento del sistema de cifra con clave secreta para explicar en artículos sucesivos el sistema de cifra de clave pública, el concepto de Hash [2] y las funciones unidireccionales [3], entre otros. Hemos utilizado de forma extensa el excelente material publicado por Intypedia [4] y David Perry cuya lectura recomendamos.

Para entender el funcionamiento de Bitcoin no es suficiente con haber estudiado la historia del dinero y el funcionamiento del sistema financiero. Bitcoin forma parte del grupo de las criptomonedas, ya que se basan en la criptografía para su funcionamiento. Muchos de los conceptos que vamos a explicar son básicos para un matemático o un programador. Vamos allá entonces.

Analogía de la criptografía con los candados

Para explicar el principio de la criptografía simétrica o de clave secreta vamos a utilizar el ejemplo del candado explicado en el video de Intypedia.

Si queremos guardar un billete de 500 euros en una hucha, para protegerla tendremos que utilizar un candado para que nadie pueda acceder a nuestro dinero.

En nuestro ejemplo la hucha es muy segura y tiene un candado de 8 dígitos y cada dígito, 10 cifras. Un candado con ese número de dígitos tiene 10 elevado a 8 combinaciones (10x10x10x10x10x10x10x10=10^8) posibles, o lo que es lo mismo, 1 seguido de 8 ceros, o sea, 100 millones de combinaciones.

Si el candado tuviera un dígito tendría 10 combinaciones y si tuviera 2 dígitos tendría 100 (10×10=100) combinaciones. Al tener 8 dígitos, el total de combinaciones es de 100 millones.

Si se tardaran 10 segundos en probar cada combinación, nos llevaría más de 31 años probarlas todas. En promedio, se tendría que probar la mitad de las posibles combinaciones para acertar, para dar con la combinación correcta se necesitarían más de 15 años, ¡eso sin parar ni un instante para comer, dormir o ir al baño!

Este es un ejemplo de seguridad utilizando una clave para un problema que conocemos bien del mundo físico. Si queremos enviarle un mensaje por internet a un amigo sin que nadie pueda acceder al contenido también tendremos que poner una clave para su envío seguro.

Fundamentos de la criptografía de clave simétrica o secreta

La criptografía es el equivalente a la combinación de un candado y es muy útil para cifrar datos digitales. Cuando se quiere proteger un mensaje digital, se puede cifrar utilizando un algoritmo de cifrado. Igual que existen muchos tipos de candados, existen muchos tipos de algoritmos de cifrado. Para cifrar mensajes de correo, archivos del disco duro, registros de una base de datos, y en general para cifrar grandes cantidades de datos, se utiliza un tipo de algoritmo de cifrado conocido como de clave secreta o simétrico.

¿Por qué se le llama de clave simétrica?

Porque se utiliza la misma clave de cifrado para cifrar y para descifrar el mensaje.

¿Cómo evitar que se descifre una clave?

Eso depende de dos factores: robustez del algoritmo y la longitud de la clave utilizada

Robustez del algoritmo

La robustez de un algoritmo es la manera como haya sido diseñado. En la Lección 1 de Intypedia se explica cómo durante muchos siglos se vinieron usando dos tipos de operaciones de cifrado: sustitución y transposición. Tanto una como la otra, por sí solas, no eran suficientes para cifrar un texto de manera segura.

Video: Historia de la Criptografía y su Desarrollo en Europa (Intypedia [4])

La robustez del algoritmo de cifrado puede mejorarse considerablemente si se combinan ambas operaciones, usando sustitución y transposición repetidamente sobre el mismo mensaje. Algunos algoritmos modernos de cifrado, como por ejemplo el AES o el Triple DES, utilizan múltiples vueltas de cifrado en las que se combinan las dos operaciones con el objetivo de conseguir lo que se conoce como difusión y confusión.

Objetivos de la difusión y confusión

Difusión

Idealmente, un texto cifrado debe tener una apariencia totalmente aleatoria. Debe eliminarse del texto cifrado cualquier pista o patrón, lo que significa que debe eliminarse cualquier relación estadística entre el mensaje original y su texto cifrado. La combinación de la sustitución y transposición difunde, es decir, distribuye o dispersa, la estructura estadística del mensaje sobre la totalidad del texto cifrado. Por tanto, oculta la relación entre el texto en claro y el texto cifrado.

Confusión

Dado que normalmente el criptoanalista sólo dispondrá del texto cifrado y del conocimiento del funcionamiento del algoritmo de cifrado utilizado, intentará dar con la clave secreta. La confusión busca ocultar la relación entre el texto cifrado y la clave secreta.

Los algoritmos de cifrado que se sirven de la confusión y de la difusión se suelen llamar cifradores de producto. Cada aplicación de la confusión y de la difusión se produce en una vuelta de cifrado. Los cifradores modernos suelen utilizar muchas vueltas de cifrado o iteraciones.

Por tanto, si un algoritmo está bien diseñado, pasará como con el candado: un texto cifrado sólo se podrá descifrar si se conoce la clave.

En la buena criptografía se sigue siempre el Principio de Kerckhoffs: la seguridad del sistema debe recaer en la seguridad de la clave, debiéndose suponer conocidos el resto de los parámetros del sistema criptográfico. Como dijo Claude Shannon: “el adversario conoce el sistema”.

Longitud de clave y ataques de fuerza bruta en criptografía

La seguridad de un algoritmo de cifrado depende de dos factores. El primero ya lo hemos visto: es el diseño del algoritmo. El segundo factor es la longitud de la clave utilizada. Cuando un criptoanalista no puede encontrar fallos en el algoritmo, siempre le queda recurrir a un ataque de fuerza bruta. Se trata de un método sin elegancia, que no ataca el algoritmo en sí, sino que busca exhaustivamente todos los posibles valores de la clave hasta dar con la correcta.

En el ejemplo del candado con una combinación de 8 dígitos vimos que hay 100 millones de combinaciones posibles. Son tantas que probarlas todas a mano llevaría muchos años. Las claves de los algoritmos de cifrado no se prueban a mano, como con el candado, sino que se le deja el trabajo a un ordenador.

Y como los ordenadores son mucho más rápidos que los humanos, habrá que utilizar claves más grandes. Por eso es tan importante elegir claves suficientemente largas, de manera que con la potencia de cálculo actual sea imposible probarlas todas en un tiempo razonable.

Éste fue el problema del algoritmo simétrico DES. Su longitud de clave fue establecida en 56 bits. Hay que tener en cuenta que DES fue diseñado en el año 1976, y que en aquellos tiempos resultaba impensable que un ordenador pudiera probar 2 elevado a 56 combinaciones posibles de la clave. Sin embargo, la informática fue evolucionando y en el año 1998 se diseñó un dispositivo capaz de obtener la clave correcta en 56 horas. Sucesivos avances en computación paralela han conseguido reducir el tiempo a menos de un día. Actualmente, una clave simétrica de ese tamaño es completamente insegura.

¿Cómo de larga debe ser hoy una clave para estar a salvo de los ataques de fuerza bruta?

Hoy en día se estima que claves de 128 bits de longitud o más garantizarán la seguridad por muchos años. De hecho, algunos algoritmos permiten seleccionar a voluntad la longitud de la clave, como el estándar AES que se base en el algoritmo criptográfico Rijndael. Cada bit que se añade a la clave dobla el tamaño del espacio de claves posibles. En nuestro artículo sobre bits y criptografía explicamos por qué se dobla el tamaño de claves posibles por cada bit que se añade.

Si el diseño es robusto y la longitud de la clave es suficientemente larga podemos considerar en teoría que el algoritmo es seguro.

Video de Sistemas de cifra con clave secreta (Intypedia [4])

El problema de la distribución de claves

Una vez cifrado el mensaje con la clave secreta, la cuestión es cómo compartir la clave secreta que se ha utilizado para cifrar el mensaje.

Este es el mayor problema al que históricamente se ha enfrentado la criptografía. Se conoce como el problema de distribución de la clave.

¿De qué sirve utilizar el mejor algoritmo de cifrado del mundo si no se puedo compartir la clave con el destinatario del mensaje?

Durante siglos la criptografía se ha enfrentado con poco éxito a este problema, hasta que en los 70 se inventó la criptografía de clave pública.

Con las bases de lo que hemos aprendido sobre la criptografía simétrica explicaremos en el próximo articulo con la ayuda de Intypedia la criptografía de clave pública o asimétrica [1].

Fuente: Intypedia [4]

© OroyFinanzas.com

[5]