Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 14 Jan 2011 12:25:08 +0100
From: Samuele Giovanni Tonon <>
Subject: Re: opencl sha1 jtr and others some experiments and
 some suggestion

i'm happy to send you a patch for raw-sha1-opencl alpha release

you need to put this patch on top of a vanilla john-1.7.6 + jumbo-9 +
opencl-9  patches.

Many things have changed since the first ugly code i posted:
- added sha1 cl code from pyrit which is 5% faster.
- moved little endian -> big endian final conversion to cl kernel
  adding some 5% speed.
- started using SSHA_NUM_KEYS > 1 which is the way to send big chunks
  of password to GPU (n.b. if you want to play with that value you need
  to keep SSHA_NUM_KEYS aligned between the .c and the .cl file )

Known Bugs:
- Putting more than 1024*8 num_keys almost hang my pc and hang the
  program too, this issue need to be searched in depth
- Little Endian to Big Endian cl code cause Nvidia to fail at program
  build with:
  compilation log: Error: Code selection failed to select: 0x2691c60:
i32 = bswap 0x2691260
  looks like i did something bad.

What is needed:
fix bugs
- test if by putting the routine "padding + 0x80 + size" on the cl adds
  speed or not
- tune it and optimize
- add some useful comments in the code

while the test benchmark keeps making me laugh:
$../run/john --format=raw-sha1-opencl -test
Benchmarking: Raw SHA-1 OpenCL [SHA-1]...
OpenCL Platform: <<<ATI Stream>>> and device: <<<Juniper>>>
Many salts:     1351 c/s real, 1340 c/s virtual
Only one salt:  1419 c/s real, 1402 c/s virtual

it does starting to shine a bit on the "real world":
(mieihash it's just a file with unsalted sha1 i did for test)

$../run/john --format=raw-sha1-opencl ~/mieihashh
OpenCL Platform: <<<ATI Stream>>> and device: <<<Juniper>>>
Loaded 129988 password hashes with no different salts (Raw SHA-1 OpenCL
guesses: 3888  time: 0:00:01:39 90.01% (2) (ETA: Fri Jan 14 12:04:29
2011)  c/s: 157073K  trying: 6coyote - champsed
guesses: 9017  time: 0:00:10:32 (3)  c/s: 168060K  trying: bioblet - 0258172

However these tests still don't compare with the normal raw-sha1:
$../run/john --format=raw-sha1 ~/mieihashh
guesses: 17346  time: 0:00:00:44 (3)  c/s: 36041M  trying: sto1020
guesses: 21171  time: 0:00:02:29 (3)  c/s: 30529M  trying: boofbass
guesses: 21209  time: 0:00:02:33 (3)  c/s: 30341M  trying: 33787670

in my previous email i got 1359M c/s: this was because of a missing for
inside crypt_all; sorry for spreading false numbers i was too excited

If you have some free time and want to spend it around this code it's

i must say thanks to all for the good adivice received so far, i'll keep
working on the code to make it faster.


Download attachment "john-1.7.6-jumbo-9-opencl-sha1-1.diff.gz" of type "application/x-gzip" (4891 bytes)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.