el algoritmo RSA es un algoritmo de criptografía asimétrica. Asimétrico en realidad significa que funciona en dos claves diferentes, es decir, Clave Pública y Clave Privada. Como el nombre describe, la Clave Pública se da a todos y la Clave Privada se mantiene privada.
un ejemplo de criptografía asimétrica:
- un cliente (por ejemplo, un navegador) envía su Clave Pública al servidor y solicita algunos datos.
- El servidor cifra los datos utilizando la Clave Pública del cliente y envía los datos cifrados.
- El cliente recibe estos datos y los descifra.,
dado que esto es asimétrico, nadie más que browser puede descifrar los datos incluso si un tercero tiene una clave pública de browser.
La idea! La idea de RSA se basa en el hecho de que es difícil factorizar un entero grande. La Clave Pública consiste en dos números donde un número es la multiplicación de dos números primos grandes. Y la clave privada también se deriva de los mismos dos números primos. Así que si alguien puede factorizar el gran número, la clave privada está comprometida., Por lo tanto, la fuerza del cifrado radica totalmente en el tamaño de la clave y si duplicamos o triplicamos el tamaño de la clave, la fuerza del cifrado aumenta exponencialmente. Las claves RSA pueden tener típicamente 1024 o 2048 bits de largo, pero los expertos creen que las claves de 1024 bits podrían romperse en un futuro próximo. Pero hasta ahora, parece ser una tarea inviable.
Vamos a aprender el mecanismo detrás de algoritmo RSA :
- >> Generación de Clave Pública :
>> generando Clave Privada :
ahora estamos listos con nuestra Clave Pública ( n = 3127 y e = 3) y la Clave Privada(d = 2011)
ahora cifraremos «HI» :
Ahora vamos a descifrar 1394 :
8 = h E I = 9, es decir, «hi».,
a Continuación es la implementación en C del algoritmo RSA para valores pequeños:
Resultado :
Message data = 12.000000Encrypted data = 3.000000Original Message Sent = 12.000000
Este artículo es una contribución de Mohit Gupta_OMG 🙂. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contribute.geeksforgeeks.org o envíe su artículo a [email protected]. vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Deja una respuesta