PROBLEMA BRUTE FORCE INTELLIGENTE

Dolfo91

Utente Attivo
69
3
CPU
Intel (R) Core (TM) 2 Duo E6400
Scheda Madre
Cuba MS-7301
HDD
320 GB
RAM
2048 MB
GPU
ATI Radeon HD 4670
OS
Windows XP Media Center Edition
esatto.
per il calcolo, mi hai detto che per 3 caratteri il sistema impiega 15 secondi a calcolare 6 possibili combinazioni, giusto? quindi per calcolare una combinazione il sistema impiega 2.5sec (=15/6). fin qui
dovrebbe essere tutto chiaro.
una stringa di 10 caratteri genera 10! combinazioni,
ovvero detto in altri termini 10×9×8×7×6×5×4×3×2x1
=3628800 combinazioni. Il
tempo unitario era 2.5sec; quindi 3628800×2.5
=9072000 sec e' il tempo
totale. Si esegue quindi una conversione, dunque 9072000/60(sec)/60(min)/24(ore) si ottengono 105 giorni.

In realta' contiene dei grossi errori ed e' un tempo molto
sovrastimato perche':
- nei 15 secondi che il sistema impiega per trovare 3 soluzioni il sistema compie delle azioni di contorno (es. allocazione memoria, trasferimento dati dalla memoria alla cpu, comunizioni del dato all'output...). Il tempo che la cpu effettivamente impiega ad effettuare il calcolo sara' non so di 6 sec forse;
- il tempo poi sicuramente dipende dalla cpu (marca, modello e tecnologia di funzionamente)
- c'e' poi da considerare che tutte le moderne cpu non funzionano sempre a pieno regime, ma per la maggiorparte del tempo funzionano in modalita' di risparmio energetico, ma se esegui un applicativo pesante il sistema attinge al resto dei core che non usa o aumenta la frequanza a seconda del tipo, in soldoni il tempo di calcolo si riduce a 3 sec. quindi 0,5 sec per combinazione. Rifacendo il calcolo ti vengono 21 giorni.
Attenzione pero' che io ho sparato dei numeri... che comunque cosi' a occhio sinceramente mi pare sempre molto esagerato. Il funzionamento di una cpu moderna e' molto molto complesso.
Quei 15 sec con quale linguaggio l'hai ottenuto? per avere dei paragoni hai rieseguito un programma in C?
Scusatemi ragazzi, ma non riesco a capire perchè sono stati più volte citati in questa discussione i numeri fattoriali quando a mio umile avviso non hanno niente a che fare con l'argomento in questione. Vi spiego il perchè (qualora vi fosse qualche errore vi prego di farmelo notare): prendendo ad esempio come dominio di riferimento il sistema dei numeri decimali, in una stringa numerica lunga un sola cifra si possono avere 10 risultati differenti ossia 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Se invece prendessimo in esame una stringa numerica lunga due cifre, avremmo 100 risultati differenti ovvero da 00 = 0 a 99. Nel primo caso la quantità corrisponde a 10^1 mentre nel secondo 10^2. Come già scritto in qualche post precedente, il tutto si può generalizzare con la formula m^n, dove con n si indica la lunghezza della stringa e con m la quantità di tutti i caratteri utilizzati all'interno della stringa. Nello script da me scritto, m = 62: comprende tutte le lettere dell'alfabeto (26) maiuscole e minuscole più tutti i numeri decimali. Lo stesso script genera tutte le possibili stringhe lunghe 3 caratteri ovvero 62^3 = 238.328 combinazioni. Da queste ultime elimina, inoltre tutte le combinazioni in cui vi sono due caratteri vicini identici: considerando tale condizione, eccetto il primo componente che è libero di stampare tutti i 62 caratteri possibili, tutti gli altri possono stamparne ognuno eccetto quello presente nella componente precedente, quindi 61. Il mio script genera quindi (61^2)*62 = 230.702. La frequenza di generazione delle stringhe quindi equivale a 230.702 / 15 sec. = 15.380 al secondo; naturalmente, questo rate è legato alle capacità computazionali della mia macchina che è abbastanza datata. Stampandone 15.400 al secondo, arrotondando per eccesso, la mia macchina, quindi, per stampare tutte le possibili stringhe da 10 caratteri, ossia (61^9)*62 = 7,25*10^17, avrebbe bisogno di 47.080.328.425.695 secondi. Da questa cifra, con gli stessi calcoli da te effettuati, si ricava quella cifra tendente al 1,5 milioni che ho citato sopra. Sicuramente i più recenti processori sono in grado di elaborare molti più dati nello stesso lasso temporale ma anche se fossero in grado di generare ipoteticamente 1 milione di stringhe al secondo - quasi 65 volte la mia macchina - ci vorrebbero comunque 23 mila anni circa per concludere l'esecuzione dello script. Tempistiche assurde, in ogni caso.
Ecco perchè una semplice password di 8-10 caratteri con qualche lettera maiuscola e numero è ritenuta già molto robusta.
 
Ultima modifica:
M

Mursey

Ospite
Un'altra cosa che mi sfugge e':
ma come password avevi messo una parola a caso ?

Di solito si usano anche complesse ma che comunque abbiano un senso per te, oppure se ne usano 4/5 ma sempre quelle.

Come fai a non ricordare nulla di questa password ??
 

Reysan

Utente Attivo
151
33
CPU
AMD Phenom II X6 1035T
Scheda Madre
Asus M3N78-VM
HDD
OCZ SSD III 240GB
RAM
DDR II 1066 MHz HyperX ~ 8GB
GPU
Nvidia Geforce 8200 500 MB Shared
Audio
Integrata
Monitor
Philps LCD 22"
PSU
Cinesata
Case
Vecchio cassettone
OS
W7 && Openmamba
Allora. Stiamo parlando di fattoriale, perchè in uno dei primi post hai affermato di conoscere tutte le lettere che compongono la password. Ma non sapevi come combinarlo assieme. In questo caso la soluzione è diversa. Se devi trovare tutte i possibili anagrammi della parola 'ciao' hai 4! combinazioni. Diverso è se devi trovare tutte le possibili password inseribili in una stringa di 4 caratteri. In quest ultimo caso si che fai 62^4.
La tua casistica qual é?
Il tuo calcolo sembrerebbe teoricamente corretto, in pratica peró potresti avere tempi molto minori se lanci il programma e lo lasci lavorare per un po..
 
  • Mi piace
Reazioni: PowPaw

cdtux

Utente Èlite
1,829
911
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
HDD
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
GPU
Gigabyte GTX1060 6GB
Monitor
Dell U2412M
PSU
Seasonic Focus Plus 650
Case
Corsair Graphite 760T
OS
Debian / Ubuntu
Visto che si parlava di script per generare un elenco combinazioni di password, vi segnalo questo software che ho usato un paio di volte per creare delle wordlist per attacchi dizionario.
Una grossa comodità di questo software è che anticipa la dimensione futura del file che andrà a creare, così si può annullare l'operazione se il file sarà di dimensioni mastodontiche.
Il software è open ed è possibile leggere i sorgenti per vedere come crea le varie combinazioni.

In caso fosse vietato dal regolamento postare link di questi tipi di software, segnalatemelo così provvedo a rimuovere tutto. Grazie
 

Dolfo91

Utente Attivo
69
3
CPU
Intel (R) Core (TM) 2 Duo E6400
Scheda Madre
Cuba MS-7301
HDD
320 GB
RAM
2048 MB
GPU
ATI Radeon HD 4670
OS
Windows XP Media Center Edition
Allora. Stiamo parlando di fattoriale, perchè in uno dei primi post hai affermato di conoscere tutte le lettere che compongono la password. Ma non sapevi come combinarlo assieme. In questo caso la soluzione è diversa. Se devi trovare tutte i possibili anagrammi della parola 'ciao' hai 4! combinazioni. Diverso è se devi trovare tutte le possibili password inseribili in una stringa di 4 caratteri. In quest ultimo caso si che fai 62^4.
La tua casistica qual é?
Il tuo calcolo sembrerebbe teoricamente corretto, in pratica peró potresti avere tempi molto minori se lanci il programma e lo lasci lavorare per un po..
Allora chiedo scusa visto che il particolare da te menzionato deve essermi sfuggito. Di fatto, se l'OP ricorda non solo la lunghezza della stringa ma anche i caratteri utilizzati e se essi, per di più, non sono ripetuti, l'ammontare delle stringhe possibili si "riduce" effettivamente ad un numero fattoriale. Allora in tal caso, una stringa di 13 caratteri avrebbe 13! diverse combinazioni e devo dire che una simile quantità sarebbe teoricamente calcolabile in 2-3 giorni da un computer mediamente performante. Un qualcosa di fattibile, insomma!
 
Ultima modifica:

PowPaw

Utente Èlite
4,430
1,431
CPU
Amd fx 6300 @4.1 Ghz
Scheda Madre
Asus m5a97 le r2.0
HDD
Kingston SSDNow V300 (120gb) / WD caviar blue (1 tb)
RAM
Corsair vengeance 2x4 gb @1600 Mhz
GPU
Asus r9 270x DirectCU II
Audio
Integrata
Monitor
Samsung SD320
PSU
Thermaltake Berlin 630W (Sirtec, per fortuna)
Case
Itek Furia G5 (Noooo!!!)
OS
Win 7 Home Premium
Le probabilità si calcolano con i fattoriali considerando le lettere o tutte maiuscole o tutte minuscole. Se ci fosse anche la distinzione tra maiuscole e minuscole... Beh... Rimarrebbe un casino xD
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!