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:

  1. un cliente (por ejemplo, un navegador) envía su Clave Pública al servidor y solicita algunos datos.
  2. El servidor cifra los datos utilizando la Clave Pública del cliente y envía los datos cifrados.
  3. 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 :

  • Seleccione dos primeros no. Supongamos que P = 53 y Q = 59.,Ahora primera parte de la Clave Pública: n = P * Q = 3127.
  • Nuestra Clave Pública está hecha de n y e
  • >> generando Clave Privada :

    
    
  • necesitamos calcular Φ(n) :tal Que Φ(n) = (P-1)(Q-1) entonces, φ(n) = 3016
  • ahora calcule la clave privada, d : d = (k*φ(n) + 1) / e para algún entero KFOR K = 2, el valor de D es 2011.,
  • ahora estamos listos con nuestra Clave Pública ( n = 3127 y e = 3) y la Clave Privada(d = 2011)

    ahora cifraremos «HI» :

    
    
  • convertir letras a números : H = 8 e i = 9
  • Por lo tanto, los datos cifrados C = 89E mod n. Por lo tanto, nuestros datos cifrados 1394
  • Ahora vamos a descifrar 1394 :

  • decrypted data = CD mod n. Por lo tanto, nuestros datos cifrados resultan ser 89
  • 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.