La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Crittografia moderna: i principali algoritmi. Nel 1883 Kerckhoffs pubblica La Cryptographie Militaire ove enuncia il principio di separazione tra chiave.

Presentazioni simili


Presentazione sul tema: "Crittografia moderna: i principali algoritmi. Nel 1883 Kerckhoffs pubblica La Cryptographie Militaire ove enuncia il principio di separazione tra chiave."— Transcript della presentazione:

1 Crittografia moderna: i principali algoritmi

2 Nel 1883 Kerckhoffs pubblica La Cryptographie Militaire ove enuncia il principio di separazione tra chiave ed algoritmo (Principio di Kerkchoffs): Storia della crittografia “La sicurezza di un sistema crittografico è basata esclusivamente sulla conoscenza della chiave; in pratica si presuppone noto a priori l’algoritmo di cifratura e decifratura”.

3 Shannon nel 1948 pubblicò “A Mathematical Theory of Communication”, un articolo destinato a fare epoca. Storia della crittografia L’idea geniale di Shannon fu che il contenuto di un’informazione non ha nulla a che vedere col contenuto del messaggio, ma col numero di 0 e 1 necessari per trasmetterlo. Per anni la regola generale era stata di creare algoritmi semplici e di impiegare chiavi molto lunghe per rendere indecifrabile il messaggio. Ma la potenza di calcolo raggiunta minava questa concezione di crittografia: essa stava volgendo rapidamente verso nuove “regole guida” che avrebbero portato alla crittografia moderna.

4 Crittografia moderna Partiamo dal considerare le proprietà che dovrebbe possedere una chiave segreta per poter essere realisticamente utilizzata: Dunque l’onere del garantire la sicurezza passa all’algoritmo che deve essere complicato in quanto deve cercare di generare testi casuali utilizzando un algoritmo deterministico e partendo dal testo in chiaro e da una chiave segreta. îla chiave deve essere il più breve possibile, îla chiave deve poter essere riutilizzata più volte, îla chiave non può essere perfettamente casuale.

5 Crittografia moderna Uno dei concetti su cui si basa la crittografia moderna è quello di One-way-trapdoor function. Cioè una funzione matematica f, utilizzata per cifrare i dati,con le seguenti 3 proprietà: îf è facile da calcolare; îf è praticamente impossibile (matematicamente parlando) da invertire, ovvero calcolare nella direzione inversa; îf è facile da invertire se si conosce una informazione ulteriore, una chiave segreta (trapdoor).

6 DES: storia Nel 1972 negli Stati Uniti il National Bureau of Standard (NBS) - una parte dell US Department of Commerce - iniziò un programma per la stesura di uno standard per la protezione dei dati. L’Institute for Computer Science and Tecnology (ICST), una delle maggiori unità operative dell’NBS, produsse delle linee guida e degli standard. Fu scelto uno standard che richiedeva specificazioni complete di funzioni di base e suoi formati, mantenendo comunque l’indipendenza dall’implementazione fisica. Fu così definito l’ambiente in cui verrà sviluppato il sistema che poi diventerà il DES (Data Encryption Standard).

7 DES: storia La pubblicazione del 15 Maggio 1973 suggeriva dei requisiti che lo standard doveva possedere: îun alto grado di sicurezza; îspecifica completa e semplicità di comprensione; îsegretezza basata sulla chiave e non sull’algoritmo; îdisponibilità per tutti gli utenti; îadattabilità per diverse applicazioni; îimplementabilità economica su dispositivi differenti; îefficienza; îpossibilità di essere certificato; îesportabilità.

