quanto tempo ci vuole per la forza bruta che varia gli standard di crittografia?

2

Diciamo che voglio crittografare le informazioni in un database. Quale sarebbe il miglior algoritmo di crittografia da utilizzare e perché. Stavo pensando AES, dal momento che è ampiamente utilizzato come standard governativo, ma se il database è suddiviso, non sono sicuro di quanto tempo occorrerebbe per forzare la tua strada verso le informazioni originali.

Quale sarebbe il modo migliore per archiviare tali dati. Non posso usare l'hashing: il requisito è che sia crittografato.

    
posta Jeremiah Twidwell 02.07.2012 - 04:49
fonte

3 risposte

5

Forza brutale è il più stupido degli attacchi. È l'equivalente di una scimmia che colpisce ripetutamente una noce di cocco con una pietra fino a quando non si rompe (la noce di cocco, non la pietra). Se sostituisci la noce di cocco con una cassastrong in acciaio, la scimmia sarà sconfitta. "In fin dei conti", la scimmia poteva colpire l'acciaio, se solo fosse riuscito a colpirlo per (molto) più a lungo della sua vita. Ma non può: sarà morto molto prima di aver sostanzialmente ammaccato l'acciaio.

Ciò di cui dovresti preoccuparti non è la forza bruta. Un attaccante brutale impone tutte le possibili chiavi finché non diventa fortunato. È sufficiente avere un numero sufficiente di chiavi possibili per rendere tale attacco impossibile; "molte possibili chiavi" traducono in "chiavi sufficientemente lunghe": per la crittografia simmetrica, una chiave è solo una sequenza di bit di una determinata dimensione, e qualsiasi sequenza di esattamente tanti bit è una chiave valida; pertanto, una chiave a 128 bit è più che abbastanza grande da ottenere un'adeguata resistenza contro la forzatura bruta (con un margine equo ). Se utilizzi AES , la dimensione minima della chiave è di 128 bit (l'algoritmo non può fare di meno lo stesso), quindi non preoccuparti .

I problemi riguardano piuttosto come usi l'algoritmo di crittografia. Questa è una questione di sottigliezza ed è molto facile da neutralizzare, lasciando la porta aperta agli aggressori più intelligenti della scimmia media. Come minimo, dovresti definire chiaramente cosa stai cercando di difendere, chi dovrà crittografare i dati, chi avrà bisogno di decodificare i dati e come saranno gestite le chiavi (generazione, archiviazione, accesso, distruzione).

Ovviamente, se hai solo bisogno di crittografia per scopi regolatori, allora basta aggiungere un po 'di AES. Non sarebbe la prima volta che viene applicata la crittografia senza una cosa del genere che abbia un senso. La soluzione migliore, in questo caso, sarebbe Crittografia dati trasparente implementata in Oracle e SQL Server. TDE ha buone prestazioni (non te ne accorgerai) e non altera il formato della tabella, quindi le applicazioni possono utilizzarlo in modo trasparente (da cui il nome). TDE protegge da violazioni della riservatezza da parte di aggressori che ottengono un accesso in lettura alla parte rilevante del disco rigido (ad esempio, aggressori che rubano un vecchio nastro di backup). È qualcosa.

TDE, o qualsiasi quantità di crittografia, ovviamente non dissiperà magicamente tutte le vulnerabilità. La crittografia è una scienza, non una magia.

    
risposta data 04.10.2012 - 04:40
fonte
1

Il tempo necessario varia ampiamente. Ma puoi aumentare il tempo necessario per crittografare e decifrare scegliendo di eseguire più cicli di crittografia con la stessa chiave e l'algoritmo di crittografia, potresti anche scegliere più turni con algoritmi diversi.

Un esempio di quest'ultimo è TrueCrypt, ti permette di fare più algoritmi di algoritmi diversi accatastati insieme.

Informazioni AES dal link

All known attacks are computationally infeasible. For AES-128, the key can be recovered with a computational complexity of 2126.1 using bicliques. For biclique attacks on AES-192 and AES-256, the computational complexities of 2189.7 and 2254.4 respectively apply. Related-key attacks can break AES-192 and AES-256 with complexities 2176 and 299.5, respectively.

Informazioni DES del link

DES is now considered insecure because a brute force attack is possible (see EFF DES cracker). As of 2008, the best analytical attack is linear cryptanalysis, which requires 243 known plaintexts and has a time complexity of 239–43 (Junod, 2001).

Informazioni su Blowfish al link

Informazioni su Blowfish da link

Four rounds of Blowfish are susceptible to a second-order differential attack (Rijmen, 1997);[1] for a class of weak keys, 14 rounds of Blowfish can be distinguished from a pseudorandom permutation (Vaudenay, 1996).

    
risposta data 02.07.2012 - 06:57
fonte
0

Prendendo AES-128 come esempio, hai una chiave a 128 bit. Lo "stupido" attacco di forza bruta richiede di controllare ogni possibile chiave a 128 bit finché non si ottiene un testo normale che abbia senso. Ci sono 2 ^ 128 possibili chiavi e quindi la complessità della forza bruta su AES-n, dove n rappresenta la dimensione della chiave è O (2 ^ n).

Ora ovviamente ci sono modi per limitare il problema dando uno spazio di ricerca ridotto come citato nelle risposte precedenti, ma quella non era la domanda: P

Per darti un'idea del tempo in cui ho appena eseguito un problema O (n ^ 2) sul mio macbook pro 2012 e ci sono voluti 1 minuto per risolverlo con n = 30. Questo implica:

n = 31 - > 2 min

n = 32 - > 4mins

...

n = 64 - > 33 millenni!

    
risposta data 14.08.2015 - 17:33
fonte

Leggi altre domande sui tag