Sistemas de encriptación

La distribución de la clave

Este es un problema que sólo afecta a los algoritmos de clave simétrica.

En efecto, los algoritmos asimétricos o de llave pública, por su propia definición, permiten la libre distribución de la clave de encriptación. Los sistemas simétricos, sin embargo, necesitan de un canal seguro para la distribución de la misma. Este problema a dado lugar a diferentes soluciones.

 

Claves jerárquicas.

Supongamos una organización muy grande que actúa a lo largo de un amplio territorio mediante delegaciones y subdelegaciones. La sede central decide una clave aleatoria y se la manda de forma segura a cada delegación. Cada delegación elige una clave aleatoria y se la manda de forma segura a cada subdelegación. Cada subdelegación usa sus propias claves para cifrar su información y la comunicación entre dos subdelegaciones que dependen de una misma delegación se realiza usando claves que sólo actúan en estos casos.

Supongamos un ejemplo.

Un conocido y prestigioso banco tiene sucursales en cada pueblo. Los trabajadores de la sucursal de un determinado pueblo (Villabajo) no tienen problemas en su devenir diario. Usan una clave local que puede ser cambiada cada día. Pero ¿cómo se comunicarían (si quisieran) de forma segura con los de otro pueblo (Villarriba) de la misma región?

En este caso tienen dos posibilidades:

Los de Villabajo eligen una clave aleatoria y se la mandan a los de Villarriba cifrada con la clave regional. Como las dos oficinas están en la misma región ambas conocen la clave y pueden encriptarla y desencriptarla.

O bien piden a la delegación regional que les envíe una clave para la sesión. El envío de esta clave se haría también cifrado con la clave regional.

Así, dos sucursales de la misma región se comunican mediante una clave regional. Dos sucursales de diferentes regiones, sin embargo, necesitan subir un paso más en la jerarquía. Cada sucursal solicitaría la comunicación a su delegación regional y éstas se comunicarían entre sí mediante la clave nacional. De esta forma, y mediante diferentes jerarquías de claves, la comunicación es posible en toda la entidad.

La clave de la seguridad de este método se basa en que las claves regionales y nacionales se usan tan poco que nunca hay información suficiente como para desencriptarlas.

A fin de que a la larga no se sume mucha información, de vez en cuando habría que cambiar las claves regionales y nacionales. Esto se haría mandando nuevas claves cifradas con las viejas (que todavía son seguras).

 

Acertijos.

Hemos visto cómo se comunican individuos de una misma entidad, pero ¿cómo se comunican individuos de diferentes entidades? Una posible solución es el método de los acertijos.

Pedro quiere comunicarse con Juan. Para ello deciden usar el algoritmo DES. Asumen que el presunto intruso conoce este dato y que puede copiar toda la información que intercambien. Para solucionar este problema Pedro manda una carta abierta a Juan.

 

Voy a enviar ahora 20.000 acertijos. Cada uno de ellos es un criptograma cuyo texto plano comienza con 128 bits de valor 0, seguidos por un número aleatorio de 16 bits que identifica cada acertijo, y después una clave de 56 bits.

Los criptogramas se pusieron en clave por medio de la norma DES, con una clave cuyos últimos 22 bits son cero. Por favor, selecciona un criptograma al azar y descífralo por el método de la fuerza bruta, probando todas las 234 claves que terminen con 22 ceros. Sabrás que lo has descifrado cuando encuentres una clave que produzca un texto descifrado que comienza con 128 ceros.

Después de descifrar el criptograma, extrae el número aleatorio de 56 bits y utilízalo como tu clave. Como primer mensaje tuyo, devuélveme el número de acertijo en texto sin cifrar para que yo me entere de la clave que vas a utilizar.

[Luis Alonso Martín y Tomás Calvo Carrascal. Universidad de Salamanca. Departamento de Informática y Automática]

 

En este caso el posible intruso se enfrenta a un problema muy serio ¿qué acertijo ha elegido Juan? Si lo adivina la solución le dará la clave. Sabe qué número identifica al acertijo (Juan se lo ha mandado ya a Pedro), pero este número es aleatorio y no le proporciona información. Podría tratar de abrir todos los criptogramas y ver cuál de ellos se identifica mediante ese número, pero eso requiere mucho tiempo (varios miles de siglos). Podría tratar de elegir uno al azar, pero las probabilidades son de 1 contra 20.000.

