#251259 John should runtime test the speed of john-any and john-mmx

Package:
john
Source:
john
Description:
active password cracking tool
Submitter:
Goswin von Brederlow
Date:
2011-07-17 00:06:06 UTC
Severity:
wishlist
#251259#5
Date:
2004-05-27 17:33:13 UTC
From:
To:
Hi,

john on i386 is a script that tests for the mmx flag and then launches
john-any or john-mmx. This is very nice except that john-mmx is
actually slower than john-any. It would be better if you could test
the c/s for john-any and john-mmx and pick the faster one:

mrvn@dual:~% sh -c "exec -a john /usr/sbin/john-mmx -test"
Benchmarking: Standard DES [48/64 4K]... DONE
Many salts:     137172 c/s real, 150378 c/s virtual
Only one salt:  140544 c/s real, 147012 c/s virtual

Benchmarking: BSDI DES (x725) [48/64 4K]... DONE
Many salts:     5036 c/s real, 5235 c/s virtual
Only one salt:  5110 c/s real, 5225 c/s virtual

Benchmarking: FreeBSD MD5 [32/32]... DONE
Raw:    5475 c/s real, 5739 c/s virtual

Benchmarking: OpenBSD Blowfish (x32) [32/32]... DONE
Raw:    344 c/s real, 349 c/s virtual

Benchmarking: Kerberos AFS DES [48/64 4K]... DONE
Short:  142438 c/s real, 145345 c/s virtual
Long:   508620 c/s real, 514798 c/s virtual

Benchmarking: NT LM DES [48/64 4K]... DONE
Raw:    1846528 c/s real, 1868955 c/s virtual


mrvn@dual:~% sh -c "exec -a john /usr/sbin/john-any -test"
Benchmarking: Standard DES [24/32 4K]... DONE
Many salts:     246809 c/s real, 249807 c/s virtual
Only one salt:  221721 c/s real, 231926 c/s virtual

Benchmarking: BSDI DES (x725) [24/32 4K]... DONE
Many salts:     8617 c/s real, 8775 c/s virtual
Only one salt:  8584 c/s real, 8670 c/s virtual

Benchmarking: FreeBSD MD5 [32/32]... DONE
Raw:    5696 c/s real, 5742 c/s virtual

Benchmarking: OpenBSD Blowfish (x32) [32/32]... DONE
Raw:    344 c/s real, 348 c/s virtual

Benchmarking: Kerberos AFS DES [24/32 4K]... DONE
Short:  226662 c/s real, 229415 c/s virtual
Long:   611225 c/s real, 616154 c/s virtual

Benchmarking: NT LM DES [24/32 4K]... DONE
Raw:    1649433 c/s real, 1676253 c/s virtual


MfG
	Goswin

#251259#10
Date:
2004-05-31 09:12:10 UTC
From:
To:
I don't agree with your assessment if you compare the results by the
used algorithm. In case of a "Standard DES" and "BSDI DES" algorithmen
you are correct, that in this case the "any" binary will be faster.

In case of the "FreeBSD MD5" algorithmen, you will notice that there's
not much difference in using the "any" or the "mmx" binary as the
difference is very small.

And in case of the "OpenBSD Blowfish" algorithmen, you will see
absolutely no difference between the usage of the "any" or "mmx" binary
at all:

And only in the case of "Kerberos AFS DES" you will again notice that
the "any" binary is a bit faster then the "mmx" one.

And in the case of the "NT LM DES" algorithemn, the "mmx" binary is
faster then the "any" one.

So it's not necessarily an overall gain in speed. Also you are not
explaining on which kind of cpu you were running those tests. That would
maybe help to explain the results you are seeing.

Christian

#251259#15
Date:
2004-05-31 11:49:01 UTC
From:
To:
Christian Kurz <shorty@debian.org> writes:

Its an amd64 (x86_64).

If you don't think being faster or equal in all but one cases is
better then think about doing this on a algorithm by algorithm basis.

