La casualità è in realtà: ciò che l'attaccante non sa . Pertanto, le chiavi di crittografia sono esattamente una cosa in cui è necessaria molta casualità.
Di solito parliamo di entropy nel seguente modello:
- La chiave viene generata con un processo che comporta calcoli (codice) e input casuali (raccolti da elementi fisici).
- L'autore dell'attacco dovrebbe avere una perfetta conoscenza dei calcoli, ma non degli input casuali.
- L'attaccante proverà a recuperare le chiavi provando le possibili chiavi nell'ordine ottimale, iniziando dal più probabile.
Diciamo che la chiave ha n bit di entropia se l'attaccante colpirà quella giusta dopo, in media, 2 n -1 cerca. Nota che una chiave di n , dove tutti i bit chiave sono casuali in modo uniforme e indipendente, raggiunge esattamente n bit di entropia, che è il punto della notazione.
Una conseguenza è che non puoi avere più di n bit di entropia in una chiave di n bit (quindi un tasto DES può < em> mai essere più strong di 56 bit di entropia, che è troppo basso per il comfort come sottolinea @drJimbob); ma puoi avere molto meno. Ad esempio, se il processo di generazione della chiave riguarda l'ottenimento di un numero intero a 32 bit casuale, eseguendo l'hashing con SHA-1 e mantenendo i primi 56 bit dell'output, l'entropia non sarà più di 32 bit (un utente malintenzionato potrebbe tentare tutti possibili valori a 32-bit, eseguendo l'hashing di ognuno di essi: questo colpirà il tasto giusto con un costo medio massimo di 2 31 ).
In generale, usi i sistemi di crittografia simmetrica con le chiavi n -bit (es. n = 128 per AES) e vuoi ottenere il tuo denaro, vale a dire n -bit entropia. Questo è il vero motivo per cui usi le chiavi a 128 bit: per creare spazio sufficiente per l'entropia per sconfiggere tutti gli attaccanti terrestri. A volte accettate di usare meno entropia perché la vostra fonte per la chiave è un pezzo di dati che non può essere sviluppato arbitrariamente: in particolare quando le chiavi derivano da password . Le password non raggiungono un'alta entropia perché le menti umane non sono brave a ricordare password altamente entropiche (e sono abissalmente cattive a generare password casuali).
Quando elabori un elemento dati attraverso una funzione di derivazione della chiave deterministica, non aumenti mai l'entropia, poiché, per definizione del nostro modello di attacco, l'utente malintenzionato potrebbe eseguire la stessa funzione di derivazione della chiave deterministica. Potresti, tuttavia, abbassare l'entropia, se lo fai senza cura. I KDF con crittografia avanzata non abbassano l'entropia al di sotto del limite implicito dalla dimensione della chiave (una chiave a 56 bit non può mai contenere più di 56 bit di entropia).