Cos’è la crittografia e come funziona?

0

La crittografia ha una lunga storia che risale a quando gli antichi greci e romani inviavano messaggi segreti sostituendo le lettere utilizzando una chiave segreta. Ti sei mai chiesto realmente cos’è la crittografia e come funziona? Scoprilo in questo articolo!

I primi giorni della crittografia

Gli antichi greci usavano uno strumento chiamato Scytale per aiutare a cifrare i loro messaggi più velocemente usando un codice di trasposizione – avvolgevano la striscia di pergamena attorno al cilindro, scrivevano il messaggio, e quando la pergamena sarebbe stata aperta la lettura diventava incomprensibile.

Questo metodo di crittografia può essere rotto facilmente, ovviamente, ma è uno dei primi esempi di crittografia effettivamente utilizzato nel mondo reale.

Giulio Cesare usò un metodo alquanto simile durante il suo regno, spostando ogni lettera dell’alfabeto a destra o sinistra di un certo numero di posizioni, una tecnica di crittografia nota come cifrario di Cesare. Ad esempio, utilizzando la configurazione qui sotto, scriverai “DIGITALART “come “GLJLWDODUW”.

Comune:  ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cifrato: DEFGHIJKLMNOPQRSTUVWXYZABC

Poiché solo il destinatario previsto del messaggio conosceva il codice, sarebbe stato difficile per la persona successiva decodificare il messaggio, che apparirebbe privo di significato, ma la persona che aveva il codice poteva facilmente decodificarlo e leggerlo.

Esistono altri cifrari di crittografia semplici come la scacchiera di Polibio, questa utilizza un codice polialfabetico che elencava ciascuna lettera con le corrispondenti posizioni numeriche nella parte superiore e laterale per indicare dove si trovava la posizione della lettera.

Immagine

Usando una tabella come quella di sopra, si poteva scrivere la lettera “G” come “23” o “DIGITALART” come “41 34 23 34 54 11 42 14 54”.

Enigma

Immagine

Durante la seconda guerra mondiale, i tedeschi usarono la macchina Enigma per trasmettere messaggi criptati avanti e indietro, i polacchi impiegarono anni per decifrare i messaggi e dare la soluzione alle forze alleate, che era strumentale alla loro vittoria.

La storia della crittografia moderna

Qualche tempo fa le persone non avevano un buon metodo di crittografia per proteggere le loro comunicazioni elettroniche. Horst Feistel e i suoi colleghi della IBM svilupparono quindi un cifrario chiamato Lucifer per i primi codici a blocchi. Tuttavia era necessario un sistema più efficiente. Il Data Encryption Standard (DES) è un cifrario a blocchi a forma di crittografia segreta condivisa, che è stato selezionato dal National Bureau come FIPS (Federal Information Processing Standard) ufficiale per gli Stati Uniti nel 1976 e che ha successivamente goduto di una diffusione ampia.

L’algoritmo di crittografia Rijndael è stato adottato dal governo degli Stati Uniti come crittografia a chiave simmetrica standard o Advanced Encryption Standard (AES). L’AES è stato annunciato dal National Institute of Standards and Technology (NIST) come US FIPS PUB 197 (FIPS 197) il 26 novembre 2001 dopo un processo di standardizzazione quinquennale in cui sono stati presentati e valutati quindici progetti concorrenti prima che Rijndael fosse selezionato come l’algoritmo di crittografia più adatto.

Prestazioni degli algoritmi di di crittografia

Esistono molti algoritmi di crittografia e sono tutti adatti a scopi diversi: le due caratteristiche principali che identificano e differenziano un algoritmo di crittografia da un altro sono la sua capacità di proteggere i dati sensibili dagli attacchi e la sua velocità ed efficienza nel farlo.

Come buon esempio della differenza di velocità tra diversi tipi di crittografia, è possibile utilizzare l’utilità di benchmarking integrata nella procedura guidata per la creazione di volumi di TrueCrypt: come si può vedere, AES è di gran lunga il tipo più veloce di crittografia avanzata.

Esistono metodi di crittografia più lenti e veloci e sono tutti adatti a scopi diversi. Se stai semplicemente cercando di decrittografare un piccolo frammento di dati ogni tanto, puoi permetterti di usare la crittografia più potente possibile, o addirittura criptarlo due volte con diversi tipi di crittografia. Se hai bisogno di velocità, probabilmente vorrai usare AES.

Per ulteriori informazioni sul benchmarking di diversi tipi di crittografia, consulta il rapporto della Washington University of St. Louis, dove hanno fatto un sacco di test su diverse routine.

Tipi di crittografia moderna

Tutti gli algoritmi di crittografia di fantasia di cui ti ho parlato in precedenza sono principalmente utilizzati per due diversi tipi di crittografia:

  • Gli algoritmi a chiave simmetrica utilizzano chiavi di crittografia correlate o identiche sia per la crittografia che per la decrittografia.
  • Gli algoritmi a chiave asimmetrica utilizzano chiavi diverse per la crittografia e la decrittografia, che in genere vengono definite crittografia a chiave pubblica.

Crittografia a chiave simmetrica

Per spiegare questo concetto, userò la metafora del servizio postale descritta in Wikipedia per capire come funzionano gli algoritmi delle chiavi simmetriche.

