Nota: questa domanda nasce esclusivamente da un interesse teorico nella ricerca sulla sicurezza.
Spesso nella fiction popolare vediamo che gli hacker dei cappelli bianchi decifrano le informazioni segrete in pochi secondi. Mentre questo ovviamente non è probabile nel mondo reale, mi ha fatto pensare a come si potrebbe effettivamente andare su un tale processo, dato che abbiamo il testo cifrato ma non la chiave.
Il primo oggetto di decrittografia dei dati sconosciuti sarebbe stato scoprire quale algoritmo era stato usato. Non è troppo lontano dall'immaginazione che potremmo essere in grado di ottenere queste informazioni, ad esempio, è possibile ipotizzare che alcuni protocolli standard siano stati probabilmente utilizzati in particolari situazioni (come SSL / TLS su un e- transazione commerciale). È persino ipotizzabile che potremmo anche conoscere la lunghezza della chiave.
Il secondo oggetto principale è la quantità di tempo che impiega per forzare la forza bruta tutte le combinazioni possibili. Questo è spesso citato come una strong ragione per la sicurezza della crittografia (con una lunghezza della chiave adatta). Tuttavia, diciamo che abbiamo il testo cifrato, l'algoritmo e la lunghezza della chiave (ma non la chiave), così come un computer molto potente capace di forzare brutemente l'intero insieme di possibili chiavi in un ragionevole lasso di tempo. / p>
La domanda è: visto che non sappiamo (ovviamente) quale sia il testo in chiaro, come facciamo a sapere quando abbiamo infranto la crittografia? Una cosa è enumerare tutte le decodifiche possibili dei dati, ma come possiamo determinare quale di questi candidati nel vero testo in chiaro?