In crittografia, lo spazio delle chiavi di un algoritmo indica l'insieme di tutte le possibili chiavi che possono essere utilizzate per inizializzarlo. Ad esempio, se un algoritmo lavora usando una chiave che è una stringa di 10 bit, allora il suo spazio delle chiavi è l'insieme di tutte le stringhe binarie di lunghezza 10 ( possibili chiavi).
Per evitare che gli attaccanti possano recuperare la chiave utilizzando un attacco a forza bruta, lo spazio delle chiavi è in genere progettato per essere estremamente vasto. Lo spazio delle chiavi deve inoltre essere piatto (o flat, secondo la terminologia inglese), vale a dire che non deve avere (o deve averne pochissime) chiavi deboli.
Esempi
[modifica | modifica wikitesto]Il cifrario a blocchi Rijndael (o AES) utilizza una chiave lunga fino a 256 bit, con il risultato che lo spazio delle chiavi è composto da più di 1,1579×1077 chiavi. Questo comporta il fatto che è computazionalmente impossibile controllare con la forza bruta tutte le possibili chiavi.
Nel cifrario a blocchi DES, viene usata una chiave di 56 bit, con il risultato che le possibili chiavi sono solo , quindi uno spazio delle chiavi calcolabile interamente in termini di giorni (il progetto EFF DES cracker recupera una chiave DES in meno di 1 giorno).
I vecchi cifrari polialfanumerici (come il Cifrario di Vigenère) avevano un massimo di chiavi, dove n è la lunghezza della chiave.
Il cifrario ROT13 è usato soltanto per evitare che le persone leggano accidentalmente alcuni messaggi (ad esempio la trama di un film o la soluzione di un enigma).
Poiché il ROT13 è un cifrario monoalfabetico, non è presente alcuna chiave, per cui lo spazio delle chiavi è conseguentemente vuoto; esso ha infatti solo il numero di lettere dell'alfabeto impiegato e corrisponde al cifrario di Vigenère con (), ovvero 26 chiavi diverse.