Quanto tempo impiegherebbe un singolo processore con il set di istruzioni AES-NI per bruteforce una chiave AES?

2

So che sembra una domanda stupida - dal momento che è fattibile rompere AES senza un computer quantistico ma sono comunque curioso.

Ho letto su wikipedia che l'attacco più noto su AES-128 richiede 2 ^ 126 operazioni. Quanto tempo impiegherebbe un processore moderno per potenziare la chiave?

Continuo a perdere il mio treno di pensieri quando provo a confrontare i 3,5 cicli per AES-byte (set di istruzioni AES-NI (vedi wikipedia) per il Ghz fornito da un processore moderno. Wolfram Alpha non può convertire quelle unità.

Quante operazioni possono processare un processore high-end al secondo?

    
posta theXs 20.10.2012 - 16:18
fonte

2 risposte

8

Per calcolare questo è necessario:

  • La dimensione del blocco (16 byte)
  • Costo per byte (1,30 cicli per byte)
  • Frequenza della CPU (3,8 GHz)
  • Numero di core (2)
  • Numero di tasti (2 ^ 128)

Sto usando "amd64; Piledriver (610f01); AMD 2012 A10-5800K; 2 x 3800MHz; hydra9, supercop-20121016" da eBACS come mio esempio di CPU.

Per calcolare le chiavi testate al secondo, calcola:

(cpu-frequency * number-of-cores) / (block-size * cost-per-byte) =
(3.8E9 * 2) / (16*1.3) =
6.70E8 =
670 million

Per ottenere le chiavi testate all'anno ottieni:

 keys-per-second * seconds-per-year =
 6.70E8 * (365 * 24 * 3600) =
 2.11E16

Ciò corrisponde all'interruzione di una chiave a 54 bit in un anno.

Per ottenere quanto tempo occorre, dividi la metà del numero di chiavi totali per il numero di tasti che provi per anno, il che ti dà circa 10 ^ 22 anni, il che è praticamente infinito poiché l'universo è solo di circa 10 ^ 10 anni.

Ma nessun attaccante sano avrebbe usato una CPU del genere. Usava hardware specializzato che è molto più efficiente di una CPU generica. Ma anche con questo tipo di hardware, l'AES forcing brutale è ben oltre ciò che l'umanità può attualmente permettersi.

    
risposta data 20.10.2012 - 16:40
fonte
-1

To get the keys tested per year you get:

keys-per-second * seconds-per-year =
6.70E8 * (365 * 24 * 3600) =
2.11E16

Sì, sarebbe se la CPU dovesse andare in testa e provare tutte le permutazioni delle espansioni chiave.

Ma - c'è un altro modo - tentare di indovinare provando ogni password possibile - c'è comunque un periodo di setup significativo ogni volta che passi ad una nuova password - poiché c'è il processo di espansione della chiave che deve essere fatto, dove ogni password viene estesa dai caratteri della password a una lunghezza uniforme, ovvero questa chiave espansa utilizzata per decodificare il flusso.

How long would it take a single Processor with the AES-NI Instruction Set to brute-force an >AES Key?

Poiché il modo in cui AES codifica i blocchi - l'autore dell'attacco dovrebbe quindi solo provare ogni possibile password per provare a decodificare i primi byte dei dati crittografati, piuttosto che l'intero file - e solo se sembra un buon header di file o testo semplice - quindi può testare qualche altro blocco per verificare che la password sia ok.

Utilizzando le nuove istruzioni AES su una CPU Intel laptop con poche specifiche- circa 10-15 milioni di tentativi di password (Key Expansion + decrypt 16 byte) al secondo per thread è facilmente realizzabile.

Ci sono ottimizzazioni che possono essere applicate (come fare più password alla volta - usando la modalità threading o pipeline) - e hai fino a 12 thread da usare in alcuni PC ad alta potenza.

Quindi, tutto dipende dalla password scelta: una password di 6 cifre potrebbe essere interrotta in pochi minuti o addirittura secondi - 7 cifre in meno di un giorno.

characters password can contain:    67   (a-z A-Z and usual 'leet' special characters)
Typical 7 digit password:       67 ^ 7
Passwords per sec per thread:   15,000,000
(67 ^ 7 / 15M/s )= 112 hours
Now use 4 threads of a I7 CPU:  = 112/4 hours= about 28 hours (MAX time)

Le password più lunghe e più caratteri renderanno più difficile Puoi anche ottenere un risultato simile o migliore usando CUDA (Graphics Card Computing). Più PC naturalmente ridurranno anche il tempo necessario. Potrebbe essere fortunato e ottenere la password nei primi tentativi ...

    
risposta data 15.03.2013 - 11:53
fonte

Leggi altre domande sui tag