Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 21 Aug 2015 16:37:41 +0800
From: Kai Zhao <loverszhao@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: testing every index (Re: more robustness)

Hi Alexander,

On Mon, Aug 17, 2015 at 9:52 PM, Solar Designer <solar@...nwall.com> wrote:
> Kai,
>
> On Mon, Aug 17, 2015 at 08:43:42PM +0800, Kai Zhao wrote:
>> What do you mean by "make use of all test vectors at once
>> rather than use just one plaintext for all expected-correct indices."
>> For example,
>>
>> LM.fmt.c
>>
>> static struct fmt_tests tests[] = {
>>         {"$LM$a9c604d244c4e99d", "AAAAAA"},
>>         {"$LM$cbc501a4d2227783", "AAAAAAA"},
>>         {"$LM$3466c2b0487fe39a", "CRACKPO"},
>>         {"$LM$dbc5e5cba8028091", "IMPUNIT"},
>>         {LM_EMPTY LM_EMPTY, ""},
>>         {"$LM$73cc402bd3e79175", "SCLEROS"},
>>         {"$LM$5ecd9236d21095ce", "YOKOHAM"},
>>         {"$LM$A5E6066DE61C3E35", "ZZZZZZZ"}, /* uppercase encoding */
>>         {"$LM$1FB363feB834C12D", "ZZZZZZ"}, /* mixed case encoding */
>>         {NULL}
>> };
>>
>> Now we are cracking the "$LM$a9c604d244c4e99d", and the correct
>> password is "AAAAAA".
>>
>> The current array of keys which set correct passwords on the even
>> index is:
>>
>> [0] = "AAAAAA"
>> [1] = "wrong password"
>> [2] = "AAAAAA"
>> [3] = "wrong password"
>> ...
>>
>> To make use of all the test vectors, do you mean the array should be
>> the following ?
>>
>> [0] = "AAAAAA"
>> [1] = "AAAAAAA"
>> [2] = "CRACKPO"
>> [3] = "IMPUNIT"
>> ...
>
> No.  I still want to have us test handling of incorrect passwords at the
> same time as well.  So it's more like:
>
> [0] = "AAAAAA"
> [1] = "wrong password"
> [2] = "AAAAAAA"
> [3] = "wrong password"
> [4] = "CRACKPO"
> [5] = "wrong password"
> [6] = "IMPUNIT"
> [7] = "wrong password"
> ...

If we are testing the first hash '$LM$a9c604d244c4e99d', only
"AAAAAA" is correct, "AAAAAAA", "CRACKPO" and "IMPUNIT"
are incorrect passwords. Why introduce those passwords ?

I am a little confused. For example:

We are testing the first hash '$LM$a9c604d244c4e99d' whose
correct password is "AAAAAA".

1. All correct

key[0] = "AAAAAA"
key[1] = "AAAAAA"
key[2] = "AAAAAA"
key[3] = "AAAAAA"
...

2. All incorrect

key[0] = "wrong password"
key[1] = "wrong password"
key[2] = "wrong password"
key[3] = "wrong password"
...

3. Even index is correct

key[0] = "AAAAAA"
key[1] = "wrong password"
key[2] = "AAAAAA"
key[3] = "wrong password"
...

4. Odd index is correct

key[0] = "wrong password"
key[1] = "AAAAAA"
key[2] = "wrong password"
key[3] = "AAAAAA"
...

5. The ith password is correct if hash(i) is even, otherwise incorrect

key[0] = "AAAAAA"
key[1] = "AAAAAA"
key[2] = "wrong password"
key[3] = "AAAAAA"
...

6. The ith password is correct if hash(i) is odd, otherwise incorrect

key[0] = "wrong password"
key[1] = "wrong password"
key[2] = "AAAAAA"
key[3] = "wrong password"
...

Is this what you mean ?


Thanks,

Kai

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.