Crittografia asimmetrica

()

La crittografia asimmetrica, conosciuta anche come crittografia a coppia di chiavicrittografia a chiave pubblica/privata o anche solo crittografia a chiave pubblica, è un tipo di crittografia dove, come si deduce dal nome, ad ogni attore coinvolto nella comunicazione è associata una coppia di chiavi:

  • La chiave pubblica, che deve essere distribuita;
  • La chiave privata, appunto personale e segreta

evitando così qualunque problema connesso alla necessità di uno scambio in modo sicuro dell’unica chiave utile alla cifratura/decifratura presente invece nella crittografia simmetrica. Il meccanismo si basa sul fatto che, se con una delle due chiavi si cifra (o codifica) un messaggio, allora quest’ultimo sarà decifrato solo con l’altra.

Ci sono due funzioni che possono essere realizzate: cifrare messaggi con la chiave pubblica per garantire che solo il titolare della chiave privata possa decifrarlo oppure usare la chiave pubblica per autenticare un messaggio inviato dal titolare con la chiave privata abbinata.

In un sistema di crittografia a chiave pubblica, chiunque può cifrare un messaggio usando la chiave pubblica del destinatario, ma tale messaggio può essere decifrato solo con la chiave privata del destinatario. Per fare ciò, deve essere computazionalmente facile per un utente generare una coppia di chiavi pubblica e privata da utilizzare per cifrare e decifrare. La forza di un sistema di crittografia a chiave pubblica si basa sulla difficoltà di determinare la chiave privata corrispondente alla chiave pubblica.

La sicurezza dipende quindi solo dal mantenere la chiave privata segreta, mentre la chiave pubblica può essere pubblicata senza compromettere la sicurezza.

I sistemi di crittografia a chiave pubblica spesso si basano su algoritmi di crittografia basati su problemi matematici che attualmente non ammettono alcuna soluzione particolarmente efficiente, quelli che riguardano la fattorizzazione di un numero intero, il logaritmo discreto e le relazioni delle curve ellittiche. Gli algoritmi a chiave pubblica, a differenza degli algoritmi a chiave simmetrica, non richiedono un canale sicuro per lo scambio iniziale di una (o più) chiavi segrete tra le parti.

A causa del peso computazionale della crittografia asimmetrica, essa di solito è usata solo per piccoli blocchi di dati, in genere il trasferimento di una chiave di cifratura simmetrica (per esempio una chiave di sessione). Questa chiave simmetrica è utilizzata per cifrare messaggi lunghi. La cifratura/decifratura simmetrica è basata su algoritmi semplici ed è molto più veloce. L’autenticazione del messaggio include hashing del messaggio per produrre un “digest” (risultato dell’output dell’algoritmo di hash), e crittografando il digest con la chiave privata per produrre una firma digitale. Da lì in poi chiunque può verificare questa firma:

  1. calcolando l’hash del messaggio;
  2. decifrando l’hash del messaggio;
  3. confrontando la firma del messaggio.

L’uguaglianza tra i digests conferma che il messaggio non è stato modificato da quando è stato firmato, e che il firmatario, e nessun altro, intenzionalmente abbia eseguito l’operazione di firma, presumendo che la chiave privata del firmatario sia rimasta segreta. La sicurezza di questo tipo di procedura dipende dall’algoritmo di hash di questa data qualità che è computazionalmente impossibile modificare o trovare un messaggio sostituito che produca lo stesso digest, ma gli studi hanno dimostrato che con gli algoritmi MD5 e SHA-1, produrre un messaggio alterato o sostituito non è impossibile. L’attuale standard di hash per la crittografia è SHA-2. Lo stesso messaggio può essere usato al posto del digest.

Gli algoritmi a chiave pubblica sono ingredienti fondamentali della sicurezza dei crittosistemi, applicazioni e protocolli. Essi sono alla base dei diversi standard Internet, come ad esempio Transport Layer Security (TLS), S/MIME, PGP e GPG. Alcuni algoritmi a chiave pubblica forniscono una distribuzione di chiave e segretezza (ad esempio, scambio di chiavi Diffie-Hellman), alcuni di fornire firme digitali (ad esempio Digital Signature Algorithm), altri forniscono entrambe (esempio RSA).

La crittografia a chiave pubblica trova applicazione in vari campi, tra gli altri: nella disciplina di sicurezza informatica e nella sicurezza delle informazioni. La sicurezza delle informazioni si occupa di tutti gli aspetti per la protezione delle risorse informative elettroniche contro le minacce sulla sicurezza. La crittografia a chiave pubblica viene utilizzata come metodo per assicurare la riservatezza, l’autenticazione e il non ripudio delle comunicazioni e per la memorizzazione dei dati.

L’idea base della crittografia con coppia di chiavi diviene più chiara se si usa un’analogia postale, in cui il mittente è Alice ed il destinatario Bob, i lucchetti fanno le veci delle chiavi pubbliche e le chiavi recitano la parte delle chiavi private:

  1. Alice chiede a Bob di spedirle il lucchetto già aperto. La chiave dello stesso verrà però gelosamente conservata da Bob;
  2. Alice riceve il lucchetto di Bob e, con esso, chiude il pacco e lo spedisce a Bob;
  3. Bob riceve il pacco e può aprirlo con la chiave di cui è l’unico proprietario.

Se adesso Bob volesse mandare un altro pacco ad Alice, dovrebbe farlo chiudendolo con il lucchetto di Alice (che lei dovrebbe aver preventivamente dato a Bob) che solo lei potrebbe aprire.

Si può notare come per mettere in sicurezza il contenuto dei pacchi ci sia bisogno del lucchetto del destinatario, mentre per aprirli viene usata esclusivamente la propria chiave segreta, rendendo l’intero processo di cifratura/decifratura asimmetrico (una chiave per cifrare ed una differente per decifrare). Chiunque intercettasse il lucchetto (aperto) o il messaggio chiuso con il lucchetto non potrebbe leggerne il contenuto poiché non ha la chiave. Uno dei vantaggi della crittografia asimmetrica sta nel fatto che le chiavi pubbliche possono essere scambiate anche utilizzando un mezzo insicuro, come Internet.

Usando un’altra analogia si può dire che il metodo è analogo a quello di una cassaforte che abbia due chiavi distinte, una usata per aprirla (chiave segreta), l’altra per chiuderla (chiave pubblica).

Nella crittografia simmetrica invece, che basa la sicurezza del sistema sulla segretezza della chiave di codifica/decodifica utilizzata, si rende necessario utilizzare un canale sicuro per la trasmissione della chiave, poiché l’intercettazione della stessa, da parte di terzi, vanificherebbe la sicurezza del sistema stesso.

Due degli usi più conosciuti della crittografia asimmetrica sono:

  • crittografia a chiave pubblica, nel quale i messaggi sono crittografati con la chiave pubblica del destinatario. Il messaggio non può essere decriptato da chi non possiede la chiave privata corrispondente, che viene così presupposto di essere il proprietario di quella chiave e la persona associata con la chiave pubblica. Questo è utilizzato nel tentativo di garantire la riservatezza;
  • firma digitale, in cui un messaggio viene firmato con la chiave privata del mittente e può essere verificato da chiunque abbia accesso alla chiave pubblica del mittente. Questa verifica dimostra che il mittente ha avuto accesso alla chiave privata ed è pertanto probabile che sia la persona associata alla chiave pubblica. Questo assicura anche che il messaggio non è stato manomesso, ogni manipolazione del messaggio comporterà modifiche al digest, che altrimenti rimarrebbe invariato tra il mittente e ricevente.

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?