8 DES: storia L’IBM sottomise il suo algoritmo all’NBS il 27 Agosto L’NBS chiese che fosse la National Security Agency (NSA) a testare l’algoritmo riguardo ad un insieme informale di requisiti. Contemporaneamente richiese che l’IBM accordasse diritti non esclusivi e senza copyright per costruire e vendere apparecchiature che implementassero l’algoritmo. Nel 1975, nonostante le pressioni, l’NBS continuò a valutare l’algoritmo, le richieste di sicurezza nel settore pubblico e privato e le alternative allo standard. Nell’ottobre dello stesso anno Hellman presentò le sue critiche asserendo che, a dispetto delle 2 56 chiavi necessarie per un attacco a forza bruta dell’ algoritmo, la metà di esse avrebbe permesso in media la violazione di DES.

9 DES: storia Per questo motivo l’NBS organizzò due workshop allo scopo di analizzare eventuali tranelli e punti oscuri dell’algoritmo, e per valutare la possibilità di incrementare la lunghezza della chiave. Ai workshop vennero invitati implementatori, progettisti, acquirenti e matematici affinché si potesse dar vita ad uno standard che soddisfacesse tutte le richieste da parte degli addetti ai lavori. Il risultato fu la approvazione di DES come standard il cui algoritmo non presentava alcun tipo di tranello. L’NBS evidenziò, tuttavia, la necessità di rivedere il DES periodicamente. L’NBS continuò a valutare l’algoritmo DES che venne pubblicato definitivamente il 15 gennaio 1977.

10 DES: storia Successivamente l’RSA Data Security (fondata nel 1982 da Rivest, Shamir e Adleman, gli autori dell’RSA), indisse delle vere e proprie gare, dette challenges, per rompere il DES. Tale società offriva dollari a chi per primo rompeva la sua challenge a patto che venisse rotta entro il 25% del miglior tempo precedente. înel Luglio del 1997 furono impiegati 39 giorni e fu testato il 24% di tutte le possibili chiavi; înel Luglio del 1998 una società Americana, l’EFF, spendendo dollari riuscì a costruire una macchina per rompere il DES impiegando solo 56 ore; înel Gennaio 1999 sono stati impiegati 22 ore e 15 minuti testando 245 miliardi di chiavi per secondo.

11 DES: funzionamento SCHEDULAZIONE CHIAVI TESTO IN CHIARO CHIAVE TESTO CIFRATO ITERAZIONE 1 ITERAZIONE 16 SCAMBIO DX SX IP …… 56 bit 64 bit 48 bit

12 DES: IP X 0 =IP(x)=L 0 R 0. Sia x una stringa binaria di testo in chiaro lunga 64 bit. L’algoritmo costruisce una stringa binaria x 0 di 64 bit tramite la permutazione iniziale fissata IP: Dove L 0 e R 0 sono due stringhe binarie che comprendono rispettivamente i primi e gli ultimi 32 bit della stringa x 0.

13 DES: i-esima iterazione

14 DES: funzione f

15 DES: E e P

16 DES: S-box Dato B i (l’input a 6 bit dell’S-box S i ), il primo e l’ultimo bit di B i vengono interpretati come indice di riga, mentre i bit centrali come indice di colonna. Si consulta la tabella S i alle coordinate prescritte e il valore in uscita dall’S-box è l’equivalente binario del decimale trovato.

17 DES: S-box

18 DES: schedulazione delle chiavi

19 LS 1 è uno shift ciclico a sinistra di una o due posizioni a seconda del valore di i (lo shift riguarda una sola posizione alle iterazioni 1, 2, 9 e 16 e due posizioni a tutte le altre iterazioni).

20 DES: weak key Una weak key DES è una chiave k tale che E k (E k (x))=x per tutti gli x, il che equivale a dire che è un’involuzione.

21 DES: semi-weak key Una coppia di semi-weak key DES è una coppia (h,k) tale che E h (E k (x))=x per ogni x.

22 Cifratura a blocchi ECB. I dati vengono suddivisi in blocchi di 64 bits ed ogni blocco viene cifrato singolarmente indipendentemente dal precedente. CBC. In questa modalità, ogni blocco di testo, dopo essere stato cifrato in modalità ECB, viene sottoposto ad un ulteriore operazione di xor con il successivo blocco ancora da cifrare. CFB/OFB. Questa modalità permette di cifrare blocchi in chiaro inferiori a 64 bits. Il testo in chiaro viene sottoposto ad un’operazione di xor con i dati uscenti dall’algoritmo, generati utilizzando inizialmente un blocco casuale di 64 bits, chiamato Shift Register. CTR. A ciascun blocco del testo in chiaro viene applicato uno xor con un contatore crittografico.

