Funcionamiento del algoritmo RSA

RSA es un algoritmo de cifrado de clave pública que le permite al usuario conservar la confidencialidad de la información cuando es transmitida o compartida con otros usuarios. Conocer en que consiste es la mejor opción para utilizarlo de forma adecuada y salvaguardar la información más sensible.

Los sistemas de cifrado con clave pública tuvieron su inicio a mitad de la década de los setenta con el protocolo criptográfico de Diffie y Hellman. Este protocolo basado en la extrema dificultad de calcular logaritmos discretos en números primos muy grandes, tiene la particularidad que no permitía realizar un cifrado real de información o la firma digital sobre un mensaje.

Para finales de la década del setenta aparece un algoritmo de cifrado que se patenta como RSA. A diferencia del algoritmo anterior este algoritmo aprovecha la complejidad para factorizar un número compuesto. Los dos métodos presentan una complejidad algorítmica similar y presentan un reto computacional que no se puede abordar con la capacidad actual al calcular operaciones con números primos muy grandes.

La fortaleza del algoritmo RSA se basa en la complejidad de cálculo que tiene encontrar los dos factores primos de un número compuesto muy grande. La operación inversa de este problema, es decir multiplicar dos números primos grandes, es una operación poco costosa computacionalmente y que se puede realizar rápidamente, pero en sentido contrario, es decir encontrar los factores primos de un número es una operación que a medida que se incrementa el tamaño del número aumenta los requerimientos de hardware para su cálculo además de aumentar el tiempo requerido para su cálculo. Por ejemplo, sin utilizar ningún tipo de ayuda electrónica, cuando tiempo demoras en calcular el producto 11 por 31. Y ahora, cuanto se demora en hallar los factores primos de 221.

Con el algoritmo RSA los valores de los factores primos deben ser mínimo de 155 dígitos, lo que aproximadamente son unos 512 bits, para la firma con certificados digitales que utilizan el estándar X.509. El producto de estos factores tiene alrededor de 310 dígitos, que representa 1024 bits, lo cual puede dar una idea de lo complejo que puede llegar volverse su factorización en materia de recursos tecnológicos. Claro que dado el crecimiento en capacidad de cómputo, donde se puede encontrar por ejemplo cluster de 25 GPU que descifran contraseñas de 8 caracteres en 5.5 horas, se ha vuelto frecuente en algunas aplicaciones utilizar como factores números de mínimo 1024bits.

El uso de este algoritmo se ha extendido hasta tal punto que se publicó el RSA Cryptography Standard, que contiene las recomendaciones para la implementación de métodos criptográficos de clave pública basados en el algoritmo RSA. Esta documentación contiene algunas nociones básicas sobre cifrado y descifrado y sobre firma y verificación de mensajes. Además contiene algunos esquemas donde se describen las operaciones de cifrado y el proceso inverso. Lo interesante de este estándar es que es compatible con las recomendaciones para implementar métodos basados en clave pública de la IEEE, en su documento IEEE 1363-2000.

Más allá de utilizar algoritmos seguros con altos niveles de protección es necesario que los usuarios sean cuidadosos en el uso de las contraseñas y precavidos en cuanto al tipo de sitios que utilizan para intercambiar información sensible. En nuestra Plataforma Educativa ESET podrán encontrar cursos gratuitos como el de Seguridad en las transacciones comerciales en línea y el de Seguridad para PyMEs que brindan consejos adicionales para que los usuarios conserven la confidencialidad de su información.

H. Camilo Gutiérrez Amaya
Especialista de Awareness & Research

Autor , ESET

Síguenos