Crittanalisi differenziale

Da Wikipedia, l'enciclopedia libera.

La crittanalisi differenziale è una forma generica di crittanalisi applicabile principalmente ai cifrari a blocchi ma anche ai cifrari a flusso ed alle funzioni crittografiche di hash. Nel senso più ampio del termine, la crittanalisi differenziale di una funzione crittografica è lo studio di come le differenze nei dati forniti in ingresso alla funzione possono incidere sulle differenze risultanti in uscita dalla stessa. Nel caso di un cifrario a blocchi, si riferisce ad un insieme di tecniche per tracciare le differenze attraverso la rete delle trasformazioni che l'algoritmo opera durante la sua esecuzione, scoprendo dove il cifrario mostra comportamenti non casuali, permettendo di sfruttare tali proprietà per recuperare la chiave segreta.

Storia[modifica | modifica wikitesto]

La scoperta della crittanalisi differenziale è generalmente attribuita ad Eli Biham e Adi Shamir alla fine degli anni ottanta, che pubblicarono un numero di attacchi contro diversi cifrari a blocchi e funzioni di hash, inclusa una debolezza teorica del DES[1].

James Bamford, un giornalista e scrittore americano particolarmente interessato agli affari governativi, scrisse nel suo libro The Puzzle Palace del 1982 che il DES era sorprendentemente resistente alla crittanalisi differenziale, nel senso che anche piccole modifiche apportate all'algoritmo lo avrebbero reso suscettibile di un attacco. Ciò fece pensare che i disegnatori IBM che progettarono il DES fossero a conoscenza di questa tecnica di attacco già negli anni settanta[2].

Nel 1994 Don Coppersmith, un membro del gruppo originale di sviluppo del DES, pubblicò un documento in cui affermava che la crittanalisi differenziale era nota ad IBM già dal 1974, e che uno degli obiettivi perseguiti durante la stesura del DES fu proprio quello di renderlo sicuro contro tale attacco[3].

Secondo lo scrittore Steven Levy, IBM aveva scoperto la crittanalisi differenziale per proprio conto, e la National Security Agency (che visionò il DES prima della sua pubblicazione) ne era apparentemente bene a conoscenza, tant'è che consigliò ad IBM di tenere la cosa segreta, come ammise lo stesso Coppersmith a Levy:

« Dopo alcune discussioni con l'NSA, fu deciso che la divulgazione delle considerazioni sulla struttura del DES avrebbero rivelato la crittanalisi differenziale, una tecnica molto potente che poteva essere utilizzata contro molti cifrari. Questo avrebbe indebolito il vantaggio in campo crittografico degli Stati Uniti d'America nei confronti degli altri Paesi.. »

All'interno di IBM la crittanalisi differenziale era nota come T-attack o "Tickle attack"[4].

Mentre il DES fu progettato con l'intento di resistere alla crittanalisi differenziale, molti altri cifrari contemporanei ne risultano ancora vulnerabili. Uno dei primi bersagli di questo attacco fu il cifrario a blocchi FEAL: la versione originale dell'algoritmo, basata su 4 passaggi (FEAL-4), può essere violata utilizzando soltanto 8 testi in chiaro scelti, e anche una versione con 31 passaggi del FEAL è sensibile a questo attacco.

Meccanismi di attacco[modifica | modifica wikitesto]

La crittanalisi differenziale è di solito un attacco con testo in chiaro scelto, vale a dire che l'attaccante deve essere in grado di ottenere i messaggi cifrati relativi a testi in chiaro di sua scelta. Lo schema può crittanalizzare con successo il DES con l'uso di 247 testi in chiaro scelti. Ci sono, peraltro, delle estensioni che permetterebbero l'uso di testo in chiaro noto oppure un attacco con solo testo cifrato.

Il metodo base utilizza coppie di testo in chiaro relazionate da una costante detta differenza: la differenza può essere definita in vari modi, ma l'operazione più usata è generalmente l'OR esclusivo (XOR). L'attaccante può calcolare le differenze dei corrispondenti testi cifrati, sperando di intercettare dei motivi statistici nella loro distribuzione. La coppia risultante delle differenze è detta una differenziale. Le loro proprietà statistiche dipendono dalla natura delle S-box usate per la cifratura, così che l'attaccante analizza le differenziali (\Delta_X, \Delta_Y), dove \Delta_Y = S(X) \oplus S(X \oplus \Delta_X) (\oplus denota un OR esclusivo) vale per ognuna delle S-box S.

Nell'attacco base ci si attende che una particolare differenza nei testi cifrati sia abbastanza frequente; in questo modo, il cifrario può essere distinto dal caso. Varianti dell'attacco più sofisticate permettono di recuperare la chiave più velocemente della ricerca esaustiva di tutte le possibili combinazioni.

Nella forma più semplice del recupero della chiave tramite crittanalisi differenziale, un attaccante richiede il testo cifrato per un gran numero di coppie di testi in chiaro, e poi assume che la differenziale tenga per almeno r-1 passaggi, dove r è il numero totale di passaggi del cifrario. L'attaccante poi deduce quali sotto-chiavi (per il passaggio finale) sono possibili tenendo conto della differenza tra i blocchi prima che l'ultimo passaggio sia completato: quando le sotto-chiavi sono corte, ciò può essere fatto in modo semplice, decifrando esaustivamente le coppie di testo cifrato con un passaggio del cifrario ed ogni possibile sotto-chiave. Quando una sotto-chiave è stata montata come potenziale sotto-chiave molto più spesso rispetto a qualsiasi altra chiave, allora si assume che essa sia la sotto-chiave corretta.

Per ogni particolare cifrario, la differenza dell'input deve essere selezionato accuratamente se l'attacco deve avere successo. Si intraprende allora un'analisi accurata della struttura interna dell'algoritmo: il metodo standard è quello di tracciare un percorso di differenze altamente probabili attraverso i vari passaggi del processo di cifratura, denominato caratteristica differenziale.

Dato che la crittanalisi differenziale è divenuta di pubblico dominio, è divenuta anche una preoccupazione di base dei crittografi (coloro che disegnano gli algoritmi crittografici): ci si aspetta infatti che i nuovi sistemi siano accompagnati da un'analisi da cui si evinca che l'algoritmo è resistente a questo tipo di attacco, e per molti di essi, incluso il noto AES, è stato matematicamente provato che lo sono.

Note[modifica | modifica wikitesto]

  1. ^ Eli Biham, Adi Shamir: Differential Cryptanalysis of the Full 16-Round DES - CRYPTO '92
  2. ^ James Bamford: The Puzzle Palace: a Report on America's Most Secret Agency (1982) - Houghton Mifflin - ISBN 0-14-006748-5
  3. ^ Don Coppersmith: The Data Encryption Standard (DES) and its strength against attacks - IBM Journal of Research and Development, vol. 38, pag. 243 - 1994
  4. ^ Matt Blaze: Re: Reverse engineering and the Clipper chip" - newsgroup sci.crypt - 15/08/1996

Voci correlate[modifica | modifica wikitesto]

Tipi particolari di crittanalisi differenziale[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]