23 TDES E’ altamente improbabile che, per una coppia di chiavi (k, h) esista una chiave t tale che, per ogni testo in chiaro x Lo svantaggio è che risulta meno efficiente del DES singolo di un fattore 3. Coppersmith ha osservato però che un attacco di forza bruta per la ricerca della chiave è dell’ordine di = 5× Da questo risultato nasce l’algoritmo Triplo DES:

24 AES Il 2 gennaio 1997 il National Institute of Standards and Technology (ex NBS) propose un bando per la realizzazione del nuovo algoritmo di cifratura a blocchi: l’Advanced Encryption Standard (AES). I requisisti del nuovo standard erano molto restrittivi. Doveva essere un algoritmo a blocchi, doveva gestire chiavi di 128, 192 e 256 bit. Doveva essere sicuro, veloce sia in hardware che in software e funzionare anche con apparecchiature come le smartcard. Quindici diversi algoritmi vennero presentati da partecipanti provenienti da sette nazioni. Il 2 ottobre 2000, il NIST ha annunciato che Rijndael era stato selezionato per diventare la base dell’AES.

25 AES AES opera utilizzando matrici di 4×4 byte chiamate Stati (States). ogni round (fase) dell’AES (eccetto l’ultimo) consiste nei seguenti quattro passaggi: SubBytes: sostituzione non lineare di tutti i byte che vengono rimpiazzati secondo una specifica tabella. ShiftRows: spostamento dei byte di un certo numero di posizioni dipendente dalla riga di appartenenza. MixColumns: combinazione dei byte con un operazione lineare, i byte vengono trattati una colonna per volta. AddRoundKey: ogni byte della tabella viene combinato con la chiave di sessione, la chiave di sessione viene calcolata dal gestore delle chiavi. Tranne l’ultimo round in cui si salta il MixColumns.

26 IDEA IDEA (International Data Encryption Algorithm) è nato nel 1991sotto il nome di IPES (Improved Proposed Encryption Standard), ed è stato progettato da due famosi ricercatori in Svizzera: Xuejja Lai e James L. Massey. Come il DES è un codice cifrato a blocchi di 64 bit, la differenza sta nel fatto che questa volta la chiave è di 128 bit. La cifratura con IDEA comporta una divisione del blocco di 64 bit del testo normale in 4 sottoblocchi di 16 bit. Ogni sottoblocco subisce 8 passi in cui sono coinvolte 52 sottochiavi diverse a 16 bit ottenute dalla chiave a 128 bit. Le sottochiavi sono generate in questo modo.

27 IDEA 1.La chiave a 128 bit è divisa in 8 blocchi di 16 che costituiscono le prime 8 sottochiavi. 2.Le cifre della chiave a 128 sono spostate di 25 bit a sinistra in modo da generare una nuova combinazione, il cui raggruppamento ad 8 bit fornisce le prossime 8 sottochiavi. 3.Il secondo passo è ripetuto finché non sono generate tutte le 52 sottochiavi. IDEA è al momento 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.

28 Scambio chiavi Sebbene sono ormai disponibili diversi sistemi di cifratura sufficientemente sicuri, permane un altro problema: la distribuzione delle chiavi. Prima di poter comunicare, infatti, è necessario stabilire una chiave comune con cui i messaggi verranno cifrati e decifrati, ma la distribuzione della chiave spesso presenta notevoli problemi. Per concordare una chiave con il proprio interlocutore c’è bisogno di mettersi preventivamente in contatto con lui. Se lo scambio della chiave avviene tramite un canale non sicuro, anche i messaggi che verranno cifrati con essa sono soggetti a intercettazione e decifrazione.

