
La crittografia ha una lunga storia che risale a quando gli antichi Greci e Romani mandavano messaggi segreti sostituendo le lettere decifrabili solo con una chiave segreta. Unisciti a noi per una breve lezione di storia e scopri di più su come funziona la crittografia.
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, dove abbiamo spiegato perché così tanti geek odiano Internet Esploratore.
Immagine di xkcd, ovviamente.
I primi giorni della crittografia

Gli antichi greci usavano uno strumento chiamato Scytale per aiutare a crittografare i loro messaggi più rapidamente usando un codice di trasposizione: avvolgevano semplicemente la striscia di pergamena attorno al cilindro, scrivevano il messaggio e poi quando srotolati non avevano senso.
Questo metodo di crittografia potrebbe essere facilmente interrotto, ovviamente, ma è uno dei primi esempi di crittografia attualmente in uso nel mondo reale.
Giulio Cesare usò un metodo un po 'simile durante il suo tempo spostando ogni lettera dell'alfabeto a destra oa sinistra di una serie di posizioni, una tecnica di crittografia nota come cifra di Cesare. Ad esempio, usando la cifra di esempio in basso, 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 sembrerebbe incomprensibile, ma la persona che aveva il codice poteva facilmente decodificarlo e leggerlo.
Altri semplici codici di crittografia come il quadrato di Polibio utilizzavano un codice polialfabetico che elencava ogni lettera con le corrispondenti posizioni numeriche nella parte superiore e laterale per dire dove si trovava la lettera.

Usando una tabella come quella sopra, scriverebbe la lettera “G” come “23” o “GEEK” come “23 31 31 43”.
Enigma Machine

Durante la seconda guerra mondiale, i tedeschi usarono la macchina Enigma per passare avanti e indietro trasmissioni crittografate, che impiegarono anni prima che i polacchi fossero in grado di decifrare i messaggi e dare la soluzione alle forze alleate, che fu determinante per la loro vittoria.
La storia della crittografia moderna
Ammettiamolo: le moderne tecniche di crittografia possono essere un argomento estremamente noioso, quindi invece di spiegarle solo a parole, abbiamo messo insieme un fumetto che parla della storia della crittografia, ispirato alla figura stilizzata di Jeff Moser su AES. Nota: chiaramente non possiamo trasmettere tutto sulla storia della crittografia in un fumetto.
A quei tempi, le persone non avevano un buon metodo di crittografia per proteggere le loro comunicazioni elettroniche.

Lucifero era il nome dato a molti dei primi blocchi di codice civile, sviluppato da Horst Feistel e dai suoi colleghi di IBM.

Il Data Encryption Standard (DES) è un codice a blocchi (una forma di crittografia segreta condivisa) che è stato selezionato dal National Bureau of Standards come standard ufficiale di elaborazione delle informazioni federali (FIPS) per gli Stati Uniti nel 1976 e che ha successivamente goduto di ampia diffusione usare a livello internazionale.

Le preoccupazioni per la sicurezza e il funzionamento relativamente lento del DES nei software hanno motivato i ricercatori a proporre una varietà di progetti alternativi di cifratura a blocchi, che hanno iniziato ad apparire alla fine degli anni '80 e all'inizio degli anni '90: esempi includono RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 e FEAL




L'algoritmo di crittografia Rijndael è stato adottato dal governo degli Stati Uniti come crittografia a chiave simmetrica standard o Advanced Encryption Standard (AES). 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 di 5 anni in cui sono stati presentati e valutati quindici progetti concorrenti prima che Rijndael fosse selezionato come il più algoritmo di crittografia adatto.
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 i diversi tipi di crittografia, puoi utilizzare l'utilità di benchmarking integrata nella procedura guidata per la creazione di volumi di TrueCrypt: come puoi vedere, AES è di gran lunga il tipo più veloce di crittografia avanzata.

