Il sistema crittografico RSA, che prende il nome dai suoi inventori Rivest, Shamir e Adleman, è uno dei sistemi crittografici a chiave pubblica più conosciuti. È ampiamente utilizzato per la trasmissione sicura dei dati. RSA si basa sulle proprietà matematiche dei grandi numeri primi e sulla difficoltà computazionale di fattorizzare il prodotto di due grandi numeri primi. Il sistema si basa su una coppia di chiavi: una chiave pubblica, utilizzata per la crittografia, e una chiave privata, utilizzata per la decrittografia. Ognuna di queste chiavi comprende componenti specifici che lavorano insieme per consentire una comunicazione sicura.
Nel crittosistema RSA, la chiave pubblica è composta da due parti:
1. Il Modulo (n): Si tratta di un numero intero grande ottenuto moltiplicando due numeri primi distinti, p e q. La sicurezza dell'algoritmo RSA si basa sulla difficoltà di fattorizzare nuovamente questo numero elevato nelle sue componenti prime. Il modulo viene utilizzato sia nella chiave pubblica che in quella privata.
2. L'esponente pubblico (e): Si tratta di un numero intero più piccolo che in genere viene scelto come numero primo come 3, 17 o 65537. L'esponente pubblico viene utilizzato nel processo di crittografia e fa parte della chiave pubblica. Viene scelto in modo che sia primo rispetto a (p-1)(q-1), dove p e q sono i fattori primi del modulo.
La chiave pubblica è quindi rappresentata come (n, e).
Anche la chiave privata è composta da due parti:
1. Il Modulo (n): Lo stesso modulo utilizzato nella chiave pubblica viene utilizzato anche nella chiave privata.
2. L'esponente privato (d): Si tratta di un numero intero grande calcolato utilizzando l'esponente pubblico e e il totale del modulo n (indicato come φ(n)). L'esponente privato viene calcolato in modo tale da soddisfare la relazione di congruenza:
dove φ(n) = (p-1)(q-1). L'esponente privato d viene utilizzato nel processo di decrittazione.
La chiave privata è quindi rappresentata come (n, d).
Per illustrare il processo di generazione delle chiavi RSA, consideriamo per chiarezza un esempio semplificato con numeri primi piccoli:
1. Scegli due numeri primi distinti, p e q:
Sia p = 61 e q = 53.
2. Calcola il modulo n:
3. Calcola il totale φ(n):
4. Scegli un esponente pubblico e:
Sia e = 17, che è un esponente pubblico comunemente utilizzato ed è relativamente primo rispetto a 3120.
5. Calcola l'esponente privato d:
L'esponente privato d è l'inverso moltiplicativo modulare di e modulo φ(n). Ciò significa che dobbiamo trovare d tale che:
Utilizzando l'algoritmo euclideo esteso, troviamo che d = 2753.
Pertanto, la chiave pubblica è (n, e) = (3233, 17) e la chiave privata è (n, d) = (3233, 2753).
Per comprendere come funzionano la crittografia e la decrittografia RSA, considerare il seguente esempio:
1. crittografia:
Supponiamo che Alice voglia inviare un messaggio confidenziale a Bob. Conosce la chiave pubblica di Bob (n, e) = (3233, 17). Alice converte il suo messaggio in chiaro in un numero intero m tale che 0 ≤ m < n. Per semplicità, sia m = 65.
Alice calcola il testo cifrato c utilizzando la chiave pubblica di Bob:
Calcolando l'espressione di cui sopra, otteniamo:
2. Decrittografia:
Bob riceve il testo cifrato c = 2790 e usa la sua chiave privata (n, d) = (3233, 2753) per decrittografarlo. Bob calcola il messaggio in chiaro m utilizzando la sua chiave privata:
Calcolando l'espressione di cui sopra, otteniamo:
Pertanto, Bob recupera con successo il messaggio originale m = 65.
È importante notare che nelle implementazioni pratiche, i numeri primi p e q vengono scelti molto grandi (tipicamente lunghi centinaia di cifre) per garantire la sicurezza del sistema crittografico RSA. La sicurezza di RSA si basa sul fatto che, mentre è computazionalmente facile moltiplicare due grandi numeri primi per ottenere il modulo n, è estremamente difficile fattorizzare nuovamente n nelle sue componenti prime p e q. Questa difficoltà è ciò che rende RSA un sistema crittografico sicuro.
Inoltre, la scelta dell’esponente pubblico e è importante. Sebbene e = 3 o e = 65537 siano valori comunemente usati, e dovrebbe sempre essere scelto in modo tale che sia primo rispetto a φ(n). Ciò garantisce che l'esponente privato d possa essere calcolato e che i processi di crittografia e decrittografia funzionino correttamente.
Nelle applicazioni pratiche, RSA viene spesso utilizzato insieme ad altre tecniche crittografiche per migliorare la sicurezza e l'efficienza. Ad esempio, RSA viene comunemente utilizzato per crittografare una chiave simmetrica, che viene quindi utilizzata per crittografare il messaggio vero e proprio utilizzando un algoritmo a chiave simmetrica più veloce come AES (Advanced Encryption Standard). Questo approccio sfrutta i punti di forza sia della crittografia asimmetrica che di quella simmetrica.
Inoltre, RSA è ampiamente utilizzata nelle firme digitali, dove la chiave privata viene utilizzata per firmare un messaggio e la chiave pubblica viene utilizzata per verificare la firma. Ciò fornisce autenticazione e integrità, garantendo che il messaggio non sia stato manomesso e che provenga da una fonte legittima.
Il sistema crittografico RSA è un elemento fondamentale della moderna crittografia a chiave pubblica. Comprendere la struttura e la funzione delle chiavi pubbliche e private in RSA è essenziale per chiunque studi o lavori nel campo della sicurezza informatica. La chiave pubblica è costituita dal modulo (n) e dall'esponente pubblico (e), mentre la chiave privata è costituita dal modulo (n) e dall'esponente privato (d). Queste chiavi lavorano insieme per consentire la crittografia e la decrittografia sicura, garantendo la riservatezza e l'integrità dei dati in un'ampia gamma di applicazioni.
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)