Per stabilire se la crittografia a chiave pubblica sia stata introdotta a scopo di crittografia, è necessario comprendere sia il contesto storico che gli obiettivi fondamentali della crittografia a chiave pubblica, nonché i meccanismi tecnici alla base dei suoi primi sistemi più importanti, come RSA.
Storicamente, la crittografia è stata dominata da algoritmi a chiave simmetrica, in cui entrambe le parti condividevano un'unica chiave segreta sia per la crittografia che per la decrittografia. La sfida principale dei sistemi a chiave simmetrica è la distribuzione sicura delle chiavi: se due parti desiderano comunicare in modo sicuro, devono prima concordare una chiave segreta condivisa attraverso un canale sicuro, il che può essere di per sé poco pratico o poco sicuro, soprattutto con la crescita della rete. Questo problema di distribuzione delle chiavi è diventato sempre più evidente con l'avvento delle reti informatiche.
Il concetto di crittografia a chiave pubblica (PKC), noto anche come crittografia asimmetrica, fu introdotto da Whitfield Diffie e Martin Hellman nel 1976. Il loro articolo fondamentale, "New Directions in Cryptography", ne espose l'idea fondamentale: un sistema crittografico in cui ogni utente possiede una coppia di chiavi: una chiave pubblica che può essere condivisa apertamente e una chiave privata che viene mantenuta segreta. La proprietà fondamentale è che la conoscenza della chiave pubblica non compromette la segretezza della chiave privata. Questa innovazione offre una soluzione al problema della distribuzione delle chiavi consentendo a chiunque di crittografare i messaggi utilizzando la chiave pubblica del destinatario, mentre solo il destinatario può decifrarli utilizzando la propria chiave privata.
Tuttavia, è importante notare che il primissimo sistema crittografico a chiave pubblica introdotto da Diffie e Hellman non fu progettato per la crittografia, ma per lo scambio sicuro di chiavi. Il protocollo di scambio di chiavi Diffie-Hellman consente a due parti di concordare un segreto condiviso su un canale non sicuro, che può essere successivamente utilizzato per la crittografia simmetrica. Questo protocollo dimostrò la fattibilità delle tecniche asimmetriche, ma non fornì di per sé un metodo per crittografare direttamente i messaggi.
Il primo sistema di crittografia a chiave pubblica pratico fu proposto da Ronald Rivest, Adi Shamir e Leonard Adleman nel 1977, ed è noto come RSA (dalle loro iniziali). RSA si basa sulla difficoltà computazionale di fattorizzare numeri composti di grandi dimensioni. In RSA, le operazioni di crittografia e decrittografia sono inverse matematiche sotto le chiavi appropriate, consentendo a chiunque di crittografare un messaggio utilizzando la chiave pubblica del destinatario, mentre solo il destinatario può decrittografarlo con la propria chiave privata.
Pertanto, l'introduzione iniziale della crittografia a chiave pubblica fu finalizzata allo scambio sicuro di chiavi (come nel caso di Diffie-Hellman), non alla crittografia diretta dei messaggi. Il concetto fu poi esteso alla crittografia e alle firme digitali, in particolare con l'avvento di RSA.
Da un punto di vista didattico, la distinzione tra scambio di chiavi e crittografia è significativa. Protocolli di scambio di chiavi come Diffie-Hellman vengono in genere utilizzati per stabilire un segreto condiviso, che viene poi utilizzato come chiave simmetrica per crittografare i messaggi veri e propri. Gli schemi di crittografia a chiave pubblica, invece, consentono al mittente di crittografare un messaggio direttamente con la chiave pubblica del destinatario, garantendo che solo il destinatario previsto possa decifrarlo.
RSA può essere utilizzato sia come metodo per la crittografia dei messaggi che per la creazione di firme digitali, un'altra applicazione fondamentale dei sistemi crittografici a chiave pubblica. La funzionalità di firma digitale consente l'autenticazione, la verifica dell'integrità e la non ripudiabilità, che sono servizi di sicurezza critici nei moderni sistemi di comunicazione.
Per illustrare questo concetto, consideriamo l'uso di RSA per la crittografia:
– Alice genera una coppia di chiavi pubblica/privata. Pubblica la sua chiave pubblica e mantiene segreta la sua chiave privata.
– Bob desidera inviare ad Alice un messaggio riservato. Lo crittografa usando la chiave pubblica di Alice.
– Solo Alice, possedendo la chiave privata, può decifrare il messaggio di Bob.
Nel contesto delle firme digitali:
– Alice genera e pubblica la sua chiave pubblica.
– Alice desidera firmare un documento. Calcola un hash del documento e lo crittografa con la sua chiave privata: il risultato è la firma.
– Chiunque può verificare la firma utilizzando la chiave pubblica di Alice.
Questa dualità evidenzia la flessibilità e la potenza della crittografia a chiave pubblica, ma è importante riconoscere che lo sviluppo iniziale fu motivato dal problema dello scambio sicuro delle chiavi. La crittografia diretta e le firme furono applicazioni successive significative, seguite subito dopo il lavoro fondamentale.
Anche le considerazioni di efficienza giocano un ruolo importante nell'implementazione pratica della crittografia a chiave pubblica. Le operazioni a chiave pubblica, in particolare in RSA, sono computazionalmente più intensive rispetto a quelle a chiave simmetrica. Di conseguenza, nei sistemi reali, la crittografia a chiave pubblica viene spesso utilizzata solo per crittografare piccole porzioni di dati, come le chiavi simmetriche, che vengono poi utilizzate per crittografare i messaggi veri e propri. Questo approccio ibrido sfrutta l'efficienza degli algoritmi simmetrici e le proprietà di distribuzione sicura delle chiavi degli schemi a chiave pubblica.
Ad esempio, nei protocolli SSL/TLS utilizzati per proteggere le comunicazioni web, RSA (o un altro sistema a chiave pubblica) viene utilizzato durante la fase di handshake per scambiare una chiave di sessione. Questa chiave di sessione viene poi utilizzata con un cifrario simmetrico, come AES, per crittografare i dati scambiati durante la sessione.
Algoritmi di elevazione a potenza efficienti, come il quadrato e la moltiplicazione, vengono utilizzati in RSA per rendere le operazioni di elevazione a potenza modulare gestibili anche con chiavi di grandi dimensioni (ad esempio, moduli di 2048 bit). Queste ottimizzazioni algoritmiche sono fondamentali per garantire la fattibilità della crittografia a chiave pubblica nei sistemi pratici.
Inoltre, la sicurezza dei sistemi crittografici a chiave pubblica come RSA si basa sull'intrattabilità computazionale di alcuni problemi matematici. Per RSA, il problema è la fattorizzazione di numeri composti di grandi dimensioni. Per Diffie-Hellman, la sicurezza si basa sulla difficoltà del problema del logaritmo discreto in determinati gruppi. La scelta delle dimensioni delle chiavi e delle strutture matematiche sottostanti influisce direttamente sulla sicurezza e sulle prestazioni di questi sistemi.
La crittografia a chiave pubblica ha inoltre introdotto nuove possibilità per comunicazioni sicure che non erano realizzabili con i soli sistemi simmetrici, come infrastrutture di autenticazione scalabili (tramite firme digitali e autorità di certificazione), posta elettronica sicura (PGP, S/MIME) e aggiornamenti software sicuri.
La crittografia a chiave pubblica fu introdotta per affrontare il problema dello scambio di chiavi, con il primo protocollo concreto (Diffie-Hellman) che forniva un metodo per stabilire un segreto condiviso. Il concetto fu rapidamente ampliato per includere la crittografia a chiave pubblica e le firme digitali, come implementato in RSA e sistemi correlati. La crittografia a chiave pubblica divenne uno strumento fondamentale per la riservatezza, l'autenticazione, l'integrità e il non ripudio nelle comunicazioni digitali.
Altre domande e risposte recenti riguardanti Fondamenti di crittografia classica EITC/IS/CCF:
- 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?
- Il sottolivello AES MixColumn include una trasformazione non lineare che può essere rappresentata da una moltiplicazione di matrice 4×4?
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)