Ho un documento crittografato con una chiave simmetrica. L'unica informazione che ho è che la chiave è più corta di 64 bit.
C'è un modo per decodificarlo? Se sì, come?
Per decodificare il messaggio, devi sapere più della chiave; devi anche conoscere lo schema di crittografia, la modalità di crittografia, il vettore di inizializzazione, ecc. Nessuno di questi dovrebbe essere segreto; la chiave e il messaggio in chiaro sono gli unici due segreti nella maggior parte della crittografia a chiave simmetrica (e come è stato affermato nei commenti, a causa dei requisiti del protocollo e di altre formattazioni inerenti alla maggior parte dei dati, il testo in chiaro non è completamente segreto).
Questi due segreti sono sufficienti: secondo i documenti di Wikipedia per AES, l'attacco di forza bruta di maggior successo contro qualsiasi algoritmo simmetrico era contro un'implementazione RC5 a 64 bit, che richiedeva fondamentalmente una botnet "white-hat" non-profit Distributed.net per fornire un tempo CPU sufficiente per provare tutte le 18.446.744.073,709,551,616 chiavi possibili nello spazio delle chiavi a 64 bit (cioè 18,4 quadrilioni di chiavi, mettendo in contesto, l'output economico totale stimato della razza umana nella storia registrata è solo circa 2,4 quadrilioni di dollari USA). Usando circa 2.700 computer "volenterosi" nella botnet, ci sono voluti cinque anni per decifrare il codice. E la maggior parte degli algoritmi simmetrici comuni oggigiorno (Rijndael / AES, Blowfish / Twofish, Serpent, Triple-DES) usano i tasti almeno due volte così a lungo, producendo uno spazio chiave di circa 3.4x10 38 (340 undecillion ) possibilità. La fattibilità di una forza bruta diventa rapidamente impossibile; data una dimensione in più che raddoppia a una chiave a 256 bit (che è usata in alcuni schemi), supponendo che potremmo, iniziando adesso, costruire una sfera di Dyson attorno al nostro Sole e intrappolare ogni fotone del piano dell'eclittica (l'orbita del nostro pianeta ) con perfetta efficienza, e quindi costruire un computer a livello di elettroni con una perfetta efficienza termica alimentata dalla sfera di Dyson e impostarla per provare la chiave bruta, il Sole si oscurerebbe prima che il computer terminasse di provare ogni tasto (il Sole sarebbe fallire da qualche parte attorno a 2 218 chiavi).
Anche se il codice che utilizzavano era vulnerabile, gli attacchi crittanalitici più noti contro cifrari non completamente interrotti richiedono quello che è noto come un "testo in chiaro" o "testo in chiaro", in cui l'utente malintenzionato può vedere o persino scegliere i messaggi in chiaro da inserire nel codice. La maggior parte di questi attacchi riduce ancora la complessità di rompere il codice con un piccolo numero di potenze di due; per esempio, una cifratura a 64 bit, che richiederebbe 2 ^ 64 tentativi di forza bruta, potrebbe essere fendibile se si vedesse, forse, 2 ^ 44 blocchi a 64 bit che vengono inseriti nell'algoritmo usando la stessa chiave, e vedere l'output del testo cifrato. Tecnicamente, questo è un "attacco" perché è più efficiente di una forza bruta. Ma richiede di alimentare 128 terabyte di dati attraverso l'algoritmo, senza conoscere la chiave (il che probabilmente significa che lo stai alimentando attraverso l'unica macchina che esegue la crittografia per qualcun altro, che alla fine destare sospetti).
In sintesi, con un testo cifrato, nessun testo in chiaro e nessuna chiave, non ci sono possibilità.
Praticamente tutti gli hacker di successo oggigiorno trovano l'anello più debole della catena (il computer umano, non protetto che sta usando l'umano, o l'errata implementazione dell'algoritmo di crittografia sul computer che l'umano sta usando), e sfruttano che invece, attraverso keylogger, social engineering, ecc.
Quindi, se questo gioco dovesse iniziare per davvero, ti suggerirei di installare un programma sul computer che il tuo amico userà per generare la chiave e crittografare il testo in chiaro, che trasmetterà il testo in chiaro e / o la chiave a te così come è digitato dal tuo amico. MOLTO più facile, e più veloce, di rompere il codice. Oppure, se la chiave è basata su una stringa ASCII, puoi rapire il tuo amico, bloccarlo nel seminterrato e utilizzare una sorta di tecnica di interrogatorio dolorosa ma non dannosa fino a quando non la abbandona.
No. Questo è praticamente l'intero punto della crittografia. Non hai alcuna possibilità di recuperare il documento senza la chiave, supponendo che sia stato usato un algoritmo decente e che sia stato utilizzato uno schema di generazione di chiavi adatto.
Leggi altre domande sui tag encryption