Algoritmos Asimétricos (Llave Privada - Pública)


Ideado por los matemáticos Whitfield Diffie y Martín Hellman (DH) con el informático Ralph Merkle a mediados de los 70, estos algoritmos han demostrado su seguridad en comunicaciones inseguras como Internet. Su principal característica es que no se basa en una única clave sino en un par de ellas: una conocida (Pública) y otra Privada.

Actualmente existen muchos algoritmos de este tipo pero han demostrado ser poco utilizables en la práctica ya sea por la longitud de las clave, la longitud del texto encriptado generado o su velocidad de cifrado extremadamente largos.

DH está basado en las propiedades y en el tiempo necesario para calcular el valor del logaritmo de un número extremadamente alto y primo.

Actualmente existen muchos algoritmos de este tipo pero han demostrado ser poco utilizables en la práctica ya sea por la longitud de las clave, la longitud del texto encriptado generado o su velocidad de cifrado extremadamente largos.

DH está basado en las propiedades y en el tiempo necesario para calcular el valor del logaritmo de un número extremadamente alto y primo.

RSA

Este algoritmo fue ideado en 1977 por Ron Rivest, Adi Shamir y Leonard Adleman (RSA). Es el más empleado en la actualidad, sencillo de comprender e implementar, aunque la longitud de sus claves es bastante considerable (ha pasado desde sus 200 bits originales a 2048 actualmente).

RSA es la suma de dos de los algoritmos mas importantes de la historia: el Máximo Común Divisor de Euclídes (Grecia 450-377 A.C.) y el último teorema de Fermat (Francia 1601-1665).

Se emplean las ventajas proporcionadas por las propiedades de los números primos cuando se aplican sobre ellos operaciones matemáticas basadas en la función módulo. En concreto, emplea la función exponencial discreta para cifrar y descifrar, y cuya inversa, el logaritmo discreto, el muy difícil de calcular.

Los cálculos matemáticos de este algoritmo emplean un número denominado Módulo Público, N, que forma parte de la clave pública y que se obtiene a partir de la multiplicación de dos números primos, p y q , diferentes y grandes (del orden de 512 bits) y que forman parte de la clave privada. La gran propiedad de RSA es que, mientras que N es público, los valores de p y q se pueden mantener en secreto debido a la dificultad que entraña la factorización de un número grande.

La robustez del algoritmo se basa en la facilidad para encontrar dos números primos grandes frente a la enorme dificultad que presenta la factorización de su producto. Aunque el avance tecnológico hace que cada vez sea más rápido un posible ataque por fuerza bruta, el simple hecho de aumentar la longitud de las claves empleadas supone un incremento en la carga computacional lo suficientemente grande para que este tipo de ataque sea inviable.

Sin embargo, se ha de notar que, aunque el hecho de aumentar la longitud de las claves RSA no supone ninguna dificultad tecnológica, las leyes de exportación de criptografía de EE.UU. imponían, hasta el 20 de septiembre de 2000, un límite a dicha longitud por lo que el su uso comercial de RSA no estaba permitido, ya que la patente pertenecía a los laboratorios RSA. Desde esta fecha su uso es libre.

  • Ataques a RSA
    Si un atacante quiere recuperar la clave privada a partir de la pública debe obtener p y q a partir de N , lo cual actualmente es un problema intratable si los números primos son lo suficientemente grandes (alrededor de 200 dígitos).


    Vale decir que nadie a demostrado que no pueda existir un método que permita descifrar un mensaje sin usar la clave privada y sin factorizar N . Así, aunque el algoritmo es bastante seguro conceptualmente, existen algunos ataques que pueden ser efectivos al apoyarse sobre deficiencias en la implementación y uso del mismo.

    El ataque que con mayores probabilidades de éxito es el ataque de intermediario , que en realidad puede darse sobre cualquier algoritmo de clave pública. Supongamos:
    ... que A quiere establecer una comunicación con B, y que C quiere espiarla. Cuando A le solicite a B su clave pública K B , C se interpone, obteniendo la clave de B y enviado a A una clave falsa K C , creada por él. Cuando a codifique el mensaje, C lo intercepta de nuevo, lo decodifica con su clave propia y emplea K B para codificarlo y enviarlo a B... ni A ni B sospecharán nunca de lo sucedido.

    La única manera de evitar esto consiste en asegurar a A que la clave pública de B es auténtica. Para ello esta debería ser firmada por un amigo común que, actuando como Autoridad Certificadora , certifique su autenticidad.

    Otros ataque (como el de claves débiles, el de texto plano escogido, el de módulo común, y el de exponente bajo) aprovechan vulnerabilidades específicas de algunas implementaciones.

Curvas Elípticas (CEE)

Las curvas elípticas fueron propuestas por primera vez para ser usadas en aplicaciones criptográficas en 1985 de forma independiente por Miller y Koblitz. Las curvas elípticas en sí llevan estudiándose durante muchos siglos y están entre los objetos más ricamente estructurados y estudiados de la teoría de números.

La eficiencia de este algoritmo radica en la longitud reducida de las claves, lo cual permite su implementación en sistemas de bajos recursos como teléfonos celulares y Smart Cards. Puede hacerse la siguiente comparación con RSA, obteniendo el mismo nivel de seguridad:

  • CCE de 163 bits = RSA de 1024 bits
  • CCE de 224 bits = RSA de 2048 bits

Otros algoritmos asimétricos conocidos son ElGamal (basado en el Problema de los Logaritmos Discretos de Diffie-Hellman DH), Rabin (basado en el problema del cálculo de raíces cuadradas módulo un número compuesto), DSS y LUC.

Con más de 24 años de experiencia compartiendo la mejor información de Seguridad

Contacto