Esistono metodi di crittografia più lenti e più veloci e sono tutti adatti a scopi diversi. Se stai semplicemente cercando di decrittografare un piccolo pezzo di dati ogni tanto, puoi permetterti di utilizzare la crittografia più potente possibile o addirittura crittografarla due volte con diversi tipi di crittografia. Se hai bisogno di velocità, probabilmente vorrai andare con AES.
Per ulteriori informazioni sull'analisi comparativa di diversi tipi di crittografia, consulta un rapporto della Washington University di St. Louis, in cui hanno svolto una serie di test su diverse routine e hanno spiegato tutto in una scrittura molto geniale.
Tipi di crittografia moderna
Tutti gli algoritmi di crittografia di cui abbiamo parlato in precedenza sono principalmente utilizzati per due diversi tipi di crittografia:
- Algoritmi 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: in genere si parla di crittografia a chiave pubblica.
Crittografia della chiave simmetrica
Per spiegare questo concetto, useremo la metafora del servizio postale descritta in Wikipedia per capire come funzionano gli algoritmi chiave simmetrici.
Alice mette il suo messaggio segreto in una scatola e la chiude a chiave usando un lucchetto a cui ha una chiave. Quindi invia 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 cifre di flusso e cifre di blocco: le cifre di flusso crittografano i bit del messaggio uno alla volta e i blocchi di codice prendono un numero di bit, spesso in blocchi di 64 bit alla volta, e li crittografano come una singola unità. Puoi scegliere tra molti algoritmi diversi: gli algoritmi simmetrici più popolari e rispettati includono Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, RC4, TDES e IDEA.
Crittografia asimmetrica
In un sistema di chiavi asimmetriche, Bob e Alice hanno lucchetti separati, invece del singolo lucchetto con più chiavi dell'esempio simmetrico. Nota: questo è, ovviamente, un esempio notevolmente semplificato di come funziona davvero, il che è molto più complicato, ma otterrai l'idea generale.
Innanzitutto, Alice chiede a Bob di inviarle il suo lucchetto aperto 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 bloccata a Bob. Bob può quindi sbloccare la scatola con la sua chiave e leggere il messaggio di Alice. Per rispondere, Bob deve similmente ottenere il lucchetto aperto di Alice per bloccare la scatola prima di rispedirle.

Il vantaggio fondamentale in un sistema di chiavi asimmetrico è che Bob e Alice non devono mai scambiarsi una copia delle loro chiavi. Ciò impedisce a una terza parte (forse, nell'esempio, un impiegato postale corrotto) di copiare una chiave mentre è in transito, consentendo a tale terza parte di spiare tutti i messaggi futuri inviati tra Alice e Bob. Inoltre, se Bob fosse negligente e permettesse 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, poiché le altre persone avrebbero fornito lucchetti diversi che Alice avrebbe potuto usare.
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 è distribuita tra i mittenti dei messaggi e usano la chiave pubblica per crittografare il messaggio. Il destinatario utilizza la propria chiave privata per 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 esce nel mondo, non è segreta 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 e-mail da nessuna parte o letto dagli aggressori.
In che modo 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 browser Web e un server Web, proteggendoti da chiunque potrebbe essere ficcanaso nella rete nel mezzo.
Lo stesso SSL è concettualmente abbastanza semplice. Inizia quando il browser richiede una pagina sicura (di solito https: //)
Il web server invia la sua chiave pubblica con il suo certificato.
Il browser verifica che il certificato sia stato emesso da una parte attendibile (in genere una CA radice attendibile), 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 web server decodifica la chiave di crittografia simmetrica utilizzando la sua chiave privata e utilizza la chiave simmetrica del browser per decrittografare i suoi dati URL e 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 modo sicuro quell'oggetto eBay che non ti serviva davvero.
Hai imparato qualcosa?
Se sei arrivato così lontano, siamo alla fine del nostro lungo viaggio per comprendere la crittografia e un po 'di come funziona: a partire dai primi giorni 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 soffice coniglio rosa su eBay.
Siamo grandi fan della crittografia qui su How-To Geek e abbiamo trattato molti modi diversi di fare cose come:
- Introduzione a TrueCrypt (per proteggere i dati)
- Aggiungi la crittografia automatica dei siti 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 le opzioni di crittografia / decrittografia al menu di scelta rapida di Windows 7 / Vista
- Introduzione a TrueCrypt Drive Encryption su Mac OS X
Naturalmente la crittografia è un argomento troppo complicato per spiegare davvero tutto. Ci siamo persi qualcosa di importante? Sentiti libero di mettere un po 'di conoscenza sui tuoi colleghi lettori nei commenti.
