Anteprima parziale del testo
Scarica Algoritmo AES e valutazione e più Appunti in PDF di Sistemi di reti solo su Docsity!
Crittografia simmetrica (o a chiave privata) Le sottochiavi sono generate in questo modo: D la chiave a 128 bit è divisa in 8 blocchi di 16 che costituiscono le prime 8 sotto- chiavi; D le cifre della chiave a 128 sono spostate di 25 bit a sinistra in modo da generare ‘una nuova combinazione, il cui raggruppamento a 8 bit fornisce le prossime 8 sottochiavi; > il secondo passo è ripetuto finché le 52 sottochiavi sono generate. Durante gli 8 passi il second si scambiano di posto m 14 sottoblocchi ven durre un blocco di Attualmente non si conoscono tecniche in grado di forzare IDEA che, grazie alla chiave a 128 bit, è immune ad attacchi “brutali” ed è il cifrario a chiave segreta più utilizzato per quanto riguarda i software commerciali di crittografia vista la sua velocità di codifica e decodifica e la sua elevata sicurezza. HM AFS Nel 1997 il NIST (National Institute of Standards and Technology) USA organizzò un “concorso” per sostituire l’ormai insicuro DES e definire un nuovo standard crittografico, l’Advanced Eneryption Standard (AES). Si presentarono 15 candidati con proposte di nuovi algoritmi e soluzioni criptografiche: dopo lun- ghi test e rigorose analisi nel 2000 vinse l’algoritmo Rijndael, proposto da due crittologi belgi, che divenne ufficialmente il nuovo standard, grazie alle sua velocità di esecuzione e alle caratteristiche di robustezza alla crittanalisi. Metodi di valutazione di AES La valutazione degli algoritmi che parteciparono al concorso furono effettuati dal NIST secondo due diversi metri di giudizio. La prima valutazione si basò sulla verifica di requisiti fondamentali: » sicurezza: dato che in AES la chiave ha dimensioni minime di 128 bit, gli attacchi a “forza bruta” (brute force) con le tecnologie attuali e future non vennero neppure considerati; D costo: dato che la richiesta del NIST fu quella di un algoritmo da poter essere impiegato per un’ampia gamma di applicazioni, doveva avere un'elevata efficienza computazionale e doveva poter essere utilizzato nei collegamenti a banda larga; » caratteristiche dell'algoritmo e dell'implementazione: per questi requisiti si richiedevano vari aspetti progettuali dell’algoritmo, tra cui la leggibilità, la semplicità di codifica, la flessibilità e ver- satilità per poter essere implementato in differenti piattaforme hardware e software. Tra tutti i progetti cinque furono selezionati come finalisti e si analizzarono più dettagliatamente i seguenti aspetti: » sicurezza generale: furono resi pubblici gli algoritmi e vennero valutati dalla comunità crittografica; > implementazioni software: fu valutata la velocità di esecuzione in diverse piattaforme hardware e con diversi sistemi operativi, anche in funzione della variazione della dimensione della chiave; D ambienti con spazio limitato: tra gli obiettivi c'era quello di poter implementare ed eseguire l’algo- ritmo anche in situazioni di risorse limitate, come ad esempio con le Smart Card; D crittografia e decrittografia: analisi e comparazione delle risorse richieste tra la fase di crittografia e quella decrittografia nel caso in cui i due algoritmi siano separati e quindi richiedano maggiore spazio di memoria; D agilità della chiave: intesa come la capacità, la rapidità e il costo necessario per effettuare il cam- biamento della chiave; Lezione 4 43 Tecniche crittografiche per la protezione dei dati » versatilità e flessibilità: possibilità di utilizzare blocchi e chiavi di dimensioni diverse; D potenzialità di sfruttamento del parallelismo: capacità di sfruttare le architetture parallele e quin- di di poter avere esecuzione contemporanea a livello delle istruzioni per massimizzare l’efficienza del sistema. L’algoritmo Rijndael risultò vincitore e successivamente approvato dal Segretario del Dipartimento di Commercio americano: rispetta praticamente tutti i canoni richiesti dal NIST ed è resistente a tutti gli attacchi a un costo computazionale relativamente molto basso. L’algoritmo AES AES fu progettato dai due crittologi Joan Daemen e Vincent Rijmen sulla base di tre caratteristiche fondamentali: ) resistenza contro tutti gli attacchi; D velocità e compattezza del codice su un’ampia gamma di piattaforme; » semplicità progettuale. AES è un cifrario a blocchi (block cipher) con lunghezza del . . blocco da 128 bit, ma può avere chiavi indipendenti l'una In pasa dall’altra con lunghezza variabile di 128, 192 o 256 bit, ed giormei effettua una combinazione di permutazioni e sostituzioni. colla < State Il risultato intermedio delle operazioni fatte durante l'algoritmo prende il nome di state, rap- presentabile come un array di bytes. » fglffim La prima operazione eseguita dall’algoritmo è quella di prendere i 128 bit del blocco (16 caratteri) e di disporli in una griglia di 4 x 4 byte: si procede quindi con la codifica, che consiste fondamental- mente in un insieme di 10 fasi (rounds) ciascuna composta da 4 trasformazioni (nel caso di chiavi a 128 bit). Le quattro operazioni che costituiscono ogni round sono le seguenti: Substitute Bytes: ogni byte viene trasformato 800 | 80,1 |202| 203 boo | do1 | Poz [dos ” ytes: ogni byt ° i mediante una permutazione non lineare di byte a,0|811|212/818 bi0|b1,1|b12|bjg| che vengono mappati tramite una tabella parti- colare definita in AES stesso (tabella S-box in d9,0|22,1| 22 [828 ba0|b21|b22|b28| figura). 890831 de 83 30 |ba1}bs2 [bag s No la, a Shift Rows: le righe della matrice subiscono un change | 200 |%04 00 |%01 | 02 semplice scorrimento di bytes nell’array state, Shift1 |2810|811 2,0|81 a,3| dove la prima riga rimane invariata, dalla se- ani ù i 2 î conda alla quarta viene sempre eseguito uno Shit 2 | 00 | 221 20 8,2|823| scorrimento circolare a sinistra di uno, due e — = tre bytes rispettivamente. St® [a30|231 SIEZEO