3 Criptografía asimétrica algoritmo RSA

Las bases matemáticas de la criptografía de clave pública utilizando el algoritmo RSA

Fermat y los números primos
En 1640, el matemático francés Pierre de Fermat descubrió una propiedad muy especial de los números primos (un numero primo es aquel que se puede dividir solo por sí mismo y 1, por ejemplo 3,5,7,11,…). Si a una potencia cuya base sea cualquier número entero positivo y exponente, un número primo. Si al resultado de la potencia se le resta la base, se obtendrá un múltiplo de dicha base. Por ejemplo 2^3 = 2x2x2 = 8. Si restamos 2 a 8, el resultado es 6 que es múltiplo de 2.
El descubrimiento de Fermat fue interesante para matemáticos y no tuvo más aplicación en su época.
El problema de la factorización de números enteros íntegros (Integer Factorization Problem)
Hay un problema clásico matemático que se llama “Integer Factorization Problem”. El problema es el siguiente. Cualquier número entero se puede expresar como el producto de dos números primos (por ejemplo 10 = 2 x 5). Pero la dificultad para descubrir los factores de un número entero aumentan dramáticamente cuanto más grandes sean los números e incluso más si el número es una multiplicación de dos o más números primos.
Este problema matemático crea una situación en la que es muy fácil y rápido multiplicar dos números muy grandes primos, pero casi imposible descubrir sus factores si solo se conoce el resultado de la multiplicación, o sea, el producto. Por ejemplo 9.788.111 = 3.571 x 2.741 es muy fácil de multiplicar, pero es muy difícil averiguar los dos factores.
El nacimiento de la criptografía asimétrica con la ayuda de Fermat y el Integer Factorization Problem
Durante 300 años, ambos problemas matemáticos fueron interesantes para matemáticos, pero no especialmente útiles. En 1970 se descubrió que combinando estos dos problemas matemáticos se podían crear dos claves de cifrado que están matemáticamente relacionadas. Mientras con la clave A podría generar una clave B lo contrario no sería posible. El nombre del algoritmo de cifrado que posibilita esto es RSA (Rivest, Shamir y Adleman los creadores de RSA).
Se cree que RSA será seguro mientras no se conozcan formas rápidas de descomponer un número grande en producto de primos. La computación cuántica podría proveer una solución a este problema de factorización, pero no existe todavía.
En la generación de claves públicas y privadas de Bitcoin no se utiliza RSA porque ya no es un algoritmo de cifrado seguro con claves cortas, sino que se utiliza ECDSA basado en curvas elípticas que explicaremos en otro artículo.
Para leer más sobre el funcionamiento matemático del algoritmo RSA se recomienda la lectura de este artículo de David Peery -Rubber-Ducking: RSA

No hay comentarios:

Publicar un comentario