John is not that big that it couldn't compile in both flavours of the
code, test them on the fly and then use the faster one. The way the
two binaries work with 'exec -a john' is rather ugly anyway.

Or you could check what the passwd file given will need and compare
those numbers for the two binaries.

MfG
        Goswin

#251259#20
Date:
2004-06-01 22:26:49 UTC
From:
To:
Hello all,

Surprised by Goswin figures, I decided to test john-{any,mmx} on two
i386 boxes: a Celeron 400 and an Athlon 1G4
On the first one, john-mmx is 25% faster than john-any
On the second,    john-mmx is 25% slower than john-any

I also tested John's development version:
john-mmx is faster on both box (up to 4 times!), except for Kerberos AFS
DES on the Athlon (25% slower).

Detailed figures are attached.


So I second Goswin in allowing to run john-any on MMX boxes.
Using one or the other on a per algorithm basis is probably not needed
(and would require some modifications), but having an option to the john
script should be easy and useful.


PS : Note that I tried John 1.6-17 from woody on the Celeron and John
1.6-26 on the Athlon. I think that the source didn't changed between
both packages, but they were not compiled with the same compiler.

Kind Regards,

#251259#23
Date:
2004-06-01 22:26:49 UTC
From:
To:
Hello all,

Surprised by Goswin figures, I decided to test john-{any,mmx} on two
i386 boxes: a Celeron 400 and an Athlon 1G4
On the first one, john-mmx is 25% faster than john-any
On the second,    john-mmx is 25% slower than john-any

I also tested John's development version:
john-mmx is faster on both box (up to 4 times!), except for Kerberos AFS
DES on the Athlon (25% slower).

Detailed figures are attached.


So I second Goswin in allowing to run john-any on MMX boxes.
Using one or the other on a per algorithm basis is probably not needed
(and would require some modifications), but having an option to the john
script should be easy and useful.


PS : Note that I tried John 1.6-17 from woody on the Celeron and John
1.6-26 on the Athlon. I think that the source didn't changed between
both packages, but they were not compiled with the same compiler.

Kind Regards,

#251259#26
Date:
2006-02-20 22:22:41 UTC
From:
To:
I would appreciate if you could retest your benchmarks with the latest
experimental packages (I just uploaded 1.7-2 and should be available there
soon). The new packages will use the MMX code in all cases (unless MMX is not
available, in which the -non-mmx binary will run) and the wrapper binary has
been dropped.

Regards

Javier

PS: It also has specific code for amd64 which should work better than the
'generic' target

#251259#31
Date:
2006-02-21 12:27:14 UTC
From:
To:
Hi,

Here are the results on two boxes.
I have a non-MMX box (but no acces at this time). I will also check on
this box (probably in the week).

It seems to me that 1.7-2 is always faster than 1.6 or 1.6.36 (and
sometime much faster!)

Note: the Celeron box is running sarge. I recompiled the package (so
another compiler was used).

Note2: I had to remove the --param inline-unit-growth=2000 option when
building on Sarge. Maybe a versionned build dependency is needed.

Kind Regards,

#251259#36
Date:
2006-02-21 20:45:54 UTC
From:
To:
Hello,

Here are the results of the benchmark on some other boxes (one without MMX).

What surprise me is that on the Athlon, john-any (in vertsion 1.6) was
fatser, but this is no longer the case.
It seems john-any on 1.6 is slower than it use to be (it may be caused by
the compiler).

Also, in 1.7-2, john doesn't work on the non-MMX box.
$ john -test
Sorry, MMX is required

But john-non-mmx (built, but not distributed) works.

I can't debug john on this box, but I can test another version if needed.

Best Regards,

#251259#43
Date:
2011-07-04 21:08:50 UTC
From:
To:
Hi Goswin,

Since 1.7.7-1, john uses CPU fall-backs instead of a script in order to
tests for the mmx (and sse2) flag.  Please check if this bug is still
relevant.

Thanks,
Ruben