Sulla lunghezza delle chiavi negli algoritmi crittografici simmetrici

EncryptedOggi Bruce Schneier ha pubblicato un brano tratto dal suo Applied Criptography. L’occasione è il debunking di un bizzarro algoritmo crittografico simmetrico che usa chiavi da 49152 bit — segno piuttosto chiaro che gli autori dell’algoritmo non hanno esattamente in mente di cosa stiano parlando. Mi permetto di riportare qui il brano correggendo i dati numerici e modificando leggermente gli esempi.

Una delle conseguenze del secondo principio della termodinamica — osserva Schneier — è che è necessaria una certa quantità di energia per rappresentare l’informazione. Memorizzare un singolo bit cambiando lo stato di un sistema richiede una quantità di energia pari almeno a kT, dove k è la costante di Boltzmann e T è la temperatura assoluta del sistema.

Dato che k = 1.38065 × 10-23 J/K e che la temperatura dell’universo è di 2.725 K, un computer ideale funzionante a 2.725 K consumerebbe 3.7623 × 10-23 J per impostare un bit a 0 o 1. Per far funzionare il computer a una temperatura ancora più bassa servirebbe dell’energia aggiuntiva per far funzionare una pompa di calore.

Il nostro Sole emette ogni anno circa 1.22 × 1034 J, che è il necessario per far 3.2427×1056 cambi di bit sul computer ideale, vale a dire per far ciclare attraverso tutti i suoi valori un contatore da 187 bit. Se costruissimo una sfera di Dyson (un’ipotetica megastruttura che cattura tutta l’energia di una stella) attorno al nostro Sole basterebbero 32 anni per poter contare fino a 2192. Ovviamente non rimarrebbe energia per poter elaborare in alcun modo questi valori.

Un piccolo ammasso globulare, cioè una specie di mini-galassia che orbita attorno a una galassia maggiore, può avere una massa di 5.5 × 1037 kg. Se annichilissimo tutta la materia dell’ammasso con un pari quantitativo di antimateria come conseguenza del famoso E=mc2 otterremmo 2 × 1053 J, poco più del necessario per far ciclare completamente un contatore da 256 bit.

Questi numeri non hanno nulla a che fare con la tecnologia dei computer: sono il massimo che la termodinamica permette. Questo vuol dire che gli attacchi di forza bruta contro chiavi da 256 bit saranno computazionalmente insostenibile fino a quando i computer non saranno fatti di qualcosa di diverso dalla materia e occuperanno qualcosa di diverso dallo spazio.

Una leggenda metropolitana piuttosto diffusa vuole che i mitici computer quantistici polverizzeranno senza problemi le chiavi degli algoritmi crittografici simmetrici “provando tutte le chiavi contemporaneamente”. In realtà nel 1996 Bennet, Bernstein Brassard e Vazirani hanno dimostrato che un attacco di forza bruta su un algoritmo simmetrico non può richiedere meno di 2n/2 invocazioni dell’algoritmo stesso, dimezzando quindi lo spazio delle chiavi da esplorare. Un algoritmo con chiave da 256 bit offre dunque una resistenza a un ipotetico computer quantistico di almeno 128 bit (link al paper).

Gli attacchi agli algoritmi di crittografia mirano quindi a ridurre drasticamente lo spazio di ricerca in modo intelligente, dato che lo spazio di tutte le chiavi possibili è un problema fisicamente inaffrontabile.

Ha ben ragione Schneier quando mette tra le caratteristiche per individuare la crittografia farlocca “ridiculus key lengths”: chi propone algoritmi con chiavi da 49152 bit o addirittura 1 milione probabilmente ha le idee un po’ confuse.

Leave a Reply