Quanto tempo impiegherebbe a bruteforce un pdf protetto AES-128 sapendo che la chiave è lunga 20 lettere e che il set di caratteri è A-Z, 0-9?

7

La domanda dice tutto, sapendo che un pdf è protetto usando la crittografia della password Adobe standard fornita con Acrobat Pro (che per quanto ne so è AES 128) quanto ci vorrebbe per applicare una chiave bruteforce che è nota per essere 20 caratteri lunghi e che il set di caratteri è AZ, 0-9? Si prega di assumere per il calcolo un moderno impianto GPU o un cluster GPU per l'Axample Amazon AWS.

    
posta Blobber 18.06.2014 - 15:20
fonte

5 risposte

17

A-Z e 0-9 significano 36 possibili caratteri. 20 di questi caratteri implicano 36 20 chiavi possibili. Questo è approssimativamente uguale a 2 103.4 .

Il più grande sforzo di forza bruta attualmente noto pubblicamente era per una chiave a 64 bit (per RC5, ma la differenza tra RC5 e AES non è importante qui); è descritto qui . Ci sono voluti quasi cinque anni e molti contributori; il picco di cracking rate era equivalente a quello che potevano fare 30000 migliori computer di quel tempo. Naturalmente, questo era un decennio fa, ei computer sono diventati più veloci, ma non al punto di colmare il divario da 2 64 a 2 103.4 : stiamo parlando di un problema che è 725 miliardi di volte più difficile .

GPU non sarebbe una piattaforma molto efficiente per rompere AES; il sistema più economico sarebbe CPU con codici operativi AES-NI . Si noti, tuttavia, che un tasto AES è una sequenza di 128, 192 o 256 bit; non una sequenza di personaggi. Pertanto, i tuoi personaggi sono probabilmente trasformati tramite una sorta di hashing in una chiave AES, e il calcolo della funzione hash sarà probabilmente più costoso rispetto alla stessa chiamata AES. A seconda della funzione di hash utilizzata, la GPU può diventare nuovamente competitiva. In ogni caso, stiamo parlando, nel migliore dei casi, di alcuni miliardi di chiavi al secondo e per GPU. Un miliardi di tale GPU produrrebbe molto calore ... e avrebbe ancora bisogno di miliardi di secondi per passare (un miliardo di secondi è di 30 anni).

