Nell'edizione odierna di HTG Explains, ti forniremo una breve cronologia della crittografia, come funziona e alcuni esempi di diversi tipi di crittografia: assicurati di controllare anche l'edizione precedente, in cui abbiamo spiegato perché così tanti geek odiano Internet Esploratore.
Immagine di xkcd, ovviamente.
I primi giorni della crittografia
Questo metodo di crittografia potrebbe essere facilmente rotto, ovviamente, ma è uno dei primi esempi di crittografia effettivamente utilizzato nel mondo reale.
Giulio Cesare usò un metodo un po 'simile durante il suo tempo 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, usando la cifra di esempio qui sotto, scrivi "GEEK" come "JHHN".
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC
Poiché solo il destinatario previsto del messaggio conosceva il codice, sarebbe 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.
Altri cifrari di crittografia semplici come il quadrato di Polibio utilizzavano 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.
Enigma Machine
La storia della crittografia moderna
Ammettiamolo: le moderne tecniche di crittografia possono essere un argomento estremamente noioso, quindi, invece di limitarci a spiegarle con le parole, abbiamo creato un fumetto che parla della storia della crittografia, ispirato alla guida alle figure stilizzate di Jeff Moser per AES. Nota: chiaramente non possiamo trasmettere tutto ciò che riguarda la storia della crittografia in un fumetto.
Di ritorno in quei giorni, le persone non hanno un buon metodo di crittografia per proteggere le loro comunicazioni elettroniche.
Prestazioni dell'algoritmo 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 protetti 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 incorporata 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.
Per ulteriori informazioni sul benchmarking di diversi tipi di crittografia, consultare un rapporto della Washington University of St. Louis, dove hanno fatto un sacco di test su diverse routine, e hanno spiegato tutto in un resoconto molto geek.
Tipi di crittografia moderna
Tutti gli algoritmi di crittografia di fantasia di cui abbiamo parlato in precedenza sono principalmente utilizzati per due diversi tipi di crittografia:
- Algoritmi a chiave simmetrica utilizzare chiavi di crittografia correlate o identiche sia per la crittografia che per la decrittografia.
- Algoritmi chiave asimmetrici utilizzare chiavi diverse per la crittografia e la decrittografia, che di solito viene definita crittografia a chiave pubblica.
Crittografia chiave simmetrica
Per spiegare questo concetto, useremo 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 a cui ha una chiave. Quindi invia la cassetta 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.
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, che è molto più complicato, ma avrai un'idea generale.
Innanzitutto, Alice chiede a Bob di spedire il lucchetto aperto a lei tramite posta ordinaria, mantenendo la chiave per sé. Quando Alice lo riceve, lo usa per bloccare una scatola contenente il suo messaggio e invia la scatola chiusa a Bob. Bob può quindi sbloccare la scatola con la sua chiave e leggere il messaggio di Alice. Per rispondere, Bob deve in modo simile ottenere il lucchetto aperto di Alice per bloccare la scatola prima di inviarla a lei.
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, un impiegato postale corrotto) di copiare una chiave mentre è in transito, consentendo a detta terza parte di spiare tutti i futuri messaggi inviati tra Alice e Bob. Inoltre, se Bob fosse stato negligente e avesse permesso a qualcun altro di copiarlo il suo chiave, i messaggi di Alice a Bob sarebbero stati compromessi, ma i messaggi di Alice ad altre persone sarebbero rimasti segreti, dal momento 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 tutti i messaggi crittografati che sono stati crittografati utilizzando la chiave pubblica del destinatario.
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 pubblica si spegne nel mondo: non è un segreto e non è necessario. 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 il snooping sulla rete nel mezzo.
Lo stesso SSL è concettualmente piuttosto semplice. Inizia quando il browser richiede una pagina protetta (in genere https://)
Il browser controlla che il certificato sia stato emesso da una parte fidata (di solito una CA 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 inviarla 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 decrittografa i dati http e il documento html utilizzando la chiave simmetrica e visualizza le informazioni.
Hai imparato qualcosa?
Se sei arrivato così lontano, siamo alla fine del nostro lungo viaggio verso la comprensione della crittografia e un po 'di come funziona, a partire dai primi tempi della crittografia con Greci e Romani, l'ascesa di Lucifero e infine come SSL utilizza la crittografia asimmetrica e simmetrica per aiutarti a comprare quel coniglietto rosa fluffy su eBay.
Siamo grandi fan della crittografia qui su How-To Geek, e abbiamo coperto molti modi diversi di fare cose come:
- Guida introduttiva a TrueCrypt (per proteggere i dati)
- Aggiungi la crittografia automatica del sito web a Firefox
- BitLocker To Go crittografa le unità Flash portatili in Windows 7
- Come proteggere il tuo PC Linux crittografando il tuo disco rigido
- Aggiungi Encrypt / Decrypt Options a Windows 7 / Vista Menu clic destro
- Guida introduttiva a TrueCrypt Drive Encryption su Mac OS X
Ovviamente la crittografia è un argomento troppo complicato per spiegare davvero tutto. Ci siamo persi qualcosa di importante? Sentiti libero di mettere qualche conoscenza sui tuoi colleghi lettori nei commenti.