Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 04 Apr 2012 00:23:17 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: RAR OpenCL committed to git

I have struggled to get better performance but I need a break now and
possibly someone else may help out so I have now pushed the new RAR
format to git.

On a GTX580, it currently does around 4000 c/s in -hp mode (cRARk OpenCL
does ~5500 c/s using same card). I got it to 4500 c/s by moving GPU
arrays to __local memory but then the self-test fails (although no
warnings from building etc - I hate that) and I have no idea what is
wrong. On an old 9600GT, I get 290 c/s.

There seem to be one or two hard-to-find bugs in there (like very
occasionally failing self-tests, even in CPU mode). And memory leaks, I
believe the latter is in the inflate code, taken from libclamav.

Other things to note:
- This format is NOT a new one - OpenCL support is added to the one same
format if building for gpu. As a "result" of this, it has support for
"reverting" to CPU for Single mode or other situations where we can not
fill a batch with desired number of keys per crypt. This behavior is
disabled as delivered but seem to work fine. The downside is that we
currently don't get the GPU code self-tested if enabled (this is why
it's disabled).
- Non-hp-mode performance is still poor (but much better). This will be
addressed later, I have some ideas. cRARk can attack -p mode with more
or less the same speed as -hp so there must be a way to achieve this for
us too.
- AES-NI is used if your hardware and OpenSSL version features it.
- Only the AES key & IV generation runs in GPU currently. Building with
OMP does make sense.
- Added inline storing of RAR data in input file when small enough.
- Added lots of self-tests (including -p mode and -m0 ones). Default to
use same length test vectors as cRARk.
- Changed format tag from $rar3$ to $RAR3$ to enforce re-running rar2john.
- Moved slow code from set_salt() to get_salt() and then keep the
allocations during the whole run.

magnum

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.