Quanto è veloce rinforzare una chiave a 48 bit con la tecnologia attuale?

3

Supponiamo di avere una chiave esadecimale veramente casuale formattata come 1234.5678.ABCD, con entropia a 48 bit. Supponendo che la chiave sia memorizzata senza hashing / salting, quanto veloce / facile sarebbe la forza bruta con l'hardware corrente ? Sono interessato a 2 diversi scenari:

  • Attaccante con un budget di $ 1000
  • Attaccante con budget di $ 1M

Punti bonus se puoi fornire fonti.

    
posta John Blatz 15.03.2016 - 08:49
fonte

2 risposte

4

Un giorno, immediatamente.

48 bit non sono un bel po ', anche solo generare (che di per sé non ha molto senso) che molte chiavi siano molto veloci. Anche un'implementazione di CPU single-threading ingenua su un desktop computer scadente (nemmeno lontanamente vicino a $ 1000) potrebbe farlo in un giorno o due.

Per essere significativo, devi fare qualcosa con questi tasti per verificarli. Viene esplicitamente menzionato "no hashing / salting" nella domanda, quindi si può tranquillamente supporre che non sia necessario eseguire costose derivazioni di chiavi (si pensi a beecrypt o simili) che rallenta artificialmente. Pertanto supporrò che sia necessario decrittografare un blocco di AES e confrontare il risultato con un testo in chiaro noto.

Questo articolo ha richiesto 11 Gbps su un'implementazione CUDA 6 anni fa, che avrebbe dovuto bollire fino a circa 4 giorni per la forzatura bruta della chiave a 48 bit. Supponiamo che un impianto di perforazione con una classe media superiore corrente o GPU di alta classe sia 3-5 volte più veloce e siamo approssimativamente un giorno per il tuo budget di $ 1000 (da dare o da fare poche ore, rende nessuna differenza).

Un attaccante del budget di $ 1M potrebbe ingenuamente fare lo stesso attacco con 1000 macchine, il che richiederebbe una quantità minima di comunicazione tra i nodi (aggiungere alcuni millisecondi) e metterlo a circa 1 1/2 minuti, dare o prendere alcuni sec.

Se tuttavia si presume che un attaccante con un budget di questo tipo sia serio per l'attacco, è necessario presumere che venga usato qualcosa di meglio. Un cluster HPC viene in mente come la prossima soluzione ingenua, ma perché non investire in FPGA?
Se sei serio, puoi facilmente ottenere 10 o 100 volte più velocemente della soluzione "usa semplicemente 1000 desktop" per gli stessi soldi. Supponiamo che ci assumiamo 100 volte più velocemente e che siamo a 0,9 secondi. Perché assumere? Bene, perché non fa più differenza a questo punto.

In pratica, non importa se un attacco impiega 9 secondi, 0,9 secondi o 0,00009 secondi. Cadono tutti sotto all'istante . Qualunque cosa tu possa spezzare in 9 secondi è condannata.

    
risposta data 15.03.2016 - 11:26
fonte
0

Dato che 48 bit hanno combinazioni 2.81475e14 e che è possibile generare qualche miliardo al secondo, non dovrebbe richiedere più di un giorno. Un giorno = 86400 secondi.

    
risposta data 15.03.2016 - 09:05
fonte

Leggi altre domande sui tag