Ik kan niet goed rekenen, maar misschien iemand anders hier op het forum wel. Ik ben erg benieuwd hoeveel combinaties er mogelijk zijn van een gebruikersnaam en wachtwoord met dezelfde lengte, en hoelang een computer er over zou doen om alle combinaties te berekenen. Ik ben benieuwd hoe dat zit als je alleen letters en cijfers mag gebruiken... en wanneer je alle tekens mag gebruiken. Ik zet hier een schemaatje neer en ben benieuwd of iemand er iets van kan invullen. Wie durft? :-)

gebruikersnaam en wachtwoord zijn allebei 4 tekens, alleen letters en cijfers
aantal mogelijke combinaties:
computer tijdsduur om alle combinaties te berekenen:

gebruikersnaam en wachtwoord zijn allebei 6 tekens, alleen letters en cijfers
aantal mogelijke combinaties:
computer tijdsduur om alle combinaties te berekenen:

gebruikersnaam en wachtwoord zijn allebei 8 tekens, alleen letters en cijfers
aantal mogelijke combinaties:
computer tijdsduur om alle combinaties te berekenen:

gebruikersnaam en wachtwoord zijn allebei 4 tekens, alle tekens
aantal mogelijke combinaties:
computer tijdsduur om alle combinaties te berekenen:

gebruikersnaam en wachtwoord zijn allebei 6 tekens, alle tekens
aantal mogelijke combinaties:
computer tijdsduur om alle combinaties te berekenen:

gebruikersnaam en wachtwoord zijn allebei 8 tekens, alle tekens
aantal mogelijke combinaties:
computer tijdsduur om alle combinaties te berekenen:
Maarten Buijs op 18/08/2011 18:54:20

@Ozzie PHP: wat denk je

Antwoord voor Santhe:

<?php
$piece = 9999999;
$time_start = microtime(true);

for ($i = 1;$i <= $piece; $i++){}

$time_end = microtime(true);
$time = $time_end - $time_start;
$time = (11725786449236986*(10^32)) * ($time / $piece);
echo $time;
?>


Waarop SanThe laat weten dat dat niet goed is. Dus vandaar mijn vraag hoe het wél moet.


[size=xsmall]Toevoeging op 18/08/2011 19:11:31:[/size]

Wouter J op 18/08/2011 19:04:56

Toevallig dat dit artikel vandaag verscheen: http://www.nieuwsblad.be/article/detail.aspx?articleid=G0J3E5PVC&utm_source=nieuwsblad&utm_medium=newsletter&utm_campaign=klik-en-win (met dank aan onze vrienden van sitemasters :p)

Ik geloof niet dat we bang hoeven te zijn:

"Als je duizend miljard computers tegelijk aan het werk zou kunnen zetten, die elk een miljard sleutels per seconde zouden kunnen uitproberen (duizend keer meer dan een normale hedendaagse computer), dan werd tot nu toe gedacht dat het acht miljard jaar zou duren om een typische AES-sleutel te kraken.

Dankzij de slimme vondst van Bogdanov blijkt nu dat dezelfde computers het in twee miljard jaar zouden kunnen."
Ozzie PHP op 18/08/2011 19:09:11
Waarop SanThe laat weten dat dat niet goed is. Dus vandaar mijn vraag hoe het wél moet.

Als je goed kijkt zit er een klein verschil voor de mensheid, maar een groot verschil voor de computer in:
<?php
...

for (... $i <= $piece; ...){}

...
?>
Ozzie PHP op 18/08/2011 19:09:11
Ik geloof niet dat we bang hoeven te zijn:

Dat zou ik ook niet doen, maar zo lang kunnen meerdere computers dus bezig zijn om een wachtwoord te kraken. 2 * 2 = 4 miljard jaar voor gebruikersnaam en wachtwoord. Meteen antwoord op je vraag.
Ozzie PHP op 18/08/2011 19:09:11

Waarop SanThe laat weten dat dat niet goed is. Dus vandaar mijn vraag hoe het wél moet.


Goed kijken Ozzie: $i > $piece; is niet hetzelfde als $i <= $piece;
Ah, oké... dat had ik niet gezien :)

"Dat zou ik ook niet doen, maar zo lang kunnen meerdere computers dus bezig zijn om een wachtwoord te kraken. 2 * 2 = 4 miljard jaar voor gebruikersnaam en wachtwoord. Meteen antwoord op je vraag."

Dat niet... want dit ging over AES beveiliging... da's weer wat anders :)
Ozzie PHP op 18/08/2011 20:21:35

Ah, oké... dat had ik niet gezien :)

"Dat zou ik ook niet doen, maar zo lang kunnen meerdere computers dus bezig zijn om een wachtwoord te kraken. 2 * 2 = 4 miljard jaar voor gebruikersnaam en wachtwoord. Meteen antwoord op je vraag."

Dat niet... want dit ging over AES beveiliging... da's weer wat anders :)


