Bitweasil wrote:Also, I've not worked out if lookup tables (in shared memory) would be fastest, or if bitslicing (very high register count) would be faster.
Adding LM support would be fairly trivial if someone provided some nice LM hash code.
IANAC (I Am Not A Cryptographer) but from some googling it seems that bitslice DES is the way to optimise LM.
http://www.darkside.com.au/bitslice/ has some bitslice DES code. JtR (
http://www.openwall.com/john/) has a bitsliced-based LM implementation but I'm not sure how readable the source is as it's heavily optimised for specific architectures.
On my 8600GS I get 25 million LM hashes/sec on Elcomsoft Distributed Password Recovery versus 5 on Cain, but the key space is so much lower with LM. I suspect that there'd be some enormous speed gains on a GTX295.
Does the above help?