Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 7 Jul 2012 21:58:36 -0500
From: "jfoug" <jfoug@....net>
To: <john-dev@...ts.openwall.com>
Subject: RE: RAdmin, SIP speedup

Here is an update to dynamic.

$ ../run/john -test=5 -form=dynamic_1010
Benchmarking: dynamic_1010 dynamic_1010: RAdmin v2.x MD5 [32/32 128x1
(MD5_Body)]... DONE
Raw:    2117K c/s real, 2122K c/s virtual

$ ../run/john -test=5 -form=dynamic_1011
Benchmarking: dynamic_1011 dynamic_1011: RAdmin v2.x MD5 [32/32 128x1
(MD5_Body)]... DONE
Raw:    2582K c/s real, 2587K c/s virtual

[List.Generic:dynamic_1011]
Expression=dynamic_1011: RAdmin v2.x MD5
Flag=MGF_NOTSSE2Safe
Flag=MGF_KEYS_INPUT
Func=DynamicFunc__set_input_len_100
Func=DynamicFunc__crypt_md5
Test=$dynamic_1011$B137F09CF92F465CABCA06AB1B283C1F:lastwolf
Test=$dynamic_1011$14e897b1a9354f875df51047bb1a0765:podebradka
Test=$dynamic_1011$02ba5e187e2589be6f80da0046aa7e3c:12345678
Test=$dynamic_1011$b4e13c7149ebde51e510959f30319ac7:firebaLL
Test=$dynamic_1011$3d2c8cae4621edf8abb081408569482b:yamaha12345
Test=$dynamic_1011$60cb8e411b02c10ecc3c98e29e830de8:xplicit

And here is the set_input_len_100().  It now keeps data from the prior
password cleaned up.  No reason to memset the buffers each time (100bytes is
large for the memset).
void DynamicFunc__set_input_len_100()
{
	unsigned j;
#ifdef MMX_COEF
	if (dynamic_use_sse==1) {
		exit(!!fprintf(stderr, "Error, in your DYNAMIC script.\nIt
is NOT valid to call DynamicFunc__set_input_len_100 in SSE2/MMX mode\n"));
	}
#endif
	for (j = 0; j < m_count; ++j)
	{
		unsigned char *cp;
#if MD5_X2
		if (j&1)
			cp =
&(input_buf_X86[j>>MD5_X2].x2.B2[total_len_X86[j]+1]);
		else
#endif
			cp =
&(input_buf_X86[j>>MD5_X2].x1.B[total_len_X86[j]+1]);
		while (*cp)
			*cp++ = 0;
		total_len_X86[j] = 100;
	}
}

Also, I see what you meant by the core, and I will get on it.  I got the
same core, when I left the append_keys in the 1011 format.  Dynamic
complains, stating that is an invalid operation, but then cores.

Jim.

>From: Solar Designer [mailto:solar@...nwall.com]
>
>Jim - by the way, if I remove the "Func=DynamicFunc__clean_input" line,
>I get not only a meaningful error message, but also a segfault.  You
>could want to investigate this.
>
>Dynamic is slightly faster:
>
>Benchmarking: dynamic_1010 dynamic_1010: RAdmin v2.x MD5 [32/64 64x2
>(MD5_Body)]... DONE
>Raw:    3526K c/s real, 3526K c/s virtual
>
>However, RAadmin with OpenMP is faster yet:
>
>Benchmarking: RAdmin v2.x MD5 [32/64]... (8xOMP) DONE
>Raw:    10754K c/s real, 1344K c/s virtual

Yes, it is 'faster', but you are burning all 8 cores, for just a 3x
improvement, and with the dynamic changes I propose, you are probably only
get a 2.5x improvement, again, burning all 8 cores.  

Jim.

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.