Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 07 Jul 2012 07:47:37 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: RAR's SHA-1 speed on GPU

On 2012-07-07 04:23, Solar Designer wrote:
> magnum -
> 
> Do you know how many times the SHA-1 compression function is invoked (on
> average?) per the 256k rounds of the loop in rar_kernel.cl, for the test
> vectors that we're currently using?  In other words, how many SHA-1s per
> second do our current c/s rates for RAR translate to?  Of course,
> there's lots of other "overhead" besides SHA-1 involved, but I am
> curious nevertheless.
> 
> I naively thought that we had SHA-1 on every iteration, but this doesn't
> appear to be the case, or the speed on GTX 570 would be unbelievably
> high (only 8 clock cycles per SHA-1 round, which would be too good given
> the lack of rotates and bit selects on NVIDIA).

An 8-character password results in 7,078,320 bytes of data fed to SHA-1,
that is 110,599 blocks of 64 bytes.

Running RAR with GWS=0 will enable a "benchmark" mode showing sha1 /
second and kernel duration:

$ GWS=0 ../run/john -t -fo:rar
OpenCL platform 0: NVIDIA CUDA, 1 device(s).
Using device 0: GeForce GTX 570
Calculating best keys per crypt (GWS) for LWS=64

Raw GPU speed figures including buffer transfers:
gws     64        87 c/s       8196531 sha1/s   0.730 sec per crypt_all()!
gws    128       175 c/s      16487275 sha1/s   0.730 sec per crypt_all()!
gws    256       319 c/s      30053947 sha1/s   0.800 sec per crypt_all()!
gws    512       639 c/s      60202107 sha1/s   0.800 sec per crypt_all()!
gws   1024      1249 c/s     117672037 sha1/s   0.820 sec per crypt_all()!
gws   2048      2182 c/s     205572766 sha1/s   0.938 sec per crypt_all()!
gws   4096      3374 c/s     317874662 sha1/s   1.214 sec per crypt_all()+
gws   8192      3410 c/s     321266330 sha1/s   2.402 sec per crypt_all()+
gws  16384      3930 c/s     370257090 sha1/s   4.168 sec per crypt_all()+
gws  32768      4385 c/s     413124005 sha1/s   7.472 sec per crypt_all()+
gws  65536      4478 c/s     421885814 sha1/s  14.634 sec per crypt_all()
gws  32832      4391 c/s     413689283 sha1/s   7.476 sec per crypt_all()+
gws  32896      4400 c/s     414537200 sha1/s   7.475 sec per crypt_all()+
gws  32960      4409 c/s     415385117 sha1/s   7.476 sec per crypt_all()+
gws  33024      4415 c/s     415950395 sha1/s   7.478 sec per crypt_all()+
gws  33088      4423 c/s     416704099 sha1/s   7.479 sec per crypt_all()+
gws  33152      4404 c/s     414914052 sha1/s   7.527 sec per crypt_all()
Optimal keys per crypt 33088
(to avoid this test on next run, put "rar_GWS = 33088" in john.conf,
section [Options:OpenCL])
Local worksize (LWS) 64, Global worksize (GWS) 33088
Benchmarking: RAR3 SHA-1 AES (6 characters) [OpenCL]... DONE
Raw:    4417 c/s real, 4420 c/s virtual

magnum

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