La crittografia con chiave pubblica, nota anche come crittografia asimmetrica, utilizza due chiavi separate invece di una condivisa: una chiave pubblica e una chiave privata. La crittografia con chiave pubblica è una tecnologia importante per la sicurezza di Internet.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
La crittografia con chiave pubblica è un metodo per crittografare o firmare dati con due chiavi diverse e rendere una delle chiavi, la chiave pubblica, disponibile affinché possa essere utilizzata da chiunque. L'altra chiave è nota come chiave privata. I dati crittografati con la chiave pubblica possono essere decrittografati solo con la chiave privata. A causa di questo uso di due chiavi invece di una, la crittografia a chiave pubblica è nota anche come crittografia asimmetrica. È ampiamente utilizzata, soprattutto per TLS/SSL, che rende possibile HTTPS.
In crittografia, una chiave è un'informazione utilizzata per codificare i dati in modo che appaiano casuali; spesso è un numero elevato o una stringa di numeri e lettere. Quando i dati non crittografati, detti anche testo in chiaro, vengono inseriti in un algoritmo crittografico utilizzando la chiave, il testo in chiaro esce dall'altro lato come dati dall'aspetto casuale. Tuttavia, chiunque abbia la chiave giusta per decrittografare i dati può rimetterli in forma di testo in chiaro.
Supponiamo, ad esempio, di prendere un messaggio in chiaro, "ciao", e di crittografarlo con una chiave; diciamo che la chiave è "2jd8932kd8". Crittografato con questa chiave, il nostro semplice "hello" ora si legge "X5xJCSycg14=", che sembra un mucchio di dati spazzatura casuali. Tuttavia, decodificandolo con la stessa chiave, rileggiamo "ciao".
Testo in chiaro + chiave = testo cifrato:
ciao + 2jd8932kd8 = X5xJCSycg14=
Testo cifrato + chiave = testo in chiaro:
X5xJCSycg14= + 2jd8932kd8 = ciao
Questo è un esempio di crittografia simmetrica, in cui viene utilizzata una sola chiave. Nella crittografia con chiavi pubbliche, ci sarebbero invece due chiavi. La chiave pubblica crittograferebbe i dati e la chiave privata li decodificherebbe.
La crittografia con chiavi pubbliche è estremamente utile per stabilire comunicazioni sicure su Internet (tramite HTTPS). Il certificato SSL/TLS di un sito Web, che è condiviso pubblicamente, contiene la chiave pubblica mentre la chiave privata è installata sul server di origine: è "di proprietà" del sito Web.
Gli handshake TLS utilizzano la crittografia con chiavi pubbliche per autenticare l'identità del server di origine e per scambiare i dati utilizzati per generare le chiavi di sessione. Un algoritmo di scambio di chiavi, come RSA o Diffie-Hellman, utilizza la coppia di chiavi pubblica-privata per concordare le chiavi di sessione, che vengono utilizzate per la crittografia simmetrica una volta completato l'handshake. I client e i server sono in grado di concordare nuove chiavi di sessione per ogni sessione di comunicazione, in modo che i malintenzionati non siano in grado di decrittografare le comunicazioni anche se identificano o rubano una delle chiavi di sessione da una sessione precedente.