La crittografia ha una lunga storia che risale a quando gli antichi greci e romani inviavano messaggi segreti sostituendo 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 Explorer .
Immagine di xkcd , ovviamente.
I primi giorni della crittografia
Gli antichi greci usavano uno strumento chiamato a
Scytale
per crittografare i loro messaggi più rapidamente utilizzando un file
cifrario di trasposizione
- Avrebbero semplicemente avvolto la striscia di pergamena attorno al cilindro, avrebbero scritto il messaggio e poi una volta srotolato non avrebbe avuto senso.
Questo metodo di crittografia potrebbe essere rotto abbastanza facilmente, ovviamente, ma è uno dei primi esempi di crittografia effettivamente utilizzato nel mondo reale.
Giulio Cesare usò un metodo in qualche modo simile durante il suo tempo spostando ogni lettera dell'alfabeto a destra oa sinistra di un numero di posizioni, una tecnica di crittografia nota come La cifra di Cesare . Ad esempio, utilizzando il codice di esempio di seguito, scrivere "GEEK" come "JHHN".
Normale: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cifrario: DEFGHIJKLMNOPQRSTUVWXYZABC
Poiché solo il destinatario previsto del messaggio conosceva il codice, sarebbe stato difficile per la persona successiva decodificare il messaggio, il che sarebbe apparso come incomprensibile, ma la persona che aveva il codice poteva facilmente decodificarlo e leggerlo.
Altri semplici cifrari di crittografia come il Polybius Square usato a cifrario polialfabetico che elencava ogni lettera con le posizioni numeriche corrispondenti nella parte superiore e laterale per indicare dove fosse la posizione della lettera.
Utilizzando una tabella come quella sopra, scrivere la lettera "G" come "23" o "GEEK" come "23 31 31 43".
Enigma Machine
Durante la seconda guerra mondiale, i tedeschi ha utilizzato la macchina Enigma per passare avanti e indietro trasmissioni crittografate, cosa che impiegò anni prima che i polacchi fossero in grado di decifrare i messaggi e dare la soluzione alle forze alleate, il 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 semplicemente con le parole, abbiamo messo insieme un fumetto che parla della storia della crittografia, ispirato da Jeff Moser figura stilizzata guida per AES . Nota: chiaramente non possiamo trasmettere tutto ciò che riguarda la storia della crittografia in un fumetto.
A quei tempi, le persone non disponevano di un buon metodo di crittografia per proteggere le loro comunicazioni elettroniche.
Lucifero era il nome dato a molti dei primi civili cifrari a blocchi , sviluppato da Horst Feistel e i 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 funzionario Standard federale di elaborazione delle informazioni (FIPS) per gli Stati Uniti nel 1976 e che ha successivamente goduto di un uso diffuso a livello internazionale.
Le preoccupazioni per la sicurezza e il funzionamento relativamente lento del DES nel software hanno motivato i ricercatori a proporre una varietà di progetti di cifratura a blocchi alternativi, che hanno iniziato ad apparire alla fine degli anni '80 e all'inizio degli anni '90: gli esempi includono RC5 , Blowfish , IDEA , NuovoDES , PIÙ SICURO , 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.
Algoritmo di crittografia Prestazioni
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, puoi utilizzare l'utilità di benchmarking incorporata nella procedura guidata di creazione del volume di TrueCrypt: come puoi vedere, AES è di gran lunga il tipo più veloce di crittografia avanzata.
Esistono metodi di crittografia sia più lenti che più veloci e sono tutti adatti per scopi diversi. Se stai semplicemente tentando di decrittografare un piccolo pezzo di dati ogni tanto, puoi permetterti di utilizzare la crittografia più potente possibile o addirittura crittografarlo due volte con diversi tipi di crittografia. Se hai bisogno di velocità, probabilmente vorrai andare con AES.
Per ulteriori informazioni sul benchmarking di diversi tipi di crittografia, controlla un rapporto da Washington University of St. Louis , dove hanno fatto un sacco di test su routine diverse e hanno spiegato tutto in un articolo molto geniale.
Tipi di crittografia moderna
Tutti i fantasiosi algoritmi di crittografia di cui abbiamo parlato in precedenza vengono utilizzati principalmente 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 di chiave asimmetrica utilizzare chiavi diverse per la crittografia e la decrittografia: questa operazione viene solitamente definita crittografia a chiave pubblica.
Crittografia a chiave simmetrica
Per spiegare questo concetto, useremo la metafora del servizio postale descritta in Wikipedia per capire come funzionano gli algoritmi a chiave simmetrica.
Alice mette il suo messaggio segreto in una scatola e chiude la scatola usando un lucchetto di 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, forse da un incontro 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 cifrari a flusso e cifrari a blocchi: i cifrari a flusso crittografano i bit del messaggio uno alla volta e i cifrari a blocchi accettano un numero di bit, spesso in blocchi di 64 bit alla volta, e li crittografano come una singola unità. Ci sono molti algoritmi diversi tra cui scegliere, inclusi gli algoritmi simmetrici più popolari e rispettati Due pesci , Serpente , 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 molto semplificato di come funziona davvero, il che è molto più complicato, ma avrai un'idea generale.
Per prima cosa, Alice chiede a Bob di inviarle il suo lucchetto aperto tramite posta ordinaria, tenendo 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 aprire la scatola con la sua chiave e leggere il messaggio di Alice. Per rispondere, Bob deve allo stesso modo ottenere il lucchetto aperto di Alice per chiudere a chiave la scatola prima di rispedirgliela.
Il vantaggio fondamentale in un sistema di chiavi asimmetriche è che Bob e Alice non devono mai inviare reciprocamente una copia delle loro chiavi. Ciò impedisce a una terza parte (forse, nell'esempio, un impiegato delle poste corrotto) di copiare una chiave mentre è in transito, consentendo a detta terza parte di spiare tutti i messaggi futuri inviati tra Alice e Bob. Inoltre, se Bob fosse distratto e permettesse a qualcun altro di copiare 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 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 del messaggio che utilizzano 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 viene resa disponibile al mondo, non è segreta e non è necessario che lo sia. La tua chiave privata può rimanere comodamente sul tuo personal computer, dove l'hai generata: non deve mai essere inviata tramite posta elettronica da nessuna parte o letta dagli aggressori.
In che modo la crittografia protegge la comunicazione sul Web
Per molti anni, SSL ( Secure Sockets Layer ) ha protetto le transazioni Web utilizzando la crittografia tra il browser Web e un server Web, proteggendoti da chiunque possa ficcare il naso sulla rete nel mezzo.
SSL stesso è concettualmente abbastanza semplice. Inizia quando il browser richiede una pagina sicura (solitamente https: //)
Il server web invia la sua chiave pubblica con il suo certificato.
Il browser verifica che il certificato sia stato emesso da una parte attendibile (solitamente 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, nonché 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 decrittografare il suo 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.
E ora puoi farlo in sicurezza compra quell'oggetto eBay davvero non ne avevi bisogno.
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 giorni della crittografia con i Greci e i Romani, l'ascesa di Lucifero e infine come SSL utilizza la crittografia asimmetrica e simmetrica per aiutarti a comprare quel soffice coniglietto rosa su eBay.
Siamo grandi fan della crittografia qui a How-To Geek e abbiamo coperto molti modi diversi per 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 le opzioni di crittografia / decrittografia al menu di scelta rapida di Windows 7 / Vista
- 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 un po 'di conoscenza sui tuoi compagni lettori nei commenti.