Il concetto di chiave pubblica nasce da un tentativo di attaccare due dei più complicati problemi associati con la cifratura simmetrica.
Il primo problema riguarda la distribuzione della chiave, in particolare distribuire la chiave grazie alla stessa cifratura simmetrica, esso richiede che:
Whitfield Diffie*, colui che inventò la cifratura a chiave pubblica (con l'aiuto di Martin Hellman) pensava che utilizzare un distributore centralizzato di chiave, andasse contro il principio della crittografia, ovvero mettere le chiavi delle proprie comunicazioni private nella mani di terzi, non era la soluzione più adatta.
Una seconda questione su cui Diffie meditò furono le digital signatures (firme digitali). Se l'uso della crittografia doveva iniziare a estendersi, fuori dal campo militare, per scopi privati e commerciali, allora i messaggi e i documenti elettronici avrebbero necessitato dell'equivalente firma usata nei documenti cartacei.
Diffie e Hellman giunsero ad un svolta sorprendente nel 1976, trovando un metodo che risolvevfa entrami i problemi e il cui approccio era completamente diverso da quello usato fino a quel momento.
Nei cifrari convenzionali la difficoltà della lettura di un messaggio cifrato consiste nel fatto che
la trasformazione realizzata dal cifrario non è nota. In questo caso invece, il funzionamento
dell'algoritmo è noto, ma è troppo difficile da calcolare se non si conosce l'informazione segreta (trapdoor) utilizzata per generare le chiavi e/o per decifrare.
Algoritmi asimmetrici fanno affidamento su una chiave per la cifratura e una chiave per la decifratura. Essi devono avere le seguenti caratteristiche:
Una cifratura a chiave asimmetrica ha sei ingredienti:
I passi essenziali sono i seguenti:
Le due chiavi utilizzate sono definite come: chiave pubblica e chiave privata.
Nella parte alta della figura (a) abbiamo ai due estremi due utenti: Bob e Alice. Bob detiene un messaggio in plaintext (
Nella parte bassa della figura (b) abbiamo la stessa situazione. Questa volta però Bob utilizza per cifrare il messaggio la sua chiave privata. Quando invia il messaggio cifrato (
Lo scopo del primo procedimento è quello di garantire la riservatezza dei dati.
Perché diventa possibile cifrare un messaggio, senza condividere un segreto con il destinatario, la distribuzione delle chiavi è facilitata. Inoltre solo chi detiene la chiave di cifratura è in grado di produrre un dato messaggio cifrato diverso. Dato un messaggio, la cifratura con chiavi pubbliche diverse produce messaggi cifrati differenti.
Diciamo che c'è una sorgente A che produce messaggi in plaintext,
Quando il messaggio
Si ritiene che vari cifrari a chiave pubblica presentati nella letteratura siano sicura anche rispetto ad attacchi molto sofisticati. Il cifrario asimmetrico più conosciuto e utilizzato è RSA. Tuttavia, i cifrari asimmetrici conosciuti sono tutti abbastanza lenti e devono essere combinati con cifrari simmetrici e funzioni di hash.
Per inviare un messaggio cifrato si prepara un digital envelope (busta digitale), un contenitore sicuro per proteggere il messaggio durante la sua trasmissione. Il mittente cifra il messaggio originale utilizzando una chiave simmetrica K. La cifratura simmetrica è più veloce. Successivamente, il mittente cifra la chiave simmetrica K utilizzando la chiave pubblica del destinatario. Il mittente invia il digital envelope al destinatario, ovvero il messaggio cifrato (con la chiave asimmetrica) e la chiave K stessa cifrata con la chiave pubblica del destinatario. Il destinatario, per prima cosa dovrà decifrare con la sua chiave privata, la chiave K (cifrata dal mittente con la chiave pubblica del destinatario stesso), in secondo luogo dovrà utilizzare la chiave simmetrica ottenuta dalla decifratura, per decifrare (in maniera simmetrica) il resto del messaggio.
Prossimo argomento: scambio di chiavi di Diffie-Hellman