Algoritmo RSA è algoritmo di crittografia asimmetrica. Asimmetrico in realtà significa che funziona su due chiavi diverse, ovvero Chiave pubblica e chiave privata. Come il nome descrive che la chiave pubblica viene data a tutti e la chiave privata viene mantenuta privata.

Un esempio di crittografia asimmetrica:

  1. Un client (ad esempio browser) invia la sua chiave pubblica al server e richiede alcuni dati.
  2. Il server crittografa i dati utilizzando la chiave pubblica del client e invia i dati crittografati.
  3. Il client riceve questi dati e li decrittografa.,

Poiché questo è asimmetrico, nessun altro tranne il browser può decifrare i dati anche se una terza parte ha la chiave pubblica del browser.

L’idea! L’idea di RSA si basa sul fatto che è difficile fattorizzare un numero intero di grandi dimensioni. La chiave pubblica consiste di due numeri in cui un numero è la moltiplicazione di due grandi numeri primi. E la chiave privata deriva anche dagli stessi due numeri primi. Quindi se qualcuno può fattorizzare il gran numero, la chiave privata è compromessa., Pertanto la forza di crittografia si trova totalmente sulla dimensione della chiave e se raddoppiamo o triplichiamo la dimensione della chiave, la forza della crittografia aumenta in modo esponenziale. Le chiavi RSA possono essere in genere lunghe 1024 o 2048 bit, ma gli esperti ritengono che le chiavi a 1024 bit potrebbero essere interrotte nel prossimo futuro. Ma fino ad ora sembra essere un compito impossibile.

Impariamo il meccanismo dietro l’algoritmo RSA :

    >> Generare chiave pubblica :

  • Selezionare due no primi. Supponiamo P = 53 e Q = 59.,Ora prima parte della chiave pubblica: n = P * Q = 3127.
  • la Nostra Chiave Pubblica è composta da n e e
  • >> Generare la Chiave Privata :

    
    
  • Abbiamo bisogno di calcolare Φ(n) :Tale che Φ(n) = (P-1)(Q-1) quindi, Φ(n) = 3016
  • Ora calcolare la Chiave Privata d : d = (k*F(n) + 1) / e per qualche intero kFor k = 2, il valore di d è il 2011.,
  • Ora siamo pronti con la nostra Chiave Pubblica ( n = 3127 e e = 3) e la Chiave Privata(d = 2011)

    Ora ci sarà crittografare “HI” :

    
    
  • Convertire le lettere in numeri : H = 8 I = 9
  • Quindi i Dati Crittografati c = 89e mod n. Così, i nostri Dati Crittografati risulta essere 1394
  • Ora siamo in grado di decriptare 1394 :

  • i Dati Decriptati = cd mod n. Così, i nostri Dati Crittografati esce 89
  • 8 = H) e I) = 9 cioè “CIAO”.,

    di Seguito è C implementazione dell’algoritmo RSA per piccoli valori:

    
    

    
    

    Uscita :

    Message data = 12.000000Encrypted data = 3.000000Original Message Sent = 12.000000

    Questo articolo è un contributo di Mohit Gupta_OMG 🙂. Se ti piace GeeksforGeeks e vorrebbe contribuire, si può anche scrivere un articolo utilizzando contribute.geeksforgeeks.org o posta il tuo articolo a [email protected]. Vedere il tuo articolo che appare sulla pagina principale GeeksforGeeks e aiutare altri Geek.