keyspace vs speed and time estimated
#1
Hello

I was playing with cudaHashcat today and something is not work right for me...

PHP Code:
Session.Name...: cudaHashcat
Status
.........: Running
Input
.Mode.....: Mask (?u?u?u?u?u?u?u?u) [8]
Hash.Target....: XXX (2c:81:58:XX:XX:XX <-> ce:cd:37:XX:XX:XX)
Hash.Type......: WPA/WPA2
Time
.Started...: Tue Mar 15 15:58:49 2016 (24 secs)
Time.Estimated.: Sun Jul 07 04:44:13 2019 (3 years112 days)
Speed.GPU.#1...:     2792 H/s
Recovered......: 0/(0.00%) Digests0/(0.00%) Salts
Progress
.......: 65536/208827064576 (0.00%)
Rejected.......: 0/65536 (0.00%)
Restore.Point..: 0/8031810176 (0.00%)
HWMon.GPU.#1...: 99% Util, 63c Temp, N/A Fan

[s]tatus [p]ause [r]esume [b]ypass [q]uit => 

From output above, speed of 2792 H/s can be seen and also estimated time of 3 years and 112 days (do not worry, I am not really trying to bruteforce that on my laptop).

Now from "--keyspace" for this same mask

PHP Code:
C:\.....\cudaHashcat-2.01>cudaHashcat64.exe -a 3 -m 2500 C:\...\XXX.hccap ?u?u?u?u?u?u?u?u  --keyspace
cudaHashcat v2.01 starting
...

8031810176 

From output above keyspace length 8031810176 can be seen.

But now if we do keyspace/ time.estimated we get speed of 77 H/s which is not 2791 H/s...  how come?
(3y+112d=1207d=104284800 s)
#2
There are 2 different definitions of "keyspace" here:
1. the first of them is the "keyspace" for a sequence of 8 upper case characters, i.e. 26 ^ 8 = 208827064576 (note: you can see this also within the progress line of the status output):
Code:
Progress.......: x/208827064576 (0.00%)

2. the internal "keyspace" that oclHashcat uses (also see https://hashcat.net/wiki/frequently_aske...a_keyspace), which you can see in the restore point line:
Code:
Restore.Point..: 0/8031810176 (0.00%)
very roughly speaking this is just the number of iterations of the "outer loop" that oclHashcat uses (base loop). The output of --keyspace reports exactly this value and is mainly used for distributed cracking (-s / -l), but also good to know when we are speaking about the --restore feature etc. --keyspace will not report the result of 26 ^ 8 which of course doesn't make much sense because everyone could calculate it easily (and as said it is even showed in the progress line)... instead the "keyspace" that oclHashcat uses is much more difficult to calculate, because it depends on various things and hence it makes sense to "just run --keyspace" to know the max. values for distributing the keyspace with -s / -l etc.
#3
That explains it. Thank you! Smile