# Dimensione della chiave

Nella crittologia, la dimensione della chiave misura il numero di possibili chiavi utilizzabili per cifrare un messaggio. Dato che i moderni sistemi di cifratura utilizzano chiavi binarie, la lunghezza della chiave viene specificata in bit. La dimensione della chiave è un elemento critico, dato che una chiave troppo corta sarebbe esposta al rischio di "forzatura" tramite un attacco a forza bruta.

## Teoria

La chiave è utilizzata per gestire la cifratura e la decifratura dei messaggi. Solo la chiave corretta è in grado di decifrare correttamente un messaggio cifrato. Di molti algoritmi di cifratura sono pubbliche le specifiche e quindi la sicurezza di un messaggio cifrato dipende unicamente dalla segretezza della chiave. La chiave deve essere di una dimensione minima da rendere inutile un potenziale attacco a forza bruta e quindi sicuro il messaggio a meno di furto della chiave o di debolezze strutturali dell'algoritmo. La pratica di rendere pubbliche le specifiche degli algoritmi deriva dall'accettazione del principio di Kerckhoffs formulato da Auguste Kerckhoffs nel 1880 e conosciuto anche come massima di Shannon. Questo principio afferma che bisogna dare per scontato che l'attaccante conosca perfettamente l'algoritmo crittografico e che quindi la sicurezza del messaggio deve dipendere unicamente dalla bontà della chiave.
La chiave deve essere abbastanza lunga da impedire un attacco a forza bruta. In teoria per aver una cifratura perfetta si dovrebbe utilizzare una chiave lunga quanto il messaggio da cifrare. Questo venne dimostrato da Claude Shannon quando studiò la trasmissione di messaggi riservati. Nella pratica utilizzare chiavi lunghe quanto il messaggio è molto scomodo e quindi si preferisce utilizzare chiavi di dimensione fissa e molto più piccole che risultano facilmente maneggiabili e garantiscono comunque un'elevata sicurezza sebbene non sia la massima raggiungibile a livello teorico.

## Attacco a forza bruta

Tutti gli algoritmi crittografici possono essere forzati, basta provare a decifrare il messaggio con tutte le chiavi possibili. Esplorando l'intero spazio delle chiavi alla fine sicuramente si troverà la chiave corretta che decifrerà il messaggio. Questo genere di attacco viene definito "attacco a forza bruta" e per questo bisogna utilizzare chiavi abbastanza lunghe da rendere impraticabile questa strada.
Una chiave lunga n (bit) dispone di uno spazio delle chiavi di 2$^n$. Lo spazio delle chiavi cresce con una progressione esponenziale al crescere di n. La velocità dei calcolatori aumenta anch'essa esponenzialmente nel tempo, e quindi quando si sviluppano degli algoritmi di criptazione bisogna tenerne conto. Negli anni settanta si riteneva che una chiave a 56 bit fosse inattaccabile con un attacco a forza bruta, mentre attualmente si sa che una chiave di quelle dimensioni è forzabile in poche ore con macchine specializzate. Attualmente, per un algoritmo a chiave simmetrica si ritiene che 128 bit sia una lunghezza accettabile per proteggere i dati odierni. Tuttavia, va detto che già oggi, possibili computer quantistici potrebbero decifrarlo in pochi minuti.

## Lunghezza chiave negli algoritmi simmetrici

