Differenza tra Algoritmi simmetrici e Algoritmi asimmetrici in informatica
Algoritmi simmetrici
Gli algoritmi simmetrici utilizzano la stessa (ed unica) chiave privata, per cifrare e decifrare. Conviene evidenziare da subito che gli algoritmi simmetrici non si prestano bene a garantire la riservatezza nella comunicazione continuativa fra N soggetti indipendenti, in quanto:
- occorre una chiave privata per ogni coppia di soggetti;
- ogni soggetto è costretto a possedere N-1 chiavi, a mantenerle segrete ed a ricordare la chiave da utilizzare per comunicare con ciascuno degli altri soggetti;
- nel caso in cui la chiave sia generata autonomamente dal soggetto che avvia la comunicazione, è necessario che venga trasmessa al destinatario affinché questo possa decifrare i messaggi che riceve, e durante il trasferimento la chiave potrebbe essere intercettata.
D’altra parte, gli algoritmi simmetrici sono relativamente poco costosi, dal punto di vista della potenza di elaborazione che richiedono, e per questo motivo vengono tipicamente usati in congiunzione con algoritmi asimmetrici. Uno degli algoritmi simmetrici utilizzati al momento è il DES (Data Encription Standard) con chiavi di 56 o 112 bit.
Algoritmi asimmetrici
Gli algoritmi asimmetrici sono di concezione abbastanza recente ed utilizzano due chiavi distinte per cifrare e decifrare, con alcune proprietà fondamentali:
- un documento cifrato con una chiave può essere decifrato con l’altra e viceversa;
- le chiavi vengono generate in coppia da uno speciale algoritmo ed è di fatto impossibile ottenere una chiave a partire dall’altra;
- una qualsiasi delle due chiavi viene detta pubblica, è può essere distribuita; l’altra, detta privata, deve essere mantenuta segreta.
Nella comunicazione fra N soggetti, gli algoritmi asimmetrici risultano decisamente più utili dei simmetrici in quanto:
- occorre una sola coppia di chiavi per ciascun soggetto;
- ogni soggetto genera autonomamente una propria coppia di chiavi, ed è tenuto a mantenere segreta una sola di esse, quella privata, mentre può, anzi deve, pubblicare l’altra;
- le chiavi private non devono essere scambiate, dunque non sussiste pericolo di intercettazioni.
Se il soggetto A vuole inviare un messaggio riservato al soggetto B, ad esempio, cifra il messaggio con la chiave pubblica di B che, in quanto pubblica, è nota a tutti. In questo modo il messaggio sarà decifrabile soltanto con la chiave privata di B che, in quanto privata, solo B conosce. L’algoritmo RSA, proposto da Rivest, Shamir e Adleman nel 1978, è attualmente considerato come standard per la crittografia a chiave pubblica. Esistono varie implementazioni di RSA, che utilizzano coppie di chiavi di 512 o di 1024 bit.