Il sistema crittografico RSA, che prende il nome dai suoi inventori Rivest, Shamir e Adleman, è una forma ampiamente utilizzata di crittografia a chiave pubblica. Questo sistema ruota fondamentalmente attorno all’utilizzo di due chiavi distinte ma matematicamente legate: la chiave pubblica e la chiave privata. Ognuna di queste chiavi svolge un ruolo fondamentale nei processi di crittografia e decrittografia, garantendo comunicazioni sicure su canali potenzialmente non sicuri.
Generazione di chiavi in RSA
Il processo di generazione delle chiavi pubblica e privata in RSA prevede diversi passaggi radicati nella teoria dei numeri, in particolare nelle proprietà dei numeri primi e nell'aritmetica modulare. Ecco una ripartizione dettagliata del processo di generazione delle chiavi:
1. Selezione dei numeri primi: Il primo passo prevede la scelta di due grandi numeri primi distinti, indicati come e
. Questi numeri primi dovrebbero avere all'incirca la stessa lunghezza per garantire la sicurezza del sistema RSA.
2. Calcolare : Si calcola il prodotto dei due numeri primi:
Il valore viene utilizzato come modulo sia per la chiave pubblica che per quella privata e fa parte della chiave pubblica.
3. Calcolare la funzione totiente di Eulero : Funzione Toziente di Eulero,
, è calcolato come:
Questa funzione è importante per il processo di generazione delle chiavi, in particolare nel determinare i valori degli esponenti pubblici e privati.
4. Scegli l'esponente pubblico : L'esponente pubblico
è scelto in modo tale che sia relativamente primo rispetto a
(cioè il massimo comun divisore
). Scelte comuni per
includono 3, 17 e 65537, poiché questi valori raggiungono un equilibrio tra efficienza di crittografia e sicurezza.
5. Calcola esponente privato : L'esponente privato
è calcolato come l'inverso moltiplicativo modulare di
modulo
:
Ciò significa che soddisfare l'equazione
mod
.
Chiavi pubbliche e private in RSA
Il sistema crittografico RSA sfrutta le proprietà delle chiavi pubblica e privata per facilitare la comunicazione sicura. Ecco una descrizione dettagliata di ciascuna chiave:
- chiave pubblica: La chiave pubblica in RSA è composta dalla coppia . Questa chiave è distribuita apertamente e può essere utilizzata da chiunque desideri inviare un messaggio crittografato al proprietario della chiave. La chiave pubblica viene utilizzata nel processo di crittografia ed è progettata per essere ampiamente accessibile.
- chiave privata: La chiave privata è composta dalla coppia . Questa chiave deve essere mantenuta riservata dal proprietario della chiave, poiché viene utilizzata per decrittografare i messaggi crittografati utilizzando la chiave pubblica corrispondente. La chiave privata garantisce che solo il destinatario previsto possa accedere al messaggio in chiaro.
Processo di crittografia e decrittografia
I processi di crittografia e decrittografia RSA utilizzano le chiavi pubblica e privata come segue:
- crittografia: per crittografare un messaggio , il mittente converte il messaggio in un numero intero
così
. Il testo cifrato
viene quindi calcolato utilizzando la chiave pubblica del destinatario
:
Il testo cifrato risultante viene poi trasmesso al destinatario.
- decrittazione: Dopo aver ricevuto il testo cifrato , il destinatario utilizza la propria chiave privata
per decifrare il messaggio. Il messaggio in chiaro
viene recuperato calcolando:
Il destinatario può quindi convertire il numero intero tornare al messaggio originale
.
Esempio di generazione e utilizzo di chiavi RSA
Per illustrare la generazione e l'utilizzo della chiave RSA, considerare per semplicità il seguente esempio con numeri primi piccoli:
1. Seleziona i numeri primi: Scegli e
.
2. Calcolare :
3. Calcolare :
4. Scegli l'esponente pubblico : Permettere
(una scelta comune).
5. Calcola esponente privato : Trova
tale che:
Utilizzando l'algoritmo euclideo esteso, troviamo .
Pertanto, la chiave pubblica è e la chiave privata è
.
Per crittografare un messaggio , convertire
in un numero intero
. supporre
:
Il testo cifrato è 2790.
Per decifrare , calcola:
Il messaggio decriptato è 65, che corrisponde al messaggio originale .
Considerazioni sulla sicurezza
La sicurezza di RSA si basa sulla difficoltà computazionale di fattorizzare il grande numero composito nei suoi fattori primi
e
. Più grandi sono i numeri primi
e
, più sicuro sarà il sistema RSA. In pratica, per garantire una solida sicurezza vengono comunemente utilizzati numeri primi di 2048 bit o più.
Inoltre, la sicurezza di RSA può essere compromessa se la chiave privata è esposto o se i numeri primi
e
non sono scelti correttamente. Pertanto, pratiche sicure di generazione e gestione delle chiavi sono importanti per mantenere l'integrità del sistema crittografico RSA.
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)