Sinds wanneer is 2 * 2 gelijk aan 4 miljard? 2 * 2 = 4 != 2*2 = 4 000 000 000

Dus als je wilt weten hoe lang het zou duren om een wachtwoord EN gebruikersnaam te kraken is dat 2 miljard * 2 miljard = 2 miljard ^ 2 = 4.0 × 10^18. Dus een 4 met 18 nullen i.p.v. 9.
Dit is een groot verschil. (1 miljard keer zo groot...)

Dus dat ziet er zo uit:
4.000.000.000.000.000.000 jaar

Ik neem aan dat tegen die tijd er wel 'veiligere' cryptografische manieren gevonden zijn...
Ah oké, maar dit gaat nog steeds over AES beveiliging en heeft niks met mijn originele vraag te maken ;)
Jouw vraag is eigenlijk:
gebruikersnaam en wachtwoord zijn allebei X tekens, bestaande uit Y tekens.

De formule om het aantal combinaties uit te rekenen is, met C als het aantal combinaties.
C = Y[sup]X[/sup]

C[sub]user[/sub] = Y[sub]user[/sub][sup]X[sub]user[/sub][/sup]
C[sub]pass[/sub] = Y[sub]pass[/sub][sup]X[sub]pass[/sub][/sup]

Totale Combinaties = C[sub]user[/sub]*C[sub]pass[/sub] = Y[sub]user[/sub][sup]X[sub]user[/sub][/sup] * Y[sub]pass[/sub][sup]X[sub]pass[/sub][/sup]


Letters/cijfers (zonder hoofdletter): 36
Letters/cijfers (met hoofdletters):   62
Aantal ASCII karakters:               256
Aantal Unicode karakters:             100000 (en meer...)



gebruikersnaam en wachtwoord zijn alleen letters (zonder hoofdletter) en cijfers: 4, 6, 8 tekens
aantal mogelijke combinaties:
4: 36[sup]4[/sup] * 36[sup]4[/sup] = 2 821 109 907 456
6: 36[sup]6[/sup] * 36[sup]6[/sup] = 4.73838134 × 10[sup]18[/sup]
8: 36[sup]8[/sup] * 36[sup]8[/sup] = 7.95866111 × 10[sup]24[/sup]
computer tijdsduur om alle combinaties te berekenen:
Aangenomen dat een computer er 1/10 milliseconde erover doet (dus 0.0001sec) om een combinatie te proberen, dan zal hij er dus 8.93955785 jaar over doen om alleen maar alle combinaties user/pass uit te rekenen van lengte 4.
Nu heb ik geen idee hoe snel een computer dat werkelijk doet, maar .1 milliseconde lijkt me redelijk. Misschien zelfs te snel.
De rest ga ik voor de fun dus NIET uitrekenen.

gebruikersnaam en wachtwoord zijn alle ASCII tekens: 4, 6, 8 tekens
aantal mogelijke combinaties:
4: 256[sup]4[/sup] * 256[sup]4[/sup] = 1.84467441 × 10[sup]19[/sup]
6: 256[sup]6[/sup] * 256[sup]6[/sup] = 7.92281625 × 10[sup]28[/sup]
8: 256[sup]8[/sup] * 256[sup]8[/sup] = 3.40282367 × 10[sup]38[/sup]
computer tijdsduur om alle combinaties te berekenen:
De laatste zou er 1.07828975 × 10[sup]27[/sup] jaar over doen bij een snelheid van .1ms/combinatie. Dit ziet er zo uit:
1 078 289 750 000 000 000 000 000 000

Dit is dus - zoals je kunt zien - meer dan een quadriljard jaar!

Het leuke is: het natuurlijke logaritme van dit immense getal is slechts 62.2451737. Dit betekend dat we het ook kunnen schrijven als e[sup]62.2451737[/sup]
Holy crap... da's heeeeeel veel!

Maar weet je zeker dat die berekening met een gebruikersnaam en wachtwoord met lengte 4 en alleen letters en cijfers klopt? Daar is ie dus al ruim 8 jaar mee bezig? Wow... da's wel erg veel!!! Moet je inderdaad nagaan als je 6 of 8 tekens gebruikt... Dat is dus eigenlijk gewoon niet te kraken dan.
Ja, volgens mij zijn de berekeningen goed.
Je moet alleen wel nagaan dat een hacker de zekerheid van de gebruikersnaam neemt. Want als het gebruikersnaam bekend is, dan hoef je slechts C[sub]pass[/sub] = Y[sub]pass[/sub][sup]X[sub]pass[/sub][/sup] = 1 679 616 combinaties te doen.

Dit komt neer op 2.79936 minuten bij een snelheid van .1ms

Maar bij een wachtwoord van 8 tekens is dit WEL 8.93955785 jaar.
Want 36[sup]4[/sup] * 36[sup]4[/sup] = 36[sup]8[/sup]

Reageren