Quindi l'unica risposta realistica alla tua domanda è: per sempre . Una chiave del formato che descrivi (20 caratteri in un alfabeto della dimensione 36) non sarà decifrata dalla forza bruta. Forzare brutalmente una chiave del genere non avrebbe senso: anche se fosse tecnologicamente fattibile (che presuppone più risorse di quelle disponibili per i più grandi governi o corporazioni attualmente esistenti), costerebbe molto di più di quello che la chiave sta proteggendo. Per esempio, se possedessi i milioni di miliardi di dollari coinvolti nel processo, allora semplicemente comprerei gli Stati Uniti all'ingrosso (le migliori società, il governo, ... incluso un completo debito nazionale) (cioè, se ci volesse la mia fantasia per possedere effettivamente gli Stati Uniti, che è, quando ci si avvicina, un'idea bizzarra).

(In tutto quanto sopra sto usando il "miliardo" americano, cioè mille milioni, non un milione di milioni.)

    
risposta data 18.06.2014 - 16:20
fonte
2

Bene, prendiamo una velocità media del processore, non eccessivamente sofisticata, facendo crocchiare approssimativamente a 22,004k / s un documento PDF. Supponendo che tu stia solo colando a-z0-9A-Z con spazi, caratteri speciali, ecc.

Ci vorrebbero circa 1 settantennio. o 1.0306281275164522e + 24 anni 33 giorni 7 ore 30 minuti e 54 secondi

La quantità di combinazioni di password che dovresti potenzialmente testare è (7.159713505559651e + 35 combinazioni di password)

Anche in questo caso suppongo che NON utilizzi GPU, Amazons AWS, ecc. Stiamo utilizzando un processore medio. Se si utilizza GPU o AWS, ciò velocizzerebbe notevolmente il cracking. Puoi giocare con i numeri a questo. sito .

Spero che questo abbia risposto alla tua domanda.

    
risposta data 18.06.2014 - 15:54
fonte
0

Per quanto tempo ci vorrebbe, se usassimo uno strumento come crunch per generare la lista di parole da usare per crackare detto file PDF, l'output sarebbe questo:

[root@yokai ~]# crunch 20 20 ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Crunch will now generate the following amount of data: 11388113619364347904 bytes
10860551471104 MB
10606007296 GB
10357429 TB
10114 PB
Crunch will now generate the following number of lines: 2299123893656354816

Con questo possiamo vedere quanti dati devono essere elaborati in un attacco di forza bruta. Sicuro di dire che senza saperne di più sulla password utilizzata, e senza apportare specifici modificatori di generazione per restringere le possibili password, non sarà mai crack in questa vita da pura forza bruta. Forse nemmeno nelle prossime 10-20 vite.

Esiste tuttavia un approccio casuale in cui la prima password potrebbe essere la password corretta. Dite come se aveste usato linux per l'attacco, potreste scrivere uno strumento per attaccare con password complete generate casualmente.

#!/bin/bash

PASS_GEN="$(tr -dc 'A-Z0-9' </dev/urandom | head -c 20)"

echo "$PASS_GEN

while [ "$something" != "$something_else" ]
do
      try_password
done

Ovviamente solo il comando "tr" è il vero comando di funzionamento in questo codice bash ma si ottiene l'idea. È possibile, comunque improbabile, generare la password corretta molto rapidamente.

    
risposta data 17.07.2016 - 07:53
fonte
0

AES128 utilizza esattamente la lunghezza della chiave a 128 bit, 20 caratteri è una password non una chiave, la chiave viene creata dalla password, così come il vettore di inizializzazione (un po 'come un'estensione chiave in qualche modo, per l'uso in modalità CBC AES) Esistono molti metodi per generare la chiave e IV dalla password e anche quelli migliori sono saltati, tuttavia la generazione delle chiavi non fa parte di AES.

La risposta è un tempo medio di 2 127 e massimo 2 128 tentativi.

Supponendo che la modalità CBC (una modalità molto popolare e sicura) i tentativi al secondo varieranno selvaggiamente con la lunghezza del documento, poiché è necessario decrittografare l'intero file e verificare se è privo di senso, separatamente per ogni chiave. Tutte le sequenze a 128 bit sono chiavi AES valide e "decrittografano" il documento, ma tutti tranne uno produrranno dati decrittografati male.

Il blocco di crittografia è di 16 byte. Supponiamo che il PDF sia solo 16 byte e che la GPU decifri a 32GiB / s [2 35 B / s]. (Ho visto un numero simile da qualche parte per le prestazioni di APS gpu) Che sono 2 31 decrittazioni al secondo (supponiamo che la CPU possa anche analizzare l'output senza senso che velocemente) Quindi una media di 2 127 / 2 31 = 2 96 secondi e max 2 97 secondi, che è 2.5e21 anni significa, 5e21 max. 21 zeri sono un sacco di zeri. Dividere il carico tra un milione di dispositivi ed è 2,5 e 15 anni o 25 milioni di milioni. E poi hai AES-256.

Quindi potresti anche essere fortunato e scoprire che è la prima chiave che provi. Le probabilità della lotteria Powerball sono una su 300 milioni. Le probabilità di ottenere la chiave corretta nei primi 1.7e13 anni sono 1 su 300 milioni [con una singola macchina], con un milione di macchine che il tempo scende a 1,6e7 o 16 milioni di anni

    
risposta data 19.06.2018 - 11:27
fonte
0

L'unico attacco che non richiede milioni di anni richiede un sacco di soldi.

  • Costruisci un cracker AES a 32 nm
  • Costruisci 50 circuiti integrati per realizzare questi chip
  • Spendi un anno a fare chip
  • Crea un gigantesco cluster di sistemi
  • Esegui il cluster per 1 anno

Si noti che il costo di R & D sul chip sarà ovunque da $ 50 a $ 250 milioni, gli impianti saranno $ 1-2 miliardi ciascuno e i costi operativi saranno in miliardi. Inoltre, stiamo usando 32 nm perché una soluzione di < 20 nm moltiplica i costi di 5 volte. Realisticamente, ottenere tutte le parti e le persone per 50 piante avrebbe messo a dura prova il chip GLOBAL.

    
risposta data 17.07.2016 - 03:50
fonte

Leggi altre domande sui tag