12-05-2014, 09:57 PM
Ah, welcome to the joy of "real keyspace" vs "oclhashcat keyspace."
The real keyspace would be 41756867 * 41756867 = 1743635941655689, since each word from dict 2 is appended to each word from dict 1.
However, oclHashcat works a bit differently since we're talking about GPUs. You have a base loop, which runs on the CPU and dispatches work to the GPUs, and you have a modifier loop, which is what is run on the GPU. This model is necessary to actually gain GPU acceleration.
So what oclHashcat reports with --keyspace is the keyspace of the base loop only, excluding the keyspace of the modifier loop.
So with -a 1, the keyspace of the base loop is the keyspace of the left dictionary, and the keyspace of the modifier loop is the keyspace of the right dictionary. For -s/-l purposes oclHashcat only cares about the base loop, so what is reported with --keyspace is the keyspace of the left dictionary.
The real keyspace would be 41756867 * 41756867 = 1743635941655689, since each word from dict 2 is appended to each word from dict 1.
However, oclHashcat works a bit differently since we're talking about GPUs. You have a base loop, which runs on the CPU and dispatches work to the GPUs, and you have a modifier loop, which is what is run on the GPU. This model is necessary to actually gain GPU acceleration.
So what oclHashcat reports with --keyspace is the keyspace of the base loop only, excluding the keyspace of the modifier loop.
So with -a 1, the keyspace of the base loop is the keyspace of the left dictionary, and the keyspace of the modifier loop is the keyspace of the right dictionary. For -s/-l purposes oclHashcat only cares about the base loop, so what is reported with --keyspace is the keyspace of the left dictionary.