Alice mette il suo messaggio segreto in una scatola e blocca la scatola usando un lucchetto. Invia quindi la scatola a Bob tramite posta ordinaria. Quando Bob riceve la scatola, usa una copia identica della chiave di Alice (che in qualche modo ha ottenuto in precedenza, magari da una riunione faccia a faccia) per aprire la scatola e leggere il messaggio. Bob può quindi utilizzare lo stesso lucchetto per inviare la sua risposta segreta.

 

Gli algoritmi a chiave simmetrica possono essere suddivisi in codici di flusso e crittografi a blocchi: i cifrari di flusso crittografano i bit del messaggio uno alla volta e i cifrari a blocchi prendono un numero di bit, spesso in blocchi di 64 bit alla volta, e li crittografano come una singola unità. Esistono molti algoritmi diversi tra cui scegliere: gli algoritmi simmetrici più popolari e rispettati includono TwofishSerpentAES, Rijndael, BlowfishCAST5RC4TDES e IDEA.

Crittografia asimmetrica

In un sistema di chiavi asimmetrico, Bob e Alice hanno lucchetti separati, invece del singolo lucchetto con più chiavi dell’esempio simmetrico.

Nota: questo è, naturalmente, un esempio molto semplificato di come funziona davvero, il che è molto più complicato.

Innanzitutto, Alice chiede a Bob di spedirle il lucchetto tramite posta ordinaria, mantenendo la chiave per sé. Quando Alice lo riceve, lo usa per bloccare una casella contenente il suo messaggio e invia la casella bloccata a Bob. Bob può quindi sbloccare la scatola con la sua chiave e leggere il messaggio di Alice. Per rispondere, Bob deve ugualmente ottenere il lucchetto di Alice per bloccare la scatola prima di inviarla nuovamente ad Alice.

Il vantaggio fondamentale in un sistema di chiavi asimmetrico è che Bob e Alice non hanno mai bisogno di inviare una copia delle loro chiavi l’una all’altra. Ciò impedisce a una terza parte (ad esempio, ad una spiona come Eve) di copiare una chiave mentre è in transito, consentendole di spiare tutti i futuri messaggi inviati tra Alice e Bob. Inoltre, se Bob fosse stato negligente e avesse permesso a qualcun altro di copiare la sua chiave, i messaggi di Alice a Bob sarebbero stati compromessi, ma i messaggi di Alice ad altre persone sarebbero rimasti segreti, dato che le altre persone avrebbero fornito lucchetti diversi da utilizzare per Alice.

La crittografia asimmetrica utilizza chiavi diverse per la crittografia e la decrittografia. Il destinatario del messaggio crea una chiave privata e una chiave pubblica. La chiave pubblica viene distribuita tra i mittenti dei messaggi e utilizza la chiave pubblica per crittografare il messaggio. Il destinatario utilizza la propria chiave privata per leggere tutti i messaggi crittografati che ha fornito in precedenza.

C’è un grande vantaggio nel fare la crittografia in questo modo rispetto alla crittografia simmetrica. Non abbiamo mai bisogno di inviare nulla di segreto (come la nostra chiave di crittografia o password) su un canale non sicuro. La tua chiave privata può rimanere comoda e accogliente sul tuo personal computer, dove l’hai generata: non deve mai essere inviata per posta elettronica da nessuna parte o essere letta dagli aggressori.

Come la crittografia protegge la comunicazione sul web

Per molti anni, il protocollo SSL (Secure Sockets Layer) ha protetto le transazioni Web utilizzando la crittografia tra il tuo browser web e un server web, proteggendoti da chiunque possa effettuare snooping sulla rete.

Lo stesso SSL è concettualmente piuttosto semplice. Inizia quando il browser richiede una pagina protetta (in genere https://)

Il server Web invia la sua chiave pubblica con il suo certificato.
Il browser controlla che il certificato sia stato emesso da una parte fidata (di solito una CA di radice affidabile), che il certificato sia ancora valido e che il certificato sia correlato al sito contattato.

Il browser utilizza quindi la chiave pubblica per crittografare una chiave di crittografia simmetrica casuale e la invia al server con l’URL crittografato richiesto e altri dati HTTP crittografati.

Il server Web decrittografa la chiave di crittografia simmetrica utilizzando la sua chiave privata e utilizza la chiave simmetrica del browser per decrittografarne l’URL e i dati http.

Il server Web restituisce il documento html richiesto e i dati http crittografati con la chiave simmetrica del browser. Il browser decodifica i dati http e il documento html utilizzando la chiave simmetrica e visualizza le informazioni.

E ora puoi acquistare in sicurezza l’oggetto su eBay di cui non hai davvero bisogno.

Hai imparato qualcosa?

Se sei arrivato così lontano, ti comunico che siamo alla fine del nostro lungo viaggio verso la comprensione della crittografia, siamo partiti dai primi tempi della crittografia con Greci e Romani, l’ascesa di Lucifero e infine a come SSL utilizza la crittografia asimmetrica e simmetrica per aiutarti a comprare quel coniglietto rosa per la tua fidanzata su eBay.

Autore del blog Digitalart. Programmatore con la passione per i computer, dolci e la cucina in generale. Ama cimentarsi in produzioni grafiche e scrivere articoli interessanti.

Potrebbe piacerti anche...