Il sistema crittografico RSA, che prende il nome dai suoi inventori Rivest, Shamir e Adleman, è una pietra angolare della crittografia a chiave pubblica. È ampiamente utilizzato per proteggere i dati sensibili trasmessi su Internet. Uno degli aspetti più intriganti dell'RSA è l'utilizzo di una coppia di chiavi: una chiave pubblica, che può essere condivisa apertamente, e una chiave privata, che deve essere mantenuta segreta. Questo meccanismo a doppia chiave consente, tra le altre applicazioni, comunicazioni sicure e firme digitali.
L'algoritmo RSA funziona secondo il principio della difficoltà computazionale di fattorizzare numeri compositi di grandi dimensioni. La sicurezza dell'RSA si basa sul fatto che, mentre è relativamente facile moltiplicare insieme due grandi numeri primi per produrre un numero composto, è computazionalmente impossibile invertire il processo, cioè fattorizzare nuovamente il numero composto nelle sue componenti prime. entro un arco di tempo ragionevole, considerati gli attuali vincoli tecnologici.
Per generare una coppia di chiavi RSA, è necessario seguire questi passaggi:
1. Seleziona due numeri primi grandi distinti, e
:
I numeri primi dovrebbero essere scelti casualmente e indipendentemente l’uno dall’altro. Il prodotto di questi due numeri primi, , fa parte sia della chiave pubblica che di quella privata.
2. Calcolare :
è il modulo sia per la chiave pubblica che per quella privata. È un numero composito di grandi dimensioni difficile da fattorizzare.
3. Calcola il totale :
Il paziente è dato da
. Questo valore viene utilizzato nel processo di generazione della chiave ma non fa parte della chiave pubblica.
4. Scegli un numero intero :
dovrebbe essere scelto in modo tale
e
. Questo significa
e
sono coprimi. L'intero
è l'esponente pubblico e fa parte della chiave pubblica.
5. Determinare :
è l'inverso moltiplicativo modulare di
modulo
. In altre parole,
è l'intero tale che
. Il valore
è l'esponente privato ed è tenuto segreto.
La chiave pubblica è composta dalla coppia e la chiave privata è composta dalla coppia
. La chiave pubblica può essere distribuita e utilizzata apertamente da chiunque per crittografare i messaggi destinati al proprietario della chiave. Tuttavia, solo il proprietario della chiave privata può decrittografare questi messaggi.
La questione se la chiave pubblica venga trasferita segretamente in RSA è fondamentale per comprendere i meccanismi e la sicurezza del sistema. In RSA la chiave pubblica non viene trasferita segretamente; piuttosto, è progettato per essere distribuito apertamente. La sicurezza di RSA non si basa sulla segretezza della chiave pubblica ma sulla segretezza della chiave privata e sulla difficoltà computazionale di derivare la chiave privata dalla chiave pubblica.
Esempio di generazione e crittografia di chiavi RSA
Consideriamo un esempio semplificato con numeri primi piccoli per illustrare il processo di generazione e crittografia della chiave RSA:
1. Seleziona due numeri primi grandi distinti:
lasciare e
.
2. Calcolare :
.
3. Calcola il totale :
.
4. Scegli un numero intero :
lasciare . Dobbiamo garantirlo
. Poiché 17 è coprimo con 3120, è una scelta valida.
5. Determinare :
è l'inverso moltiplicativo modulare di 17 modulo 3120. Utilizzando l'algoritmo euclideo esteso, lo troviamo
, da
.
La chiave pubblica è e la chiave privata è
.
Per crittografare un messaggio utilizzando la chiave pubblica, si calcolerebbe il testo cifrato
come segue:
Per decifrare il testo cifrato utilizzando la chiave privata, si calcolerebbe il messaggio originale
come segue:
Ad esempio, se il messaggio , il processo di crittografia sarebbe:
Per decifrare il testo cifrato , il processo di decrittazione sarebbe:
Implicazioni sulla sicurezza
La sicurezza dell'RSA si basa sulla difficoltà di fattorizzare il modulo . Se un avversario potesse tenere conto
nei suoi componenti primi
e
, potrebbero calcolare il totale
e successivamente determinare la chiave privata
. Tuttavia, per valori sufficientemente grandi di
e
, fattorizzazione
è computazionalmente irrealizzabile.
L'apertura della chiave pubblica è un aspetto fondamentale della progettazione di RSA. Consentendo la distribuzione aperta della chiave pubblica, RSA consente una comunicazione sicura tra parti che non hanno mai incontrato o scambiato chiavi in modo sicuro. Ciò è in netto contrasto con la crittografia a chiave simmetrica, in cui la chiave deve essere mantenuta segreta e scambiata in modo sicuro tra le parti.
Considerazioni pratiche
In pratica, la lunghezza della chiave RSA è in genere pari o superiore a 2048 bit per garantire la sicurezza. La scelta dell'esponente pubblico è spesso
(che è
) perché è un numero primo che fornisce un buon equilibrio tra sicurezza ed efficienza computazionale.
È anche importante considerare l’implementazione della RSA. Le vulnerabilità possono derivare da un'implementazione impropria, da attacchi side-channel o da una generazione inadeguata di numeri casuali per la creazione delle chiavi. Pertanto, è essenziale utilizzare librerie crittografiche consolidate e seguire le migliori pratiche.
In RSA la chiave pubblica non viene trasferita segretamente; è destinato ad essere distribuito apertamente. La sicurezza di RSA si basa sulla segretezza della chiave privata e sulla difficoltà computazionale di fattorizzare numeri compositi di grandi dimensioni. Comprendendo questi principi, è possibile apprezzare l'eleganza e la robustezza del sistema crittografico RSA nel proteggere le comunicazioni digitali.
Altre domande e risposte recenti riguardanti Fondamenti di crittografia classica EITC/IS/CCF:
- La crittografia a chiave pubblica è stata introdotta per essere utilizzata nella crittografia?
- In crittografia, l'insieme di tutte le possibili chiavi di un particolare protocollo crittografico viene definito spazio delle chiavi?
- In un cifrario a scorrimento, le lettere alla fine dell'alfabeto vengono sostituite con le lettere all'inizio dell'alfabeto secondo l'aritmetica modulare?
- Cosa dovrebbe includere un cifrario a blocchi secondo Shannon?
- Il protocollo DES è stato introdotto per migliorare la sicurezza dei sistemi crittografici AES?
- La sicurezza dei cifrari a blocchi dipende dalla combinazione ripetuta di operazioni di confusione e diffusione?
- Le funzioni di crittografia e decrittografia devono essere tenute segrete affinché il protocollo crittografico rimanga sicuro?
- La crittoanalisi può essere utilizzata per comunicare in modo sicuro su un canale di comunicazione non sicuro?
- Internet, GSM e le reti wireless appartengono ai canali di comunicazione non sicuri?
- Una ricerca esaustiva delle chiavi è efficace contro i cifrari a sostituzione?
Visualizza altre domande e risposte in EITC/IS/CCF Classical Cryptography Fundamentals
Altre domande e risposte:
- Settore: Cybersecurity
- programma: Fondamenti di crittografia classica EITC/IS/CCF (vai al programma di certificazione)
- Lezione: Introduzione alla crittografia a chiave pubblica (vai alla lezione correlata)
- Argomento: Il crittosistema RSA e l'elevamento a potenza efficiente (vai all'argomento correlato)