De esta forma, Pedro y Juan se han comunicado de forma segura.

 

El acuerdo de claves Diffie-Hellman.

Este método, al igual que el de los acertijos, permite que dos individuos acuerden una clave simétrica sin necesidad de haberse comunicado con anterioridad o de pertenecer a la misma organización. Para establecer la clave se emplea una función unidireccional con trampa. Llamamos función unidireccional con trampa a aquella y = f(x) tal que:

  • A cada valor de x le corresponde uno de y.
  • Dado un valor de x es fácil hallar y.
  • Dado un valor de y es fácil calcular x si se conoce la clave, pero muy difícil en el caso contrario.

El método consiste en lo siguiente:

Pedro quiere comunicarse con Juan.

  1. Acuerdan un primo p y un valor n (ninguno de ellos es secreto).
  2. Pedro elige un valor A y lo guarda en secreto. Después calcula a = n^A mod p y se lo manda a Juan.
  3. Juan elige un valor B y lo guarda en secreto. Después calcula b = n^B mod p y se lo manda a Pedro.

Hasta aquí, Pedro, Juan y cualquier persona que intervenga el canal conocen p, n, a y b, pero solo Juan conoce B y sólo Pedro conoce A.

Ahora, Pedro calcula la clave K de la siguiente forma:

 

K = b^A mod p

 

Y Juan la calcula de esta otra forma:

 

K = a^B mod p

 

Ambas claves K son idénticas. De esta forma, Pedro y Juan conocen la clave común pero ésta no puede ser deducida a partir de la información que han intercambiado.

 

Claves conjuntas.

Hasta ahora hemos hablado de claves conocidas por el emisor y los receptores, de tal forma que los segundos pueden siempre leer el mensaje de forma individual.

Podría ser interesante un sistema de encriptación que sólo permita abrir el mensaje si se ha reunido un determinado número de miembros. Por ejemplo, un banco puede decidir que acceso a determinados datos contables se dé sólo cuando se reúna la tercera parte de los miembros de la Junta Directiva, independientemente de qué miembros en concreto estén en la reunión.

Es posible diseñar un sistema con dichas características basándose en la utilización de polinomios.

Un polinomio es una expresión de la forma

 

y = a0 + a1 x + a2 x^2 + ... + an x^n

 

A cada valor de x le corresponde uno y sólo uno de y.

Llamamos punto (P) a cada pareja de valores de x e y que satisfacen la igualdad del polinomio.

Se llama grado del polinomio al valor máximo del exponente de x.

Los diferentes ai del polinomio reciben el nombre de coeficientes.

Un polinomio de grado n tiene n+1 coeficientes, que pueden ser siempre determinados mediante n+1 puntos distintos. Es decir, si sustituimos los valores xi e yi de cada punto Pi en la expresión genérica del polinomio de grado n obtenemos n+1 ecuaciones que permiten despejar las n+1 incógnitas que son los coeficientes.

Si deseamos que el mensaje sólo pueda ser abierto cuando se junten n miembros cualesquiera del grupo, el mensaje se encripta mediante una clave basada en los coeficientes a0, a1, a2, ... , an de un polinomio de grado n. El coeficiente a0 es conocido por todos y es la clave del sistema. Se entrega además a cada miembro del grupo una clave personal, generada a partir de uno de los puntos del polinomio y que permite deducir dicho punto.

Cuando se reúnen menos de n miembros no hay puntos suficientes para determinar los coeficientes an del polinomio y el mensaje no puede ser abierto.

Este sistema permite también establecer jerarquías. Por ejemplo, el presidente de la entidad tiene seis puntos del polinomio, el vicepresidente cuatro, cada uno de los tres consejeros tiene dos y cada uno de los seis secretarios uno. Si el polinomio que cifra las contabilidad es de grado seis, el presidente siempre puede tener acceso a ella, el vicepresidente necesita de la compañía de un consejero o de dos secretarios, los tres consejeros pueden también tener acceso a las cuantas, o dos consejeros y dos secretarios... Si el polinomio es de grado siete, el presidente necesita de la compañía de al menos un secretario, el vicepresidente de un consejero y de un secretario, etc...

 

web@alt64.org

Índice de artículos
Página principal de Alt+64