1 / 25

Crittografia

Crittografia. DESTINATARIO. MITTENTE. messaggio. messaggio. chiave-1. chiave-2. crittografia. decrittografia. messaggio cifrato. Crittografia a chiave privata. Crittoanalisi. Ciphertext only algoritmo di crittografia testo cifrato Known plaintext algoritmo di crittografia

Download Presentation

Crittografia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Crittografia DESTINATARIO MITTENTE messaggio messaggio chiave-1 chiave-2 crittografia decrittografia messaggio cifrato

  2. Crittografia a chiave privata

  3. Crittoanalisi • Ciphertext only • algoritmo di crittografia • testo cifrato • Known plaintext • algoritmo di crittografia • testo cifrato • una o più coppie testo in chiaro / testo cifrato • Chosen plaintext • algoritmo di crittografia • testo cifrato • messaggi in chiaro scelti dal criptoanalista con i corrispondenti messaggi cifrati

  4. Lunghezza delle chiavi private • se l’algoritmo è ben progettato l’unico attacco possibile è quello esaustivo • numero medio di tentativi richiesti: 2N-1 con N=lunghezza della chiave • tempo medio di attacco lungh. chiave tempo richiesto tempo richiesto (bit) a 1 decr/s a 106 decr/s 56 255 s = 1142 anni 10 ore 128 2127 s ~ 1024 anni ~ 1018 anni 168 2167 s ~ 1036 anni ~ 1030 anni

  5. Cipher Block Chaining Mode • Produce un blocco di testo cifrato per ogni blocco di testo in chiaro in input • per evitare regolarità si fa in modo che il blocco cifrato di ogni blocco dati dipenda da tutto il testo in chiaro precedente

  6. DES (Data Encryption Standard) • sviluppato alla IBM, adottato dal NIST nel 1977 come standard per le applicazioni governative e commerciali • chiave da 56 bit, blocco dati da 64 bit • efficiente in hardware (implementato in VLSI) • molto studiato, non sono note debolezze • violato nel 1998 con attacco esaustivo su macchina special-purpose in meno di 3 giorni

  7. DES: schema complessivo

  8. DES: schema dell'i-ma iterazione

  9. Triplo DES • standardizzato per le applicazioni finanziarie nel 1985, dal 1999 incorporato nello standard DES • tre esecuzioni del DES secondo uno schema EDE • stessa resistenza del DES alla crittoanalisi • tre chiavi da 56 bit equivalenti a una da 168 bit

  10. AES (Advanced Encryption Standard) • Call for proposal emessa dal NIST nel 1997 • specifiche: • sicurezza almeno pari a quella del Triplo DES • maggiore efficienza • blocco dati da 128 bit, chiavi da 128/192/256 bit • criteri di valutazione: • sicurezza, efficienza, uso di risorse, adattabilità hw e sw, flessibilità • standard finale pubblicato nel 2001

  11. Altri algoritmi a chiave privata • IDEA (International Data Encryption Algorithm) • sviluppato nel 1991 • blocco dati da 64 bit, chiave da 128 bit • operazioni: XOR, addizione e moltiplicazione a 16 bit • efficiente in software • finora appare altamente resistente alla crittoanalisi • usato nel PGP e in molti prodotti commerciali • RC5 • sviluppato da Ron Rivest (RC = Ron’s code) • algoritmo proprietario di RSA Data Security Inc. • adatto sia per hw che per sw • veloce (word oriented) • parametrizzabile (dimensione word, numero di round, lunghezza chiave) • adatto a smart card e dispositivi con ridotta memoria

  12. Distribuzione delle chiavi • OOB (Out Of Band) • key distribution center

  13. Crittografia a chiave pubblica • proposta nel 1976 da Diffie e Hellman • usata per distribuire chiavi segrete e per la firma digitale Bob Alice

  14. Requirements • deve essere computazionalmente semplice per un utente B generare una coppia di chiavi KUb, KRb • deve essere computazionalmente semplice per un mittente A ottenere il testo cifrato C = EKUb(M) • deve essere computazionalmente semplice per il ricevente B recuperare il testo originale M = DKRb(C) • deve essere computazionalmente complesso per un impostore determinare KRb da KUb • deve essere computazionalmente complesso per un impostore ricavare M da KUb e C • le chiavi KUb e KRb devono avere funzionalità reciproche

  15. RSA (Rivest - Shamir - Adleman) • sviluppato nel 1977 da Rivest, Shamir, Adleman • algoritmo a chiave pubblica più diffuso Encryption Plaintext: M<n Ciphertext: C = Memodn Decryption Ciphertext: C Plaintext: M = Cdmodn Key Generation Select p, qp and q both prime Calculate n = p x q Calculate (n) = (p-1)(q-1) Select integer e gcd((n),e)=1; 1<e< (n) Calculate dde mod(n) = 1 Public key KU = [e, n] Private key KR = [d, n]

  16. RSA: un esempio • Si scelgono due numeri primi p=7, q=17 • si calcola n = pq = 7 x 17 = 119 • si calcola (n) = (p-1)(q-1) = 6x16 =96 • si sceglie e < (n), relativamente primo con (n), e = 5 • si determina d tale che de mod 96 = 1 e d<96, d = 77 (infatti 77x5 = 385 = 96x4+1)

  17. Sicurezza di RSA • Possibile attacco esaustivo: nella scelta di e e d trade-off tra sicurezza e prestazioni • Crittoanalisi: fattorizzazione di n • 1977: sfida degli inventori su un testo criptato con una chiave pubblica n di 129 cifre decimali (circa 428 bit) • 1994: sfida vinta su Internet con 1600 calcolatori in otto mesi di lavoro • attualmente chiavi di 1024 bit sono considerate sufficientemente sicure

  18. Diffie - Hellman • primo algoritmo a chiave pubblica proposto (’76) • tecnica per lo scambio di chiavi segrete • si basa sulla difficoltà di calcolare il log discreto Global Public Elements q prime number  <q and  primitive root of q User A Key Generation Select private XA XA<q Calculate public YA YA = XAmodq User B Key Generation Select private XB XB<q Calculate public YB YB = XBmodq Generation of secret key by A K = (YB)XAmodq Generation of secret key by B K = (YA)XBmodq

  19. Diffie - Hellman: un esempio • Si scelgono un numero primo q=71 e una sua radice primitiva =7 • A sceglie la chiave privata XA=5 e calcola la chiave pubblica YA = 75mod71 = 51 • B sceglie la chiave privata XB=12 e calcola la chiave pubblica YB = 712mod71 = 4 • A e B si scambiano le chiavi pubbliche • A calcola la chiave segreta K = 45mod71 = 30 • B calcola la chiave segreta K = 5112mod71 = 30

  20. Diffie - Hellman: aspetti critici • non protegge da attacchi di tipo replay • possibile attacco man-in-the-middle YM YA A M B YM YB • richiede pre-autenticazione YA, firma A(YA) A B YB, firma B(YB)

  21. Uso della crittografia a chiave pubblica per l'autenticazione Bob Alice

  22. Firma digitale • Garantisce che: • il messaggio è autentico • il messaggio è integro • il mittente non può disconoscere il messaggio

  23. Funzione di hash • Produce un'impronta del messaggio • Deve possedere le seguenti proprietà: • accetta un messaggio di dimensione variabile • produce un digest di lunghezza fissa • è veloce da calcolare • è difficilmente invertibile • è estremamente improbabile che messaggi diversi generino lo stesso digest

  24. Esempi di funzioni di hash • MD5 (Message Digest 5) • sviluppata da Ron Rivest • digest da 128 bit • era la più usata, ora non più considerata sicura • SHA (Secure Hash Algorithm) • sviluppata dal NIST nel 1993, SHA-1 revised version nel 1995 • digest da 160 bit • ogni bit del digest è funzione di tutto l'input

  25. Uso della crittografia a chiave pubblica per la distribuzione di chiavi segrete • Bob vuole comunicare con Alice in forma riservata • Bob prepara il messaggio • lo cripta usando la crittografia a chiave privata con una chiave di sessione • cripta la chiave di sessione usando la crittografia a chiave pubblica con la chiave pubblica di Alice • acclude al messaggio la chiave di sessione criptata e invia il messaggio

More Related