Quando si tratta di sicurezza informatica, AES è uno di quegli acronimi che vedi spuntare ovunque. Questo perché è diventato lo standard globale di crittografia e viene utilizzato per proteggere una quantità significativa delle nostre comunicazioni.
Lo standard di crittografia avanzata (AES) è una forma di crittografia rapida e sicura che tiene lontani gli occhi dai nostri dati. Lo vediamo nelle app di messaggistica come WhatsApp e Segnale, programmi come veracrypt e WinZip, in una gamma di hardware e una varietà di altre tecnologie che utilizziamo continuamente.
Perché è stato sviluppato AES?
I primi tipi di crittografia erano semplici, usando tecniche come cambiare ogni lettera in una frase con quella che la segue in alfabeto. Con questo tipo di codice, la frase precedente diventa:
Come puoi vedere, questo semplice codice lo rende completamente illeggibile. Nonostante la illeggibilità iniziale, se avessi il tempo e sapessi che era un codice e non solo un mucchio di personaggi sparsi sulla pagina, non sarebbe troppo difficile alla fine capire.
Man mano che le persone miglioravano nel decifrare i codici, la crittografia doveva diventare più sofisticata In modo che la i messaggi potrebbero essere tenuto segreto. Questa corsa agli armamenti con metodi sempre più sofisticati, mentre altri hanno spinto i loro sforzi per romperli ha portato a tecniche sempre più complicate, come la macchina Enigma inventata dai tedeschi nella prima guerra mondiale.
L’ascesa della comunicazione elettronica è stata anche un vantaggio per la crittografia. Negli anni ’70, il National Bureau of Standards (NBS) degli Stati Uniti ha iniziato a cercare un mezzo standard che potesse essere utilizzato per crittografare le informazioni sensibili del governo. Il risultato della loro ricerca è stato quello di adottare un algoritmo chiave simmetrico sviluppato presso IBM, che ora è chiamato Data Encryption Standard (DES). Il DES ha servito il suo scopo relativamente bene per i prossimi due decenni, ma negli anni novanta, alcune preoccupazioni per la sicurezza hanno iniziato a emergere.
Il DES ha solo un Chiave a 56 bit (rispetto al massimo di 256 bit in AES, ma ci arriveremo più avanti), così come la tecnologia e i metodi di cracking sono migliorati, gli attacchi contro di essa hanno iniziato a diventare più pratici. Il primo messaggio criptato DES che fu aperto fu nel 1997, dal Progetto DESCHALL in un Concorso sponsorizzato da RSA Security.
L’anno successivo, la Electronic Frontier Foundation (EFF) costruì un cracker DES che avrebbe potuto forzare una chiave in poco più di due giorni. Nel 1999, il EFF e il primo collettivo informatico di Internet, distributed.net, collaborato per ridurre il tempo a meno di 24 ore.
Sebbene questi attacchi fossero costosi e poco pratici da montare, iniziarono a dimostrare che il DES del regno come lo standard di crittografia di riferimento stava per finire. Con potenza di calcolo esponenzialmente in aumento secondo La legge di Moore, era solo questione di tempo fino a quando non si poteva più fare affidamento sul DES.
Il governo degli Stati Uniti ha intrapreso una missione quinquennale per valutare una varietà di diversi metodi di crittografia al fine di trovare un nuovo standard sicuro. Il National Institute of Standards and Technology (NIST) ha annunciato di aver finalmente effettuato la selezione alla fine del 2001.
La loro scelta era un sottoinsieme specifico del codice a blocchi di Rijndael, con una dimensione di blocco fissa di 128 bit e dimensioni di chiave di 128, 192 e 256 bit. È stato sviluppato da Joan Daemen e Vincent Rijmen, due crittografi belgi. Nel maggio del 2002, AES è stato approvato per diventare il Norma federale degli Stati Uniti e divenne rapidamente l’algoritmo di crittografia standard anche per il resto del mondo.
Relazionato: Una guida per principianti alla crittografia
Perché questa cifra è stata scelta per AES?
Con qualsiasi tipo di crittografia, ci sono sempre dei compromessi. Potresti facilmente avere uno standard che era esponenzialmente più sicuro di AES, ma ci vorrebbe troppo tempo per crittografare e decrittografare per essere di qualsiasi utilità pratica. Alla fine, il Il codice a blocchi di Rijndael è stato scelto dal NIST per le sue abilità a tutto tondo, tra cui le prestazioni su hardware e software, facilità di implementazione e livello di sicurezza.
Come funziona AES?
Tieni presente che il seguente esempio è una semplificazione, ma ti dà un’idea generale di come funziona AES. Sfortunatamente, non c’è abbastanza caffè al mondo per indurre la maggior parte delle persone a superare gli aspetti più complicati di AES. Normalmente, il processo viene eseguito in binario e ci sono molti più calcoli.
Innanzitutto, i dati sono divisi in blocchi.
Con questo metodo di crittografia, la prima cosa che succede è che il tuo testo in chiaro (che è l’informazione che vuoi crittografare) è diviso in blocchi. La dimensione del blocco di AES è di 128 bit, quindi separa i dati in una colonna quattro per quattro di sedici byte (ci sono otto bit in un byte e 16 x 8 = 128).
Se il tuo messaggio era “comprami delle patatine per favore”, il primo blocco è simile al seguente:
B | m | o | p |
u | e | m | o |
y | e | t | |
S | un’ |
Salteremo il resto del messaggio per questo esempio e ci concentreremo solo su ciò che accade al primo blocco in quanto è crittografato. Il “… per favore chip” normalmente dovrebbe essere aggiunto al blocco successivo.
Espansione chiave
L’espansione della chiave prevede l’utilizzo della chiave iniziale e il suo utilizzo per creare una serie di altre chiavi per ogni ciclo del processo di crittografia. Queste nuove chiavi rotonde a 128 bit sono derivate dal programma delle chiavi di Rijndael, che è essenzialmente un modo semplice e veloce per produrre nuovi codici chiave. Se la chiave iniziale era “le chiavi sono noiose1”:
K | io | ||
e | un’ | B | n |
y | r | o | g |
S | e | r | 1 |
Quindi ognuna delle nuove chiavi potrebbe assomigliare a questa dopo aver utilizzato la pianificazione delle chiavi di Rijndael:
14 | 29 | 1h | s5 |
h9 | 9f | st | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Sebbene appaiano come caratteri casuali (e l’esempio sopra è appena composto), ciascuna di queste chiavi deriva da un processo strutturato quando viene effettivamente applicata la crittografia AES. Torneremo a quello che questi tasti rotondi verranno utilizzati in seguito.
Aggiungi chiave rotonda
In questo passaggio, poiché è il primo round, la nostra chiave iniziale viene aggiunta al blocco del nostro messaggio:
B | m | o | p |
u | e | m | o |
y | e | t | |
S | un’ |
+
K | io | ||
e | un’ | B | n |
y | r | o | g |
S | e | r | 1 |
Questo viene fatto con un codice XOR, che è un algoritmo di crittografia additivo. Anche se sembra che non puoi effettivamente aggiungere queste cose insieme, tieni presente che in realtà è fatto in binario. I personaggi sono solo uno stand-in per cercare di rendere le cose più facili da capire. Diciamo che questa operazione matematica ci dà un risultato di:
h3 | jd | zu | 7s |
s8 | 7d | 26 | 2n |
dj | 4b | 9d | 9c |
74 | EL | 2h | hg |
Sostituisci byte
In questo passaggio, ogni byte viene sostituito secondo una tabella predeterminata. Questo è un po ‘come l’esempio dall’inizio dell’articolo, in cui la frase è stata codificata cambiando ogni lettera con quella che viene dopo in alfabeto (Ciao diventa ifmmp).
Questo sistema è un po ‘più complicato e non ha necessariamente alcuna logica. Invece, esiste una tabella stabilita che può essere cercata dall’algoritmo, che dice, ad esempio, che h3 diventa jb, s8 diventa 9f, dj diventa 62 e così via. Dopo questo passaggio, supponiamo che la tabella predeterminata ci dia:
jb | n3 | kf | n2 |
9f | jj | 1h | js |
74 | wh | 0d | 18 |
hs | 17 | d6 | px |
Sposta le righe
Spostare le righe è un nome semplice e questo passaggio è essenzialmente quello che ti aspetteresti. La seconda riga viene spostata di uno spazio a sinistra, la terza riga viene spostata di due spazi a sinistra e la quarta riga viene spostata di tre spazi a sinistra. Questo ci dà:
jb | n3 | kf | n2 |
jj | 1h | js | 9f |
0d | 18 | 74 | wh |
px | hs | 17 | d6 |
Mescolare le colonne
Questo passaggio è un po ‘complicato da spiegare. Per eliminare la maggior parte della matematica e semplificare le cose, diciamo solo che a ogni colonna è applicata un’equazione matematica per diffonderla ulteriormente. Supponiamo che l’operazione ci dia questo risultato:
ls | j4 | 2n | mamma |
83 | 28 | ke | 9f |
9W | xm | 3l | m4 |
5b | a9 | cj | ps |
Aggiungi tasto tondo (di nuovo)
Ricordi quelle chiavi rotonde che abbiamo fatto all’inizio, usando la nostra chiave iniziale e il programma delle chiavi di Rijndael? Bene, questo è dove iniziamo a usarli. Prendiamo il risultato delle nostre colonne miste e aggiungiamo la prima chiave rotonda che abbiamo derivato:
ls | j4 | 2n | mamma |
83 | 28 | ke | 9f |
9W | xm | 3l | m4 |
5b | a9 | cj | ps |
+
14 | 29 | 1h | s5 |
h9 | 9f | st | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Supponiamo che questa operazione ci dia il seguente risultato:
9d | 5b | 28 | sf |
ls | df | HF | 3b |
9t | 28 | CV | 8f |
62 | 7d | 15 | ah |
Molti altri round …
Se pensavi che fosse così, non saremmo nemmeno vicini. Dopo aver aggiunto l’ultima chiave rotonda, torna alla fase di sostituzione dei byte, in cui ciascun valore viene modificato in base a una tabella predeterminata. Fatto ciò, è di nuovo possibile spostare le righe e spostare ciascuna riga a sinistra di uno, due o tre spazi. Quindi passa di nuovo attraverso l’equazione delle colonne di missaggio. Successivamente, viene aggiunta un’altra chiave rotonda.
Non si ferma nemmeno qui. All’inizio, è stato detto che AES ha dimensioni di chiave di 128, 192 o 256 bit. Quando viene utilizzata una chiave a 128 bit, ci sono nove di questi round. Quando viene utilizzata una chiave a 192 bit, ci sono 11. Quando viene utilizzata una chiave a 256 bit, ce ne sono 13. Quindi i dati passano attraverso la sostituzione dei byte, spostano le righe, mescolano le colonne e le fasi della chiave rotonda fino a tredici volte ciascuna, essere alterato in ogni fase.
Dopo questi nove, 11 o 13 round, c’è un ulteriore round in cui i dati vengono elaborati solo dalla sostituzione dei byte, spostano le righe e aggiungono i passaggi chiave rotondi, ma non il passaggio delle colonne di missaggio. Il passaggio delle colonne di missaggio viene eliminato perché in questa fase consumerebbe solo la potenza di elaborazione senza alterare i dati, il che renderebbe il metodo di crittografia meno efficiente.
Per rendere le cose più chiare, l’intero processo di crittografia AES va:
Espansione chiave
Aggiungi chiave rotonda
Sostituzione byte
Sposta le righe
Mescolare le colonne
Aggiungi chiave rotonda
x 9, 11 o 13 volte, a seconda che la chiave sia 128, 192 o 256 bit
Sostituzione byte
Sposta le righe
Aggiungi chiave rotonda
Una volta che i dati hanno attraversato questo processo complesso, l’originale “Comprami delle patatine per favore” viene fuori qualcosa di simile “Ok23b8a0i3j 293uivnfqf98vs87a”. Sembra una stringa di caratteri completamente casuale, ma come puoi vedere da questi esempi, è in realtà il risultato di molte diverse operazioni matematiche che vengono applicate ancora e ancora.
Qual è il punto di ciascuno di questi passaggi?
Molte cose accadono quando i nostri dati sono crittografati ed è importante capire perché. Chiave l’espansione è fondamentale passo, perché ci dà le nostre chiavi per i round successivi. Altrimenti, la stessa chiave verrebbe aggiunta in ogni round, il che renderebbe AES più facile da decifrare. Nel primo turno, viene aggiunta la chiave iniziale per iniziare l’alterazione del testo normale.
Il passaggio di sostituzione byte, dove ciascuno dei punti dati viene modificato secondo una tabella predeterminata, svolge anche un ruolo essenziale. Altera i dati in modo non lineare, al fine di applicare confusione alle informazioni. La confusione è un processo che aiuta a nascondere la relazione tra i dati crittografati e il messaggio originale.
Anche lo spostamento delle righe è fondamentale, eseguendo ciò che è noto come diffusione. Nella crittografia, diffusione significa essenzialmente trasporre i dati per aggiungere complicazioni. Spostando le righe, i dati vengono spostati dalla posizione originale, contribuendo ulteriormente a oscurarli. Mescolare le colonne agisce in modo simile, alterando i dati in verticale anziché in orizzontale.
Alla fine di un round, viene aggiunta una nuova chiave round derivata dalla chiave iniziale. Ciò aggiunge maggiore confusione ai dati.
Perché ci sono così tanti round?
I processi di aggiunta di chiavi rotonde, sostituzione byte, righe mobili e colonne di miscelazione altera i dati, ma può ancora essere craccato dalla crittoanalisi, che è un modo di studiare l’algoritmo crittografico al fine di romperlo.
Attacchi scorciatoia sono uno dei minacce chiave. Si tratta di attacchi che possono decifrare la crittografia con meno sforzo della forza bruta. Durante la progettazione di AES, sono stati rilevati attacchi rapidi per un massimo di sei round del suo processo. Per questo motivo, sono stati aggiunti altri quattro round per il minimo di AES a 128 bit come margine di sicurezza. I 10 round risultanti offrono al metodo di crittografia spazio sufficiente per le gambe per prevenire attacchi di scorciatoia secondo le tecniche e la tecnologia di oggi.
Perché non aggiungiamo più round per rafforzare la sicurezza?
Con molte cose in sicurezza, ci deve essere un compromesso tra pura forza difensiva, usabilità e prestazioni. Se metti dieci porte d’acciaio con catenacci in ciascuno dei punti di ingresso a casa tua, sicuramente lo renderebbe più sicuro. Ci vorrebbe anche una quantità irragionevole di tempo per entrare e uscire, motivo per cui non vediamo mai nessuno farlo.
È lo stesso quando si tratta di crittografia. Potremmo renderlo più sicuro aggiungendo più round, ma sarebbe anche più lento e molto meno efficiente. I 10, 12 e 14 round di AES sono stati decisi perché forniscono un buon compromesso tra questi aspetti concorrenti, almeno nell’attuale panorama tecnologico.
Decrittazione di AES
Se sei riuscito a orientarti nel processo di crittografia spiegato sopra, la decrittografia è relativamente semplice. Per tornare dal testo cifrato al testo in chiaro del messaggio originale, tutto è fatto al contrario.
Se iniziamo con il nostro risultato crittografato di “Ok23b8a0i3j 293uivnfqf98vs87a” e applica l’inverso di ogni passaggio di crittografia, inizia con il tasto round inverso, quindi le righe di spostamento inverse e la sostituzione del byte inverso, prima di passare all’inverso dei round 9, 11 o 13. Sembra così:
“Ok23b8a0i3j 293uivnfqf98vs87a”
Inverso aggiungi chiave rotonda
Righe di spostamento inverse
Sostituzione byte inversa
Inverso aggiungi chiave rotonda
Colonne di mix inverse
Righe di spostamento inverse
Sostituzione byte inversa
x 9, 11 o 13 volte, a seconda che la chiave sia 128.192 o 256 bit
Inverso aggiungi chiave rotonda
Dopo questo processo di decodifica, finiamo di nuovo con il nostro messaggio originale: “Comprami delle patatine per favore”
128 vs 192 vs 256 bit AES
AES ha tre diverse lunghezze di chiave. La differenza principale è il numero di round che i dati attraversano nel processo di crittografia, rispettivamente 10, 12 e 14. In sostanza, 192 bit e 256-bit fornire un maggior margine di sicurezza di 128 bit.
Nell’attuale panorama tecnologico, AES a 128 bit è abbastanza per gli scopi più pratici. Dati altamente sensibili gestiti da persone con un livello di minaccia estremo, come ad esempio Documenti TOP SECRET controllato dai militari, probabilmente dovrebbe essere processato con entrambi 192 o AES a 256 bit.
Se sei paranoico, potresti preferire l’uso 192 o 256-bit crittografia ove possibile. Questo va bene se ti rende più facile dormire di notte, ma non è davvero necessario nella maggior parte delle situazioni. Non è nemmeno senza i suoi costi, con i quattro round extra di Crittografia a 256 bit rendendolo circa il 40 percento meno efficiente.
Problemi di sicurezza AES
I crittografi sono alla costante ricerca di AES alla ricerca di punti deboli, cercando di elaborare nuove tecniche e sfruttare la tecnologia che si presenta sulla loro strada. Questo è essenziale, perché se non fosse stato testato a fondo dagli accademici, i criminali o gli stati nazionali potrebbero alla fine trovare un modo per decifrarlo senza che il resto del mondo lo sappia. Finora, i ricercatori hanno scoperto solo interruzioni teoriche e attacchi ai canali laterali.
Attacco con chiave correlata
Nel 2009, sono stati scoperti una serie di attacchi correlati. Si tratta di un tipo di crittoanalisi che prevede l’osservazione di come funziona un codice con chiavi diverse. Gli attacchi chiave correlati che i ricercatori hanno scoperto non destano grande preoccupazione; sono possibili solo contro protocolli non implementati correttamente.
Attacco distintivo chiave nota
Sempre nel 2009, si è verificato un attacco distintivo chiave nota contro una versione a otto round di AES-128. Questi attacchi utilizzano una chiave già nota per capire la struttura intrinseca del codice. Poiché questo attacco era solo contro una versione a otto round, non è troppo preoccuparsi per gli utenti di tutti i giorni di AES-128.
Attacco del canale laterale
Ci sono stati molti altri attacchi teorici, ma con la tecnologia attuale ci vorrebbero ancora miliardi di anni per decifrarsi. Ciò significa che AES stesso è essenzialmente indistruttibile al momento. Nonostante ciò, AES può essere ancora vulnerabile se non è stato implementato correttamente, in quello che è noto come un attacco del canale laterale.
Attacchi del canale laterale si verifica quando un sistema perde informazioni. L’aggressore ascolta il suono, le informazioni sui tempi, le informazioni elettromagnetiche o il consumo di energia al fine di raccogliere inferenze dall’algoritmo che possono quindi essere utilizzate per romperlo.
Se AES viene implementato con attenzione, questi attacchi possono essere prevenuti rimuovendo l’origine della perdita di dati o assicurando che non vi sia alcuna relazione apparente tra i dati trapelati e i processi algoritmici.
L’ultima debolezza è più generale di quella specifica di AES, ma gli utenti devono essere consapevoli che AES non rende automaticamente sicuri i propri dati. Anche AES-256 è vulnerabile se un utente malintenzionato può accedere alla chiave di un utente. Questo è il motivo per cui AES è solo un aspetto della protezione dei dati. La gestione efficace delle password, i firewall, il rilevamento dei virus e l’educazione contro gli attacchi di ingegneria sociale sono altrettanto critici a modo loro.
AES è abbastanza?
Nell’era attuale, trasmettiamo tutti così tanti dei nostri dati sensibili online, AES è diventato una parte essenziale della nostra sicurezza. Anche se esiste dal 2001, il processo ripetitivo di aggiunta di chiavi, sostituzione di byte, spostamento di righe e miscelazione di colonne ha dimostrato di resistere alla prova del tempo.
Nonostante gli attuali attacchi teorici e qualsiasi potenziale attacco di canale laterale, AES stesso rimane sicuro. È uno standard eccellente per proteggere la nostra comunicazione elettronica e può essere applicato in molte situazioni in cui le informazioni sensibili devono essere protette. A giudicare dall’attuale livello di tecnologia e tecniche di attacco, dovresti sentirti sicuro di usarlo bene nel prossimo futuro.
Perché abbiamo bisogno della crittografia?
Ora che abbiamo esaminato i dettagli tecnici di AES, è importante discutere dell’importanza della crittografia. Al suo livello più elementare, la crittografia ci consente di codificare le informazioni in modo che solo coloro che hanno accesso alla chiave possano decrittografare i dati. Senza la chiave, sembra incomprensibile. Con la chiave, il miscuglio di personaggi apparentemente casuali si trasforma nel suo messaggio originale.
La crittografia è stata utilizzata da governi e militari per millenni per evitare che informazioni sensibili cadano nelle mani sbagliate. Nel corso degli anni si è insinuato sempre di più nella vita di tutti i giorni, soprattutto da quando una parte così grande dei nostri rapporti personali, sociali e lavorativi è ora migrata nel mondo online.
Basta pensare a tutto il dati che inserisci nei tuoi dispositivi: password, coordinate bancarie, il tuo messaggi privati e altro ancora. Senza alcun tipo di crittografia, queste informazioni sarebbero molto più facili da intercettare per chiunque, che si tratti di criminali, stalker pazzi o governo.
Così tanto le nostre informazioni sono preziose o sensibili, quindi è chiaro che deve essere protetto in modo tale che solo noi stessi e quelli che autorizziamo possano accedervi. Ecco perché abbiamo bisogno della crittografia. Senza di essa, il mondo online non potrebbe funzionare. Saremmo completamente spogliati di qualsiasi privacy e sicurezza, mandando le nostre vite online nel caos assoluto.
Guarda anche:
Strumento generatore di password
Risorse di crittografia: un grande elenco di strumenti e guide
Codici e cifre famosi nella storia
Statistiche sulla sicurezza informatica & fatti
“Hacking, cybercrime” di jaydeep_ concesso in licenza sotto CC0
AES è uno dei migliori algoritmi di crittografia disponibili oggi. È diventato lo standard globale per la crittografia e viene utilizzato per proteggere una vasta gamma di comunicazioni. AES è una forma di crittografia rapida e sicura che protegge i nostri dati da occhi indiscreti. È utilizzato in molte applicazioni di messaggistica come WhatsApp e Segnale, programmi come veracrypt e WinZip, e in una varietà di altre tecnologie che utilizziamo quotidianamente. AES è stato sviluppato per sostituire il Data Encryption Standard (DES) che aveva solo una chiave a 56 bit. AES utilizza chiavi a 128, 192 o 256 bit, rendendolo molto più sicuro del DES. AES funziona dividendo i dati in blocchi e applicando una serie di passaggi di crittografia. AES è abbastanza sicuro, ma ci sono alcune vulnerabilità come gli attacchi con chiave correlata e gli attacchi distintivi chiave nota. Tuttavia, AES è ancora uno dei migliori algoritmi di crittografia disponibili oggi e ci aiuta a proteggere le nostre comunicazioni e i nostri dati sensibili.