Passa al contenuto principale

8.2. A Very High Security Cryptographic Key (Una Chiave Crittografica di Altissima Sicurezza)

8.2. A Very High Security Cryptographic Key (Una Chiave Crittografica di Altissima Sicurezza)

Supponiamo che sia necessaria una chiave di altissima sicurezza per la cifratura/decifratura simmetrica tra due parti. Supponiamo anche che un avversario possa osservare le comunicazioni e conosca l'algoritmo usato. Nel campo delle possibilità casuali, l'avversario può provare valori di chiave nella speranza di trovare quello in uso. Supponiamo inoltre che il tentativo a forza bruta delle chiavi sia il meglio che l'avversario possa fare.

8.2.1. Effort per Key Trial (Sforzo per Tentativo di Chiave)

Quanto sforzo richiederà provare ogni chiave? Per applicazioni di altissima sicurezza, è meglio assumere un valore basso di sforzo. Anche se richiederebbe chiaramente decine di migliaia di cicli di computer o più per provare una singola chiave, potrebbe esserci qualche pattern che permette di testare enormi blocchi di valori di chiave con molto meno sforzo per chiave. Quindi, è probabilmente meglio assumere non più di un paio di centinaia di cicli per chiave. (Non c'è un chiaro limite inferiore su questo, poiché i computer operano in parallelo su un numero di bit e un algoritmo di cifratura povero potrebbe permettere di testare molte chiavi o anche gruppi di chiavi in parallelo. Tuttavia, dobbiamo assumere qualche valore e possiamo sperare che sia stato scelto un algoritmo ragionevolmente robusto per il nostro compito ipotetico di alta sicurezza.)

Se l'avversario può comandare un processore altamente parallelo o una grande rete di workstation, 10^11 cicli al secondo è probabilmente un'assunzione minima oggi. Guardando avanti qualche anno, ci DOVREBBE essere almeno un miglioramento di un ordine di grandezza. Quindi, è ragionevole assumere che 10^10 chiavi potrebbero essere controllate al secondo, o 3.610^12 all'ora o 610^14 a settimana, o 2.4*10^15 al mese. Questo implica una necessità di un minimo di 63 bit di casualità nelle chiavi, per essere sicuri che non possano essere trovate in un mese. Anche allora è possibile che, tra qualche anno, un avversario altamente determinato e pieno di risorse possa violare la chiave in 2 settimane; in media, devono provare solo la metà delle chiavi.

Queste questioni sono considerate in dettaglio in "Minimal Key Lengths for Symmetric Ciphers to Provide Adequate Commercial Security: A Report by an Ad Hoc Group of Cryptographers and Computer Scientists" [KeyStudy] che è stato sponsorizzato dalla Business Software Alliance. Ha concluso che una lunghezza di chiave ragionevole nel 1995 per altissima sicurezza è nell'intervallo da 75 a 90 bit e, poiché il costo della crittografia non varia molto con la dimensione della chiave, raccomanda 90 bit. Per aggiornare queste raccomandazioni, basta aggiungere 2/3 di bit all'anno per la legge di Moore [MOORE]. Questo si traduce in una determinazione, nell'anno 2004, che una lunghezza di chiave ragionevole è nell'intervallo 81-96 bit. In effetti, oggi, è sempre più comune usare chiavi più lunghe di 96 bit, come chiavi a 128 bit (o più lunghe) con AES e chiavi con lunghezze effettive di 112 bit con triple-DES.

8.2.2. Meet-in-the-Middle Attacks (Attacchi Meet-in-the-Middle)

Se il testo in chiaro scelto o noto e il testo cifrato risultante sono disponibili, un attacco "meet-in-the-middle" è possibile se la struttura dell'algoritmo di cifratura lo permette. (In un attacco a testo in chiaro noto, l'avversario conosce tutto o parte (possibilmente alcuni campi di intestazione o coda standard) dei messaggi cifrati. In un attacco a testo in chiaro scelto, l'avversario può forzare qualche testo in chiaro scelto ad essere cifrato, possibilmente "facendo trapelare" un testo interessante che viene inviato dall'avversario su un canale cifrato perché il testo è così interessante.)

La seguente è una spiegazione semplificata dell'attacco meet-in-the-middle: l'avversario può semi-cifrare il testo in chiaro noto o scelto con tutte le possibili chiavi della prima metà, ordinare l'output, e poi semi-decifrare il testo codificato con tutte le chiavi della seconda metà. Se viene trovata una corrispondenza, la chiave completa può essere assemblata dalle metà e usata per decifrare altre parti del messaggio o altri messaggi. Al suo meglio, questo tipo di attacco può dimezzare l'esponente del lavoro richiesto dall'avversario aggiungendo un fattore di sforzo molto grande ma approssimativamente costante. Quindi, se questo attacco può essere montato, è richiesto un raddoppio della quantità di casualità nella chiave molto robusta a un minimo di 192 bit (96*2) per l'anno 2004, basato sull'analisi [KeyStudy].

Questa quantità di casualità è ben oltre il limite di quella negli input raccomandati dal DoD degli Stati Uniti per la generazione di password e potrebbe richiedere temporizzazione di digitazione utente, generazione di numeri casuali hardware o altre sorgenti di casualità.

L'attacco meet-in-the-middle assume che l'algoritmo crittografico possa essere decomposto in questo modo. Sperabilmente nessun algoritmo moderno ha questa debolezza, ma potrebbero esserci casi in cui non siamo sicuri di ciò o anche di quale algoritmo verrà usata una chiave. Anche se un algoritmo di base non è soggetto a un attacco meet-in-the-middle, un tentativo di produrre un algoritmo più robusto applicando l'algoritmo di base due volte (o due algoritmi diversi sequenzialmente) con chiavi diverse guadagnerà meno sicurezza aggiunta di quanto ci si aspetterebbe. Tale algoritmo composito sarebbe soggetto a un attacco meet-in-the-middle.

Risorse enormi possono essere richieste per montare un attacco meet-in-the-middle, ma probabilmente sono nella gamma dei servizi di sicurezza nazionale di una nazione importante. Essenzialmente tutte le nazioni spiano sul traffico di altre nazioni.

8.2.3. Other Considerations (Altre Considerazioni)

[KeyStudy] considera anche le possibilità di hardware specializzato per la violazione di codici e avere un margine di sicurezza adeguato.

Si noti che i calcoli di lunghezza di chiave come quelli sopra sono controversi e dipendono da varie assunzioni sugli algoritmi crittografici in uso. In alcuni casi, un professionista con una profonda conoscenza delle tecniche di violazione di algoritmi e della robustezza dell'algoritmo in uso potrebbe essere soddisfatto con meno della metà della dimensione della chiave a 192 bit derivata sopra.

Per ulteriori esempi di principi di progettazione conservativi, vedere [FERGUSON].