La crittografia a chiave pubblica (vedere anche una
precedente
risposta) è caratterizzata dal fatto che utilizza due chiavi,
una per la cifratura e l’altra per la decifratura.
L’uso più ovvio è quello di trasmettere un testo che si
vuole mantenere privato. Supponiamo che A voglia trasmettere a B un testo
T riservato; in questo caso dovrà applicare l’algoritmo di
cifratura F usando la chiave pubblica di B per generare il testo
cifrato Tc:
Tc = F(PB,T)
La riservatezza è garantita dal fatto che solo la conoscenza
della chiave privata
CB, corrispondente a PB, consente di decifrare il messaggio.
Ma il meccanismo può anche essere usato nel modo inverso per
“autenticare” un messaggio: in questo consiste la cosiddetta
“firma digitale”.
Supponiamo che A voglia inviare un messaggio garantendone l’autenticità.
In questo caso A utilizza la sua chiave privata per
cifrare il messaggio T:
Tc = F(CA,T)
Il messaggio Tc può essere riportato in chiaro solo
dalla chiave pubblica PA corrispondente a quella privata;
questo garantisce che il messaggio è stato
manipolato solo dal proprietario di quest’ultima.
Naturalmente, se si vuole contemporaneamente consentire l’autenticazione
del messaggio e la trasmissione riservata, le due modalità
possono essere combinate:
Tac = F(PB,F(CA,T))
Il messaggio T, creato da A, viene prima autenticato con la chiave
privata di A; poi crittografato usando la chiave pubblica di B.
Il testo risultante Tac può essere decrittato da B,
mediante la sua chiave privata, e successivamente autenticato utilizzando
la chiave pubblica di A.
Come è facile verificare, in tutte le operazioni svolte per la
cifratura e l’autenticazione, ciascun soggetto utilizza solo la propria
chiave privata e la chiave pubblica degli altri: in questo consiste
l’elevato livello di sicurezza del sistema a chiave pubblica.