1 / 42

Cryptography

Cryptography. Cap 12 by William Stallings. Algoritmi di Hash e MAC. Funzioni Hash  Condensano messaggi di dimensione arbitraria in una fissa  Elaborano il messaggio in blocchi  Utilizzano una funzione di compressione che può essere di due tipi:

eugene
Download Presentation

Cryptography

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. Cryptography Cap 12 by William Stallings

  2. Algoritmi di Hash e MAC • Funzioni Hash • Condensano messaggi di dimensione arbitraria in una fissa •  Elaborano il messaggio in blocchi •  Utilizzano una funzione di compressione che può essere di due tipi: • -una funzione appositamente progettata per la funzione hash tipo SHA • -una cifratura simmetrica a blocchi come Whirlpool • Message Authentication Code (MAC) •  Costituiscono degli autenticatori di dimensione fissa per i messaggi •  Ricadono in due categorie • quelli che utilizzano un algoritmo hash sicuro (es. HMAC) • quelli che utilizzano una cifratura simmetrica a blocchi (ad es. CMAC)

  3. Algoritmi di hash più noti MD2, MD4, MD5, RIPEMD, SHA, SHA-1, Whirlpool, SNEFRU, TIGER MD2 (Message Digest 2), MD4 ed MD5 sono stati sviluppati in tempi successivi da Ron Rivest mentre SHA (Secure Hash Algorithm) ed SHA-1 sono stati sviluppati da Kremlin La struttura di MD2, pensato per CPU ad 8 bit, è alquanto diversa da quella di MD4 ed MD5 che sono stati pensati per CPU a 32 bit Whirlpool è stato sviluppato nel corso del progetto europeo NESSIE (New European Schemes for Signatures, Integrity, and Encryption)

  4. Struttura degli algoritmi di hash

  5. Utilizzo delle funzioni Hash I sistemi UNIX applicano alle password degli utenti una funzione hash, in tal modo conservano i valori hash e non le password Il login utente richiede una password. Alla password è applicata una funzione hash ed il suo output è confrontato con il valore immagazzinato In questo modo (shadowed password) nessuno conosce le password degli utenti

  6. Utilizzo delle funzioni Hash Se una password appartiene ad un vocabolario limitato, un attaccante che abbia ottenuto il controllo dell’host, può con il metodo “brute force”, calcolare la funzione hash di tutte le parole del vocabolario, confrontare gli output con le shadowed password e ottenere tutte le password (dictionary attack). Le funzioni hash possono essere anche utilizzate per l’autenticazione interattiva sulle reti Trasmettere un hash al posto della reale password ha il vantaggio di non rivelare la password a qualcuno che stia sniffando il traffico di rete. Se la password è combinata con un qualche valore che muta, allora l’hash sarà differente volta per volta, impedendo così ad un attacker di autenticarsi facendo uso di un vecchio hash Approccio utilizzato nello schema di autenticazione CHAP del PPP

  7. Algoritmi Hash (message digest) • MD2 (Message Digest 2), inventato da Ron Rivest della RSA Data Security, è nato per essere utilizzato con la Privacy Enhaced Mail (PEM)(Posta con privacy incrementata). Produce un valore di hash di 128 bits e richiede come input multipli di 16 byte. MD2 esegue il PAD (cioè aggiunge i bit mancanti) ai messaggi d'ingresso che non hanno la lunghezza integrale. E’generalmente considerato un algoritmo morto. Sviluppato per lavorare sui processori a 8 bit, oggi, con l’avvento dei processori a 32/64 bit, risulta molto poco utilizzato. E’ differente nel design dall’MD4 e dall’MD5. Questo algoritmo è stato violato dalla crittoanalisi quindi è, ovviamente, sconsigliato l'uso. • Un'implementazione è disponibile all'indirizzo • : ftp://ftp.funet.fi:/pub/crypt/hash/mds.

  8. Algoritmi Hash: MD4 MD4 Algoritmo di hash considerato sicuro ed alla base delle funzioni Hash. Il messaggio viene suddiviso in blocchi di 512 bit, poi tramite una struttura iterativa il blocco viene elaborato da una funzione di compressione sui blocchi di 512 bit per la generazione del valore hash. L'output ha una lunghezza di 128 bit e i calcoli sono ottimizzati per i registri a 32 bits. MD4 richiede PAD (aggiunta di bit) a multipli di 512 bits. Inoltre il padding comprende sempre un valore di 64 bits che indica la lunghezza del messaggio che non ha subito il PAD. MD4 è più veloce e sicuro del suo antecedente Hans Dobbertin ha sviluppato un attacco a questo algoritmo, in grado di generare collisioni in un minuto di tempo di calcolo su un normale computer.

  9. Algoritmi Hash:MD5 MD5 utilizza un buffer di 128 bit inizializzato a un valore prefissato. Divide il messaggio originale (visto come una stringa di bit) in blocchi di 512 bit aggiungendo se necessario dei bit aggiuntivi per arrivare a tale cifra e per ogni blocco di 128 bit vengono eseguiti quattro passi che consistono nel mescolare completamente i 512 bit in ingresso con il buffer di 128 fino a che tutti i blocchi in ingresso sono stati consumati. Alla fine il buffer sarà il message digest del testo in ingresso.

  10. Algoritmi Hash:MD5 Mentre l’MD4 è stato sviluppato per la velocità di esecuzione, l’MD5 ha caratteristiche più robuste del suo predecessore MD4 legate alla sicurezza. Infatti le stesse tecniche utilizzate per la generazione delle collisioni sull’MD4, nell’MD5 impiegano tempi maggiori dell’ordine di seicento volte. In particolare Hans Dobbertin ha dimostrato che con l’MD5, con un normale PC, occorrono circa 10 ore per trovare collisioni. L’MD5, come l’MD4, produce output di 128 bit.

  11. MD5 Algoritmo esposto in RFC 1321 e open a condizione di dichiarare il copyrigth Algoritmo di MD5 ( o MD4) basato sulla struttura iterativa di Damgard-Merkle

  12. MD5

  13. Attacchi a MD5 • E’ possibile creare collisioni di una funzione hash (md5)? • Paul van Oorshcot scrisse un paper nel 1994.(“Parallel Collision Search with Application to Hash Functions “) • Egli affermò che con l’utilizzo di un super computer da $10,000,000 era possibile ottenere collisioni con MD5 in 24 giorni!!! • Dato in input il messaggio m1 e l’Hash(m1), è possibile trovare un altro messaggio simile m2 che si differisce per pochi byte da m1 tale che Hash(m1) = Hash(m2). • Paul van Oorshcot pensò di aggiungere ad m1 dei caratteri che non fossero visibili in un Word Processor, oppure aggiungere dei caratteri che poi venivano nascosti da una proprietà del Word Processor.

  14. Esempio

  15. Secure Hash Algorithm (SHA-1) • SHA progettato inizialmente da NIST e NSA nel 1993 • Versione rivista nel 1995 come SHA-1 • Standard USA per l’uso con lo schema di firma DSA • Standard FIPS 180-1 1995 ( anche IETF RFC 3174) • n.b. L’algoritmo è SHA, lo standard è SHS • Basato sul progetto di MD4 con differenze significative • Produce un valore di hash lungo 160 bit

  16. Secure Hash Algorithm (SHA-1) • Nel 2005 NIST ha annunciato l’intenzione di utilizzare altre versioni di SHA • Nel 2005 dei risultati sulla sicurezza di SHA-1 hanno destato preoccupazione circa il suo uso in applicazioni future. • Un gruppo di ricercatori ha descritto un attacco per individuare due messaggi diversi che producono lo stesso codice hash con 269 operazioni al posto delle 280 previste

  17. SHA Overview NIST ha distribuito una versione aggiornata dello standard FIPS 180-2 nel 2002 FIPS 180-2 aggiunge 3 altre versioni di SHA: SHA-256, SHA-384, SHA-512 Progettato per compatibilità con la maggior sicurezza ottenuta con il cipher AES Struttura e dettagli sono simili a SHA-1 Quindi anche l’analisi sarà simile I livelli di sicurezza sono più elevati

  18. SHA Le dimensioni sono date in bit. Il parametro sicurezza è determinato su un attacco a compleanno

  19. SHA

  20. Funzione di blocco SHA-512 Cuore dell’algoritmo Elabora il messaggio in blocchi di 1024 bit Formata da 80 round Aggiorna un buffer di 512 bit Usando una quantità W a 64 bit ricavata dal blocco corrente di messaggio Usando pure una costante di round ricavata dalla radice cubica dei 80 numeri primi

  21. Elaborazione di blocco SHA-512

  22. Funzione di round SHA-512

  23. Funzione di round SHA-512

  24. Valore di Wt

  25. SHA-1 Compression Function • each round has 20 steps which replaces the 5 buffer words thus: (A,B,C,D,E) <-(E+f(t,B,C,D)+(A<<5)+Wt+Kt),A,(B<<30),C,D) • a,b,c,d refer to the 4 words of the buffer • t is the step number • f(t,B,C,D) is nonlinear function for round • Wt is derived from the message block • Kt is a constant value derived from sin

  26. SHA-1 Compression Function

  27. SHA-1 verses MD5 • brute force attack is harder (160 vs 128 bits for MD5) • not vulnerable to any known attacks (compared to MD4/5) • a little slower than MD5 (80 vs 64 steps) • both designed as simple and compact • optimised for big endian CPU's (vs MD5 which is optimised for little endian CPU’s)

  28. Revised Secure Hash Standard • NIST have issued a revision FIPS 180-2 • adds 3 additional hash algorithms • SHA-256, SHA-384, SHA-512 • designed for compatibility with increased security provided by the AES cipher • structure & detail is similar to SHA-1 • hence analysis should be similar

  29. RIPEMD • RIPEMD sono stati sviluppati dal progetto European RIPE, i cui autori hanno scoperto collisioni per una sua versione, in due casi. L'algoritmo originale è stato successivamente migliorato nel RIPEMD/ 160, che utilizza output di 160, 256 o 320 bit. • SAFER (Secure And Fast Encryption Routine) SAFER K-64 [1994], SAFER K-128 [1995]

  30. RIPEMD-160 Round

  31. RIPEMD-160 Compression Function

  32. Whirlpool Whirlpool hash function Sponsorizzata dal progetto europeo NESSIE New European Schemes for Signatures, Integrity, and Encryption Usa come funzione di compressione AES modificato Preoccupazioni circa l’uso di un block cipher Performance paragonabile a quella di algoritmi dedicati come SHA

  33. Whirlpool

  34. Block Cipher W Progettato specificamente per l’uso come funzione di hash Con la sicurezza e l’efficienza di AES Usa però block size di 512 bit Utilizza 10 rounds Un diverso polinomio primitivo per GF(28) Un progetto e valori differenti per l’S-box

  35. Struttura del Block Cipher W

  36. Performance e sicurezza Whirlpool è una proposta nuovissima Pochissima esperienza sul suo uso Si dovrebbero applicare le conoscenze di AES Non sembra richiedere più h/w di SHA Sembra però con migliori performances

  37. Funzioni hash con chiave Voluto un MAC basato su una funzione hash Le funzioni hash sono generalmente più veloci Codici per le funzioni hash disponibile con larghezza L’ hash include una chiave insieme al messaggio Proposta originale: KeyedHash = Hash(Key||Message) Evidenziate alcune debolezze Successivo sviluppo di HMAC

  38. HMAC Speficato come standard di Internet (RFC 2104) Usa una funzione di hash sul messaggio HMAC(K,M) =H [(K+opad )||H [(K+ipad )||M]] K è la chiave K+è la chiave padded con 0 per portarla a lunghezza opad, ipad costanti specificate Può essere usata qualsiasi funzione hash: MD5, SHA-1, etc Produce un carico di calcolo 3 volte quello del messaggio da solo

  39. Schema di HMAC

  40. Sicurezza di HMAC Sicurezza di HMAC fondata su quella dell’algoritmo di hash Attaccare HMAC richiede: Un attacco a forza bruta sulla chiave utilizzata Un attacco birthday (molto difficile per la presenza della chiave che richiederebbe un numero elevatissimo di messaggi) Scelta della funzione hash che deve considerare le 2 esigenze: Velocità e Sicurezza

  41. CMAC Visto in precedenza il DAA (CBC-MAC) Largamente usato da enti statali e industrie Presenta una limitazione sulla dimensione del messaggio Superabile usando 2 chiavi e padding Adottato dal NIST come SP800-38B Si viene a formare il Cipher-based Message Authentication Code (CMAC)

  42. Schema di CMAC

More Related