Nota di Copyright RETI DI CALCOLATORI II Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e ) sono di proprietà degli autori prof. Pier Luca Montessoro e ing. Davide Pierattoni, Università degli Studi di Udine. Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori. L informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell informazione). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste slide. In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali. 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 1 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 2 Crittografia Permette di ottenere: Elementi di crittografia Segretezza Autenticazione Integrità del messaggio 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 3 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 4 cifratura cifratura #^$& #^$& 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 5 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 6 1
Algoritmo segreto void crypto (char s[]) int i, m = strlen (s); Esempio: Scambia ogni lettera in posizione i con quella in posizione (i 3 +3) mod m Cifratura for (i = 0; i < m; i++) char t; int j; j = (i*i*i + 3) % m; t = s[i]; s[i] = s[j]; s[j] = t; return; 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 7 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 8 void decrypto (char s[]) int i, m = strlen (s); for (i = m-1; i >= 0; i--) char t; int j; Decifratura j = (i*i*i + 3) % m; t = s[i]; s[i] = s[j]; s[j] = t; return; Esempio: "Cara Alice, credo che Trudy ci stia spiando" "art sausa eie aiocnodcrda y cc,e trlidchip" 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 9 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 10 Algoritmo segreto per Internet? NO: è necessario permettere lo sviluppo del software necessario algoritmo di cifratura algoritmi pubblici + CHIAVI Alice K A #^$& 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 11 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 12 2
KH#4 Bob K B Trudy? incomprensibile 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 13 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 14 Chiavi Chiavi Massima sicurezza: Stessa per crittografia e decrittografia len () > len (messaggio) chiavi sempre diverse Problema: Come scambiarsi le chiavi? 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 15 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 16 Esempio: cifrario di Cesare Cifrature monoalfabetiche (cifrario di Cesare) Schema di sostituzione fissa di ogni lettera con un altra Forzatura tramite analisi statistica delle ricorrenze a b c d e f g h i j k l m n o... f g e s j y z k r q p i t a v... ciao erfv 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 17 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 18 3
Cifrature polialfabetiche (cifrari di Vigenere) n cifrari di Cesare usati ciclicamente Esempio: cifrario di Vigenere a b c d e f g h i j k l m n o... k l m n o p q r s t u v w x y... e f g h i j k l m n o p q r s... y z a b c d e f g h i j k l m... k l m n o p q r s t u v w x y... e f g...... : key ciao mmyy 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 19 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 20 Tipologie di attacco Forza bruta (tutte le possibili chiavi) Analisi statistica (ricorrenze delle lettere, delle sillabe, ecc.) Analisi del crittogramma di cui è nota una parte del (es. intestazione standard) Analisi con scelto DES: Data Encryption Standard Chiave a 56 bit Due fasi di permutazione 16 fasi di manipolazione ed EXOR con i bit della 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 21 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 22 Forzato nel 1997 Evoluzione: DES triplo (3DES) Chiavi pubbliche Due chiavi Chiave pubblica Chiave privata (segreta) 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 23 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 24 4
Chiavi pubbliche Chiavi e cifratura devono soddisfare la proprietà: d B (e B (m)) = m = e B (d B (m)) 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 25 Chiavi pubbliche d B (e B (m)) = m = e B (d B (m)) Dove: e B pubblica di Bob, tipicamente usata per la cifratura d B privata di Bob, tipicamente usata per la m messaggio 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 26 Crittografia a pubblica Crittografia a pubblica algoritmo di cifratura Alice pubblica di Bob e B e B (m) Bob privata di Bob d B d B (e B (m))=m e B (m) 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 27 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 28 Algoritmo RSA per cifratura a pubblica RSA (Ron Rivest, Adi Shamir, Leonard Adleman) Chiavi generate a partire da due numeri primi p e q molto grandi: p, q dell ordine di 1024 bit (difficile scomposizione in fattori) V. descrizione dell algoritmo sul libro di Diffie and Hellman: crittografia a asimmetrica Tre proprietà: D(E(P)) = P estremamente difficile dedurre D da E E non può essere forzato con attacco di tipo a scelta 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 29 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 30 5
Rivest, Shamir and Adleman: RSA RSA esempio Scegliere p e q (da 1024 bit) Calcolare n = p x q z = (p - 1) x (q - 1) Scegliere e tale che: 1 < e < z MCD (z, e) = 1 Calcolare d < z tale che de mod z = 1 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 31 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 32 RSA: chiavi e cifratura Chiave pubblica: e, n Chiave privata: d, n Cifratura del M < n C = M e (mod n) Algoritmo RSA per cifratura a pubblica Problema: richiede calcolo di elevamento a potenza con numeri molto grandi Decifratura del C M = C d (mod n) Lungo tempo di elaborazione 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 33 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 34 Algoritmo RSA per cifratura a pubblica Possibile impiego: scambio di chiavi di sessione RSA chiavi di sessione DES contenuto dei messaggi Elementi di crittografia 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 35 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 36 6