1.1.4 - Chiavi simmetriche e asimmetriche

Nei sistemi a chiave simmetrica, la chiave deve essere scambiata tra gli interlocutori, e può essere la stessa per i messaggi circolanti nelle due direzioni, oppure diversa. Ciò implica comunque che chi deve codificare un messaggio abbia ricevuto in modo sicuro la chiave del destinatario. Questo trasferimento di chiave è un punto critico, perché deve avvenire di persona, o in luogo segreto, o tramite fiduciari, ecc. In realtà, a questo problema si rimedia in molti casi con l’algoritmo di Diffie-Hellman, che genera la stessa chiave simmetrica presso i due partner, senza mai scambiarla.

I sistemi a chiave asimmetrica, invece, sono usati in ambienti “aperti”, e possono essere utili anche per scambiarsi eventuali chiavi simmetriche. Il grande vantaggio della doppia chiave è che quella privata non esce mai dal controllo del proprietario. Nella maggior parte di questi sistemi, i due tipi di chiavi possono essere usati sia per codificare, sia per decodificare.

crittografia1.3.bmp 

Qualunque Sender A può quindi cifrare un messaggio per un Receiver B, usando la chiave pubblica di quest’ultimo, che sarà l’unico a poterlo decifrare con la sua chiave privata. Se A vuole garantire anche la propria identità, può opzionalmente codificare lo stesso messaggio, o una sua parte (hash), con la sua chiave privata, come firma, così che B possa identificarlo con la chiave pubblica di A.

Si noti che i sistemi a chiave simmetrica sono molto meno “scalabili” di quelli a chiave asimmetrica, dato che la chiave comune (detta per questo anche PSK-PreShared Key) deve essere condivisa tra gli interlocutori. Se un utente deve scambiare messaggi cifrati con 100 interlocutori:

  • con un sistema a chiave simmetrica, o ha la stessa chiave condivisa con tutti (e allora non sa più chi esattamente gli manda i messaggi, ed è alto il rischio di una sua diffusione), o usa una chiave diversa con ciascuno (e l’archivio delle chiavi si fa cospicuo)
  • con un sistema a chiave asimmetrica, gli bastano due chiavi: quella privata, solo sua, che usa per decifrare i messaggi, e quella pubblica, che può essere usata da tutti i mittenti per cifrarli. Per identificare quali mittenti inviano i messaggi, questi devono cifrare con la loro chiave privata un estratto degli stessi, producendo un “hash” con funzione di “firma elettronica”, da aggiungere al messaggio cifrato; per decodificare gli hash e riconoscere i vari mittenti, il destinatario usa le loro chiavi pubbliche, contenute in un “elenco” accessibile a tutti.

Ultime modifiche: mercoledì, 14 aprile 2021, 11:41