La crittografia asimmetrica è una delle tecniche più potenti nell'informatica e una parte fondamentale della sicurezza Internet e delle reti di tipo blockchain. Il suo utilizzo ha consentito alti livelli di sicurezza laddove necessario, garantendo privacy e anche anonimato.
Una delle più potenti tecniche crittografiche progettate dall'uomo è la crittografia asimmetrica o crittografia a chiave pubblica. Questo sistema consiste nell'uso di una formula matematica molto complessa che genera una coppia di chiavi: la prima è una chiava privata. La chiave privata è ad uso esclusivo del creatore della coppia di chiavi e viene utilizzata per crittografare e decrittografare i messaggi in modo completamente sicuro.
La seconda chiave è la cosiddetta chiave pubblica. Questa è una chiave che il creatore può dare a terzi. La chiave pubblica viene creata dalla chiave privata, ma il processo inverso è impossibile. In questo modo, il creatore delle chiavi può condividere questa chiave pubblica con terze parti, e grazie ad essa queste persone possono inviare informazioni crittografate che saranno accessibili solo utilizzando la chiave privata del creatore.
La tecnologia di crittografia asimmetrica è stata inventata da Ralph Merkle, Whitfield Diffie e Martin Hellmannell'anno XNUMX. Questo schema di chiavi private e pubbliche garantisce la creazione di comunicazioni completamente sicure, anche su canali insicuri; è questa la ragione per cui, attualmente questo sistema crittografico è quello più utilizzato. Ne sono un chiaro esempio le strutture pubbliche e private che consentono la comunicazione su Internet, dove viene utilizzata la crittografia asimmetrica per garantire la privacy delle comunicazioni.
Come funziona la crittografia asimmetrica?
Il funzionamento del sistema di crittografia pubblica comprende una serie di fasi ben definite, ognuna delle quali garantisce che il sistema funzioni correttamente. Qui le spiegheremo, una per una, in dettaglio:
Algoritmo e curva crittografica
Innanzitutto, è necessario definire quale algoritmo di crittografia asimmetrica verrà utilizzato. Ogni algoritmo possiede proprietà uniche. Queste proprietà sono correlate alla curva ellittica che l'algoritmo utilizza per il suo funzionamento. In questo momento le curve ellittiche considerate per la crittografia asimmetrica sono numerose e ne esistono almeno 22 protocollate e ben studiate.
Ad esempio, la CurveXNUMX di Daniel Bernsteins è ampiamente utilizzato in algoritmi di crittografia compatti e molto efficienti. Tuttavia, nelle reti blockchain di criptovalute come Bitcoin, la curva più utilizzata è la secpXNUMXkXNUMX. Questa curva è lo standard de factodella sicurezza delle criptovalute.
Generazione delle chiavi
Il passaggio successivo è la generazione delle chiavi private e pubbliche. La prima ad essere generata è la chiave privata. Perchè la sua creazione sia sicura, è necessario un generatore di numeri casuali molto sicuro e un pozzo d'entropia. Questi due elementi garantiranno che il numero casuale applicato alla formula matematica scelta sia veramente casuale. In questo modo garantiremo la sicurezza della chiave sin dal suo inizio.
Una volta che il generatore di numeri casuali da il un numero, questo viene applicato alla formula scelta. Il sistema inizia a risolvere la formula e da essa si ricava un numero che sarà la nostra chiave privata. Una volta generata la nostra chiave privata, inizia il ciclo di generazione della chiave pubblica. Questo ciclo utilizzerà il numero della chiave privata per collegare in modo unidirezionale la chiave privata con quella pubblica. In questo modo, la chiave pubblica può generare contenuti crittografati che possiamo risolvere con la nostra chiave privata. Va però sottolineato che, niente e nessuno in nessuna circostanza potrà rivelare la nostra chiave privata utilizzando un procedimento contrario.
Una volta terminato questo processo di generazione, avremo le nostre due chiavi pronte per la fase successiva d'utilizzo.
Propagazione della fiducia
Il terzo elemento nel funzionamento dei sistemi di crittografia asimmetrica è la propagazione sicura delle chiavi, necessaria per la creazione di spazi che garantiscano la sicurezza dei canali di comunicazione. Tra questi metodi abbiamo:
- Infrastruttura a chiave pubblica o PKI. Questa è un'infrastruttura in cui sono presenti una o più autorità di certificazione. Ogni entità è correlata a un livello di fiducia e questo livello serve a garantire l'autenticità delle chiavi pubbliche. Questo schema viene utilizzato su Internet per garantire l'autenticità dei certificati SSL / TLS sulle pagine web.
- Creazione di una Web of trust Questo è lo schema di propagazione delle chiavi più semplice e personale disponibile. Stabilisce che ogni utente abbia una serie di contatti con cui condivide la propria chiave pubblica apertamente o privatamente. Questo schema di propagazione è ampiamente utilizzato da sistemi come PGP per inviare e-mail private e crittografate.
- Uso della crittografia basata sull'identità. Questo è un semplice sistema di propagazione che utilizza un sistema centralizzato che gestisce le nostre chiavi. Le chiavi generate sono relative all'identità reale o virtuale che forniamo al sistema.
- Utilizzo della crittografia basata su certificati. In questo modello, l'utente ha una chiave privata e una pubblica che viene inviata a un'autorità di certificazione. Questa garantisce, attraverso la crittografia basata sull'identità, di generare un certificato che assicuri la validità dei dati.
- Utilizzo della crittografia senza certificati. Questo modello è simile al precedente con l'eccezione che la chiave privata generata dall'autorità è parziale. La chiave privata finale dipende dalla chiave privata parziale e da un numero casuale calcolato dall'utente. Ciò garantisce un livello di sicurezza più elevato.
Invio e ricezione di messaggi
Una volta che abbiamo propagato le chiavi pubbliche in modo sicuro, possiamo iniziare a utilizzare il sistema per inviare e ricevere messaggi in modo sicuro. Questo schema di invio e ricezione funziona generalmente come segue:
- Juan genera un messaggio che viene crittografato utilizzando la chiave pubblica di Maria e firmato con la chiave privata di Juan. Questo garantisce che il messaggio possa essere visto solo da Maria e lei può confermare che proviene inequivocabilmente da Juan.
- Il messaggio viaggia firmato e criptato attraverso il canale di comunicazione. Se venisse intercettato, qualsiasi sforzo fatto per aprirlo sarebbe inutile, perché nessuna delle sue informazioni può essere letta.
- Una volta che il messaggio raggiunge il destinatario, Maria, utilizzerà la sua chiave privata per decrittografarlo. Allo stesso tempo, potrà usare la chiave pubblica di Juan per verificare che il messaggio sia stato effettivamente inviato da lui.
- Il processo viene ripetuto per ottenere la risposta corrispondente.
Come puoi vedere, questo processo di comunicazione risolve efficacemente le comunicazioni protette nei canali aperti. La corruzione o la manipolazione di un messaggio inviato utilizzando la crittografia asimmetrica non è una cosa semplice. In effetti, un sistema di crittografia asimmetrica ben costruito renderebbe una cosa del genere praticamente impossibile; questa è la ragione per cui viene largamente utilizzata in Internet e nella blockchain. Quanto sopraelencato ha lo scopo d'offrire la massima sicurezza agli utenti.
Utilizzo della crittografia asimmetrica sulla blockchain
Fin dalla sua nascita, la tecnologia blockchain ha ambito a trovare la maniera dir fornire la massima sicurezza possibile. Nella ricerca di tali livelli di sicurezza, la crittografia asimmetrica ha svolto un ruolo cruciale. Il suo utilizzo ha permesso la generazione di chiavi pubbliche (Indirizzi) e privati che ti consentono di proteggere, inviare e ricevere criptovalute in sicurezza.
In effetti, la tecnologia blockchain è stata uno strumento perfetto per testare e sviluppare nuove tecniche crittografiche. Progressi che non hanno solo un impatto positivo sull'ecosistema blockchain ma sull'informatica in generale; ne sono degli esempi schemi come la Dimostrazione a conoscenza Zero (ZKP) o firme di Schnorr.
Corso elementare NFT
Livello di baseÈ chiaro che nulla sarà lo stesso dagli NFT, e quindi è fondamentale conoscere tutti gli aspetti basilari che contiene questo tipo di token.
Vantaggi e svantaggi della crittografia asimmetrica
Vantaggi
- Questo sistema offre un alto tasso di sicurezza, poiché lo schema di crittografia è molto complesso. La crittoanalisi di questi sistemi è complicata e gli attacchi di forza bruta per infrangere la crittografia sono inefficienti e poco pratici.
- Permette di garantire canali di comunicazione aperti e pubblici grazie allo schema della chiave pubblica e privata, consentendo al mittente e al destinatario di condividere le informazioni in modo sicuro.
- Il sistema consente inoltre l'autenticazione di informazioni crittografate grazie a un processo di firma digitale.
- Offre un alto livello di riservatezza, integrità e garantisce la disconoscibilità delle informazioni.
Svantaggi
- Rispetto alla cifratura simmetrica è computazionalmente più costoso.
- Il sistema di crittografia è suscettibile a elementi esterni alla programmazione del sistema di crittografia; ad esempio, un generatore di numeri casuali difettoso comprometterebbe completamente il sistema di crittografia.
- La complessità degli algoritmi si traduce nella difficoltà dell'analisi del loro funzionamento e sicurezza, rendendo il rilevamento di errori o di bug più complesso e difficile su questi sistemi.
- Alcuni schemi di propagazione della fiducia sono centralizzati. Questo è un punto debole rilevante che può comportare la manipolazione del certificato nel caso in cui la struttura sia compromessa.