23.3.3 Cifratura a chiave asimmetrica

La cifratura a chiave asimmetrica utilizza due chiavi diverse: una per la cifratura dell’informazione e l’altra per la decifratura. Le informazioni cifrate con una delle due chiavi possono essere decifrate solo con l’altra. Le due chiavi prendono generalmente il nome di chiave pubblica (public key) e chiave privata (secret key) dal fatto che una delle due chiavi (quella pubblica) deve essere fornita a tutti quelli dai quali si vogliono ricevere messaggi cifrati, mentre l’altra (quella privata) deve essere tenuta segretamente nascosta dal proprietario della coppia di chiavi (è indipendente quale delle due chiavi si scelga come pubblica e quale come privata, ma una volta fatta la scelta è per sempre). Tale metodo, per contrapposizione al precedente è anche detto cifratura a chiave pubblica.

Il messaggio viene cifrato dal mittente per mezzo della chiave pubblica del destinatario ed inviato al destinatario stesso, il quale è in grado di decifrarlo poiché è a conoscenza della sua chiave privata (v. fig. 23.3).


pict
Figura 23.3: Schematizzazione della comunicazione con cifratura a chiave asimmetrica.

In questo caso lo scambio della chiave pubblica può avvenire anche attraverso un canale insicuro, poiché chi reperisce la chiave pubblica relativa ad un’entità può soltanto inviare informazioni cifrate a tale entità, infatti soltanto chi conosce la chiave privata può decifrare le informazioni cifrate con la chiave pubblica.

La sicurezza del meccanismo di cifratura deriva dalla difficoltà di derivare una delle due chiavi conoscendo l’altra. Gli algoritmi di cifratura si basano sul fatto che al momento non esiste alcun metodo in grado di effettuare in tempi brevi la fattorizzazione in numeri primi. In sostanza, considerando numeri primi molto grandi e facendone il prodotto, trovare i due numeri primi nei quali è scomponibile il risultato ha un’elevata complessità computazionale.

23.3.3.1 Algoritmi di cifratura

Di seguito sono riportati alcuni tra gli algoritmi più utilizzati per la cifratura a chiave simmetrica.

Gli algoritmi di cifratura a chiave asimmetrica hanno la caratteristica di non essere molto veloci nelle fasi di cifratura e decifratura. Per questa loro caratteristica vengono generalmente utilizzati soltanto nella fase di autenticazione tra le due entità che vogliono comunicare tra loro. In genere il mittente invia un messaggio casuale detto challenge e lo cifra con la chiave pubblica del destinatario. Solo il destinatario è così in grado di decifrarlo con la sua chiave privata (e magari rinviarlo al mittente, anche in chiaro, per conferma). Il mittente è così sicuro di parlare con il destinatario.

Dopo aver superato la fase di autenticazione, il mittente invia al destinatario, nella maniera illustrata precedentemente, una chiave simmetrica con la quale cifrare i messaggi che verranno scambiati successivamente nella comunicazione. In questo modo si sfrutta la velocità degli algoritmi di cifratura simmetrica, superandolo scoglio relativo al passaggio della chiave.

Un noto protocollo per lo scambio di chiavi è stato ideato da W. Diffie e M. Hellman (v. W. Diffie and M. E. Hellman, “New directions in cryptography”, IEEE Transactions on Information Theory 22, 1976).

[da completare ...]