29 Due lucchetti Alice mette il messaggio in una valigetta e la chiude con un lucchetto, la chiave del lucchetto resta in mano ad Alice. Bob riceve la valigetta, che ovviamente nessuno ha potuto aprire poiché chiusa con il lucchetto di Alice, nemmeno Bob può aprire la valigetta, ma può aggiungere pure lui un lucchetto e tenere la chiave con sé Quindi Bob rispedisce indietro la valigetta, che ora ha due lucchetti, ad Alice la quale non può rimuovere il lucchetto di Bob ma può togliere quello che lei ha inizialmente messo. La valigetta, che ora ha solo un lucchetto, viene rispedita a Bob che può agevolmente togliere il lucchetto (il suo) e leggere il messaggio contenuto nella valigetta

30 Diffie-Hellman Il metodo di Diffie-Hellman si basa sulla presunta difficoltà del logaritmo discreto ed opera in questo modo. Alice e Bob scelgono di comune accordo due numeri: un numero primo grande p e un'altro numero d (che deve rispettare alcune restrizioni, tra le quali d < p). Alice sceglie un numero intero a minore di p e trasmette a Bob il valore d a (mod p). Bob sceglie un numero intero b minore di p e trasmette ad Alice il valore d b (mod p). Alice calcola d ab (mod p) = (d b (mod p)) a (mod p). Bob calcola d ab (mod p) = (d a (mod p)) b (mod p).

31 Diffie-Hellman La chiave che entrambi devono usare è d ab, in quanto è uguale per entrambi e solo loro hanno questo risultato. Una terza persona potrebbe aver intercettato le comunicazioni di Alice e Bob, e quindi avere a disposizione d a (mod p) e d b (mod p) ma con questi valori non è in grado di calcolare in modo rapido d ab (mod p). Poiché la generazione della chiave è affidata sia ad Alice sia a Bob entrambi devono essere disponibili ogni volta che viene creata una chiave: ciò non sempre è possibile o conveniente. Fu così che Diffie non si accontentò ma continuò la ricerca di un metodo meno macchinoso di quello già trovato.

32 Massey–Omura Tutti gli utenti di questo crittosistema scelgono di comune accordo un numero primo grande p, che viene reso pubblico. Ciascun utente poi sceglie due interi d ed e con la proprietà che de = 1 (mod (p-1)). L’utente A sceglierà dunque d a ed e a e B sceglierà d b ed e b. Se A vuole spedire a B il messaggio M îA calcola M 1 =M da (mod p) e lo spedisce a B (A mette il suo lucchetto), îB calcola M 2 =M 1 db (mod p) e lo spedisce ad A (B mette il suo lucchetto), îA calcola M 3 =M 2 ea (mod p) e lo spedisce a B (A toglie il suo lucchetto) îB calcola M 3 =M 2 eb (mod p) e questo coincide con M.

33 RSA Vediamo schematicamente come un utente A può mandare un messaggio segreto a B usando il metodo RSA., due primi titanici p, q, calcola N = pq e due naturali d ed e, l’uno inverso dell’altro modulo Innanzitutto B sceglie in modo casuale: Cioè tali che Poi rende noti N ed e: questo forma la sua chiave pubblica. Tiene invece gelosamente segreto d: la sua chiave privata.

34 RSA L’utente A per mandare un messaggio a B compie allora le seguenti operazioni: 1.eleva ogni unità del messaggio, a, ad e modulo N 2.invia a B ogni unità b così ottenuta. Per decodificare il messaggio B calcola

35 RSA Ciò che ottiene B è proprio M grazie ad un classico teorema di Fermat-Eulero, che in questo caso, afferma che: Infatti da si ha che da cui


Scaricare ppt "Crittografia moderna: i principali algoritmi. Nel 1883 Kerckhoffs pubblica La Cryptographie Militaire ove enuncia il principio di separazione tra chiave."

Presentazioni simili


Annunci Google