Il governo statunitense impose un serio limite all'esportazione e all'utilizzo di chiavi lunghe. Per molti anni il limite imposto dal governo fu di 40 bit, che per lo standard moderni è un limite ridicolo dato che un semplice computer è in grado in poche ore di verificare tutto lo spazio delle chiavi. Infatti mentre in Europa e nel resto del mondo si diffondevano algoritmi con chiavi lunghe gli Stati Uniti d'America per via di scelte politiche rimanevano costretti a utilizzare chiavi corte. Con la diffusione di internet e del commercio elettronico il Governo degli Stati Uniti fu costretto a cambiare la legge innalzando il limite a 128 bit.
Quando nel 1977 il Data Encryption Standard (DES) venne distribuito dal governo Statunitense la lunghezza della chiave di 56 bit era più che sufficiente, sebbene nel Lucifer, predecessore del DES la chiave fosse già di 112 bit. Ma l'NSA quando approvò il DES decise di ridurre la chiave. Visto che l'NSA è una delle agenzie meglio finanziate dal governo statunitense, si ritiene che già verso la fine degli anni settanta avessero risorse tecnologiche e finanziarie sufficienti per sviluppare una macchina specializzata che forzasse il DES verificando l'intero spazio delle chiavi. Comunque negli anni novanta si dimostrò che il DES era forzabile in un paio di giorni utilizzando macchine specializzate dal costo inferiore al milione di dollari e quindi con costi accessibili a tutte le multinazionali e ovviamente a tutti i Governi. Nel libro Cracking DES (O'Reilly and Associates) viene descritto come la EFF abbia finanziato e costruito una macchina in grado di forzare il DES. Da allora sono sorti anche dei progetti basati su computer distribuito che hanno consentito di forzare chiavi a 56 bit e che attualmente stanno forzando un messaggio a 64 bit codificato con l'algoritmo RC5.
L'algoritmo Skipjack dell'NSA utilizzato dal programma Fortezza utilizza chiavi a 80 bit.
Il DES è stato temporaneamente sostituito dal Triple DES che usa tre chiavi da 56 bit per ottenere una cifratura a 168 bit.
L'Advanced Encryption Standard pubblicato nel 2001 utilizza chiavi da almeno 128 bit ed è in grado di utilizzare anche chiavi a 192 o 256 bit. La chiave a 128 bit viene considerata sufficiente per compiti normali mentre l'NSA specifica che per documenti Top secret la chiave deve essere di 192 o 256 bit.
Nel 2003 l'U.S. National Institute for Standards and Technology, NIST, ha proposto di abbandonare tutte le chiavi a 80 bit entro il 2015.

## Lunghezza chiave negli algoritmi asimmetrici

L'efficacia degli algoritmi a chiave pubblica deriva dall'intrattabilità di alcuni problemi matematici sia dal lato teorico che pratico come per esempio il problema della fattorizzazione in numeri primi. Chiavi accettabili per questi problemi sono numeri formati dalla moltiplicazione di numeri primi di grandi dimensioni e quindi non tutti i numeri sono adatti. Per impedire un attacco a forza bruta bisogna scegliere delle chiavi talmente lunghe da contenere moltissimi numeri primi di grandi dimensioni e quindi le chiavi utilizzate da questa categoria di algoritmi sono molto più lunghe di quelle utilizzate dagli algoritmi a chiave simmetrica. Per esempio per ottenere una resistenza equivalente agli algoritmi tipo AES o IDEA la RSA consiglia chiavi lunghe almeno 1024 bit.
Nel 2003 la RSA ha dichiarato che una sua chiave a 1024 bit è equivalente a una chiave simmetrica a 80 bit. Una sua chiave a 2048 bit è equivalente a una chiave simmetrica a 112 bit e la chiave a 3072 bit è equivalente a una chiave a 128 bit. RSA raccomanda di utilizzare chiavi ad almeno 1024 bit se si intende mantenere sicuri i documenti fino al 2010 e di utilizzare una chiave a 2048 bit se si vogliono documenti sicuri fino al 2030. La chiave a 3072 è indicata per i documenti che devono rimanere sicuri oltre il 2030. Un documento della NIST definisce una chiave asimmetrica a 15360 bit equivalente a una chiave simmetrica 256 bit.
Un'altra tipologia di algoritmi asimmetrici sono basati sulle curve ellittiche o ECC. Questi algoritmi richiedono chiavi con una lunghezza simile a quella degli algoritmi simmetrici a parità di sicurezza. Per esempio una chiave ECC a 224 bit è considerata sicura come una chiave simmetrica a 112 bit. Attualmente il migliore attacco a forza bruta è riuscito a forzare una chiave ECC a 109 bit.
Tutte le considerazioni di questo paragrafo partono dal presupposto che non vi siano nei prossimi anni rivoluzioni nel campo della matematica che permettano di risolvere in modo rapido il problema della fattorizzazione in numeri primi o i problemi associati alle curve ellittiche.