Cryptography-Digest Digest #387, Volume #14 Fri, 18 May 01 20:13:00 EDT
Contents:
Re: OT lethal force; was: ON-topic - UK crime statistics (was Re: Best, ("Trevor L.
Jackson, III")
Re: OAP-L3: "The absurd weakness." ("Trevor L. Jackson, III")
Re: DES Encryption - salt? ("Andreas Born")
Re: TC15a x86 FYI ("bubba")
Apology to Cloakware (open letter) ("Tom St Denis")
Re: TC15a x86 FYI ("Tom St Denis")
Re: TC15a x86 FYI ("bubba")
----------------------------------------------------------------------------
From: "Trevor L. Jackson, III" <[EMAIL PROTECTED]>
Subject: Re: OT lethal force; was: ON-topic - UK crime statistics (was Re: Best,
Date: Fri, 18 May 2001 23:12:23 GMT
"Douglas A. Gwyn" wrote:
> "Trevor L. Jackson, III" wrote:
> > where a police officer may use any necessary force, a citizen is restricted
> > to the use of only equal force. (fist/fist, knife/knife, firearms/firearm).
>
> No, in most US jurisdictions, the law permits use of any means necessary
> to immediately stop an assault that can be reasonably preceived to
> threaten
> imminent grave physical injury or death.
As stated yes. But lethal force is not the only kind available. While the
doctrine of equality of force does not discriminate amongst lethal tools, it does
discriminate among various grades of force from open hand, closed hand, impact
weapons, chemicals, and lethal force. On that ladder a citizen is constrained to
use only equal or lesser force unless disparity of force is present. Thus one
may not return a punch with a lead sap or a 9 mm.
Police standards are different in that a police officer is not constrained to use
only equal force, but may use a high level of force to effect the apprehension of
a criminal. Thus a police officer _can_ resort to the use of a baton, sap, or
chemicals in response to a punch. He is only required to justified the actions
on the grounds of necessity.
> Generally, firearms are
> included
> in the allowed means, regardless of the assailant's choice of weapon. A
> trained attacker with a knife on the other side of the room can easily
> inflict a fatal injury upon a victim in just over the time it takes to
> draw
> and fire a handgun that the victim is already equipped with, as has been
> demonstrated successfully in several trials (of the victim!). To think
> that the victim has to be armed with a variety of weapons and pick the
> one
> that matches the assailant's "force level" is absurd.
Lots of laws are absurd. This one isn't. Disputes have enough of a tendency to
escalate as it is. Since the decline of the Code Duello legislature have been
taking an increasingly dim view of such escalation. It is very hard to justify a
lesser standard.
Note that this is another expression of the higher standard of behavior expected
of an armed citizen. He should not leave himself vulnerable to a choice between
fists and lethal force. An intermediate strength tool such as pepper spray or a
kubotan is almost mandatory so that in court he can claim to have chosen lethal
force on purpose, as justified by the circumstances, rather than being forced
into it by the inadequacy of the alternative.
> Law enforcement
> are
> trained to do that
I wish that it were so. Police training budgets are inadequate everywhere. The
national hit rate for shots fired by officers is under 20%. 17% last time I
looked a couple years ago. The fact is that armed citizens are typically much
better with their firearms than the average police officer. The idea that police
officers are good examples for citizens is absurd. Police officers have a "duty
to act" that no citizen endures, and that necessitates a different handling of
the issue. Yet even that duty is insufficient protection against the internal
costs of the act of homicide. Most officers who bear the Mark of Cain leave law
enforcement -- another failure of police training.
> *when circumstances permit*, and are equipped to do
> so.
------------------------------
From: "Trevor L. Jackson, III" <[EMAIL PROTECTED]>
Crossposted-To: alt.hacker,talk.politics.crypto
Subject: Re: OAP-L3: "The absurd weakness."
Date: Fri, 18 May 2001 23:17:45 GMT
Anthony Stephen Szopa wrote:
> John Savard wrote:
> >
> > On Tue, 15 May 2001 12:59:47 -0700, Anthony Stephen Szopa
> > <[EMAIL PROTECTED]> wrote, in part:
> >
> > >I can't discuss what you are talking about if you cannot
> > >communicate it.
> >
> > Well, he did make one specific claim:
> >
> > >>Yes, the fact that your method is almost totally unused does save you from
> > >>extensive analisys. If a government really wanted to beat your method, it would
> > >>NOT take long.( I'd attack the stored key files -- large unweildy and
> > >>vulnerable they are.
> >
> > so he basically appears to admit your program is secure against an
> > attacker who can only intercept ciphertext (provided the person using
> > the program chooses to generate a large enough key file) but it leaves
> > information on the hard disk that can be used to crack messages. (In
> > comparison, in PGP, the copy of your secret key on the hard disk is
> > encrypted by a pass phrase.)
> >
> > John Savard
> > http://home.ecn.ab.ca/~jsavard/
>
> Yes. Everyone is slowly coming to the realization that OAP-L3 can
> provide exceptionally useful random numbers for encryption purposes.
Clearly you can't count. So far my tally is many to zero in favor of the idea what
your RNG is worthless for encryption purposes. Which of your detractors are you
counting as supporters? And how can you justify the term "everyone" as long as at
least one remains to point out the truth?
------------------------------
From: "Andreas Born" <[EMAIL PROTECTED]>
Subject: Re: DES Encryption - salt?
Date: Sat, 19 May 2001 01:18:20 +0200
Tom St Denis <[EMAIL PROTECTED]> wrote:
>> I found many information about DES and so on, but NOTHING about
>> password encryption and handling the 12bit (or 16 bit?) salt.
> I would look at the Linux source code for the DES login stuff. It's open
> source :-)
Thanx for your answer, but this does not really help me.
At the moment, I have no access to any linux source, maybe you can
tell me where to find it ?
But, I had a look on over 100! source codes dealing with DES already, but
none of them were complete. Dozens of includes, and if I wanna read them
all, I get crazy... ;-)
I'm not experienced in programming c so it's hard for me to follow these
files.
There are a lot of documents outta there describing DES,
but no one describes the real crypt(3)-routine !
And I didn't find any real crypt(3) routine, either. Just explanations how
to use it... And the most crypt.c files were fakes :-(
Why is it so hard to get infos about the crypt(3) routine ?
> Too bad you need to be compatible I would have suggested to use
> something a bit more robust like SHA1 or Tiger/192.
You're right, of course. But this time I have to use DES...
Ciao,
Andreas
------------------------------
From: "bubba" <[EMAIL PROTECTED]>
Subject: Re: TC15a x86 FYI
Date: Fri, 18 May 2001 18:33:53 -0500
Here is what Intel's compiler generates. It is similar
to Tom's code, but it chooses not to unroll. It is impressive
to see it figure out the rotates:
27:
28: /* copy */
29: a = in[0];
0040101F 8B 2E mov ebp,dword ptr [esi]
30: b = in[1];
00401021 8B 4E 04 mov ecx,dword ptr [esi+4]
31: c = in[2];
00401024 8B 56 08 mov edx,dword ptr [esi+8]
32: d = in[3];
00401027 8B 46 0C mov eax,dword ptr [esi+0Ch]
33:
34: /* 8 rounds */
35: for (r = 0; r < 8; r++) {
0040102A 33 FF xor edi,edi
0040102C 89 7C 24 04 mov dword ptr [esp+4],edi
36: /* mix in key words */
37: a ^= key[4*r+0];
00401030 8B 7B 08 mov edi,dword ptr [ebx+8]
00401033 8B 74 24 04 mov esi,dword ptr [esp+4]
00401037 33 2C 3E xor ebp,dword ptr [esi+edi]
41:
42: /* LT */
43: a = ROTL(a, 1);
0040103A D1 C5 rol ebp,1
38: b ^= key[4*r+1];
0040103C 33 4C 3E 04 xor ecx,dword ptr [esi+edi+4]
44: b = ROTL(b, 9);
00401040 C1 C1 09 rol ecx,9
39: c ^= key[4*r+2];
00401043 33 54 3E 08 xor edx,dword ptr [esi+edi+8]
45: c = ROTL(c, 17);
00401047 C1 C2 11 rol edx,11h
40: d ^= key[4*r+3];
0040104A 33 44 3E 0C xor eax,dword ptr [esi+edi+0Ch]
46: temp = (c*3) + (d*9);
0040104E 8D 3C 52 lea edi,[edx+edx*2]
00401051 8D 34 C0 lea esi,[eax+eax*8]
00401054 03 FE add edi,esi
47: a += temp;
00401056 03 EF add ebp,edi
48: b -= temp;
00401058 2B CF sub ecx,edi
49: temp = (a*3) + (b*9);
0040105A 8D 7C 6D 00 lea edi,[ebp+ebp*2]
0040105E 8D 34 C9 lea esi,[ecx+ecx*8]
00401061 03 FE add edi,esi
50: c += temp;
00401063 03 D7 add edx,edi
51: d -= temp;
00401065 2B C7 sub eax,edi
52:
53: /* bitslice 4x4 */
54: a ^= b^(c&d);
00401067 8B F2 mov esi,edx
00401069 23 F0 and esi,eax
0040106B 33 F1 xor esi,ecx
0040106D 33 EE xor ebp,esi
55: b ^= c^(d|a);
0040106F 8B F0 mov esi,eax
00401071 0B F5 or esi,ebp
00401073 33 F2 xor esi,edx
00401075 33 CE xor ecx,esi
56: c ^= d^(a&b);
00401077 8B F5 mov esi,ebp
00401079 23 F1 and esi,ecx
0040107B 33 F0 xor esi,eax
0040107D 33 D6 xor edx,esi
57: d ^= a^(b|c);
0040107F 8B F1 mov esi,ecx
00401081 0B F2 or esi,edx
00401083 33 F5 xor esi,ebp
00401085 33 C6 xor eax,esi
"Tom St Denis" <[EMAIL PROTECTED]> wrote in message
news:RJeN6.127795$[EMAIL PROTECTED]...
> Thanks to all that ran the program and gave me the results. Here are the
> clock cycles ranked from highest to lowest.
>
> pmmx: 240 cycles
> K6 : 224 cycles
> K6II: 222 cycles
> PII : 200 cycles
> pIII: 200 cycles
> K7-T: 172 cycles
>
> (K7-T = Athlon T-Bird).
> --
> Tom St Denis
> ---
> http://tomstdenis.home.dhs.org
>
>
------------------------------
From: "Tom St Denis" <[EMAIL PROTECTED]>
Subject: Apology to Cloakware (open letter)
Date: Fri, 18 May 2001 23:38:30 GMT
Hello all,
As most of you know I posted a message yesterday out of 2 parts anger and
many parts stupid. I was feeling "wronged" when really it was just an
annoyance.
I want to apologize to all and especially Cloakware for the mess this
resulted in, that was not really my main intent. I was ranting mainly.
Fortunately no NDA's broken, no court-battles ahead.
I hope you all can accept my sincere apology for being so immature with
regards to the matter at hand.
Live and learn,
--
Tom St Denis
---
http://tomstdenis.home.dhs.org
------------------------------
From: "Tom St Denis" <[EMAIL PROTECTED]>
Subject: Re: TC15a x86 FYI
Date: Fri, 18 May 2001 23:39:58 GMT
"bubba" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]...
> Here is what Intel's compiler generates. It is similar
> to Tom's code, but it chooses not to unroll. It is impressive
> to see it figure out the rotates:
That's kinda neat. I unrolled the loop to speed it up a bit...
What speeds do yyou get with the intel C compiler vs my C code?
Tom
>
> 27:
> 28: /* copy */
> 29: a = in[0];
> 0040101F 8B 2E mov ebp,dword ptr [esi]
> 30: b = in[1];
> 00401021 8B 4E 04 mov ecx,dword ptr [esi+4]
> 31: c = in[2];
> 00401024 8B 56 08 mov edx,dword ptr [esi+8]
> 32: d = in[3];
> 00401027 8B 46 0C mov eax,dword ptr [esi+0Ch]
> 33:
> 34: /* 8 rounds */
> 35: for (r = 0; r < 8; r++) {
> 0040102A 33 FF xor edi,edi
> 0040102C 89 7C 24 04 mov dword ptr [esp+4],edi
> 36: /* mix in key words */
> 37: a ^= key[4*r+0];
> 00401030 8B 7B 08 mov edi,dword ptr [ebx+8]
> 00401033 8B 74 24 04 mov esi,dword ptr [esp+4]
> 00401037 33 2C 3E xor ebp,dword ptr [esi+edi]
> 41:
> 42: /* LT */
> 43: a = ROTL(a, 1);
> 0040103A D1 C5 rol ebp,1
> 38: b ^= key[4*r+1];
> 0040103C 33 4C 3E 04 xor ecx,dword ptr [esi+edi+4]
> 44: b = ROTL(b, 9);
> 00401040 C1 C1 09 rol ecx,9
> 39: c ^= key[4*r+2];
> 00401043 33 54 3E 08 xor edx,dword ptr [esi+edi+8]
> 45: c = ROTL(c, 17);
> 00401047 C1 C2 11 rol edx,11h
> 40: d ^= key[4*r+3];
> 0040104A 33 44 3E 0C xor eax,dword ptr [esi+edi+0Ch]
> 46: temp = (c*3) + (d*9);
> 0040104E 8D 3C 52 lea edi,[edx+edx*2]
> 00401051 8D 34 C0 lea esi,[eax+eax*8]
> 00401054 03 FE add edi,esi
> 47: a += temp;
> 00401056 03 EF add ebp,edi
> 48: b -= temp;
> 00401058 2B CF sub ecx,edi
> 49: temp = (a*3) + (b*9);
> 0040105A 8D 7C 6D 00 lea edi,[ebp+ebp*2]
> 0040105E 8D 34 C9 lea esi,[ecx+ecx*8]
> 00401061 03 FE add edi,esi
> 50: c += temp;
> 00401063 03 D7 add edx,edi
> 51: d -= temp;
> 00401065 2B C7 sub eax,edi
> 52:
> 53: /* bitslice 4x4 */
> 54: a ^= b^(c&d);
> 00401067 8B F2 mov esi,edx
> 00401069 23 F0 and esi,eax
> 0040106B 33 F1 xor esi,ecx
> 0040106D 33 EE xor ebp,esi
> 55: b ^= c^(d|a);
> 0040106F 8B F0 mov esi,eax
> 00401071 0B F5 or esi,ebp
> 00401073 33 F2 xor esi,edx
> 00401075 33 CE xor ecx,esi
> 56: c ^= d^(a&b);
> 00401077 8B F5 mov esi,ebp
> 00401079 23 F1 and esi,ecx
> 0040107B 33 F0 xor esi,eax
> 0040107D 33 D6 xor edx,esi
> 57: d ^= a^(b|c);
> 0040107F 8B F1 mov esi,ecx
> 00401081 0B F2 or esi,edx
> 00401083 33 F5 xor esi,ebp
> 00401085 33 C6 xor eax,esi
>
>
>
> "Tom St Denis" <[EMAIL PROTECTED]> wrote in message
> news:RJeN6.127795$[EMAIL PROTECTED]...
> > Thanks to all that ran the program and gave me the results. Here are the
> > clock cycles ranked from highest to lowest.
> >
> > pmmx: 240 cycles
> > K6 : 224 cycles
> > K6II: 222 cycles
> > PII : 200 cycles
> > pIII: 200 cycles
> > K7-T: 172 cycles
> >
> > (K7-T = Athlon T-Bird).
> > --
> > Tom St Denis
> > ---
> > http://tomstdenis.home.dhs.org
> >
> >
>
>
------------------------------
From: "bubba" <[EMAIL PROTECTED]>
Subject: Re: TC15a x86 FYI
Date: Fri, 18 May 2001 19:00:42 -0500
With my Pentium III and Windows 2000, I get 263
for the Intel code. Not bad for compiler code,
but after comparing the two, it seems like the
numbers should be a little closer. I get 200
from your executable, so my system must be running
like other Pentium IIIs. The 200 becomes 198 by
raising the priority.
I compiled the C code optimized for P4 only, and
the 263 went to 315 on the PentiumIII (I have no
Pentium4 here at home). Here is the Pentium4 code.
It will make you reread the Pentium4 optimization
rules before you believe what you see. Pentium 4
is especially slow on today's code.
By the way, for Microsoft Outlook express users,
I noticed that you can make it display plain text
in a fixed font, which it does not do by default.
The following is much easier to read with a fixed font.
27:
28: /* copy */
29: a = in[0];
0040101F 8B 2E mov ebp,dword ptr [esi]
30: b = in[1];
00401021 8B 4E 04 mov ecx,dword ptr [esi+4]
31: c = in[2];
00401024 8B 56 08 mov edx,dword ptr [esi+8]
32: d = in[3];
00401027 8B 46 0C mov eax,dword ptr [esi+0Ch]
33:
34: /* 8 rounds */
35: for (r = 0; r < 8; r++) {
0040102A 33 FF xor edi,edi
0040102C 89 7C 24 04 mov dword ptr [esp+4],edi
36: /* mix in key words */
37: a ^= key[4*r+0];
00401030 8B 7B 08 mov edi,dword ptr [ebx+8]
00401033 8B 74 24 04 mov esi,dword ptr [esp+4]
00401037 33 2C 3E xor ebp,dword ptr [esi+edi]
41:
42: /* LT */
43: a = ROTL(a, 1);
0040103A D1 C5 rol ebp,1
38: b ^= key[4*r+1];
0040103C 33 4C 3E 04 xor ecx,dword ptr [esi+edi+4]
39: c ^= key[4*r+2];
00401040 33 54 3E 08 xor edx,dword ptr [esi+edi+8]
44: b = ROTL(b, 9);
00401044 C1 C1 09 rol ecx,9
45: c = ROTL(c, 17);
00401047 C1 C2 11 rol edx,11h
40: d ^= key[4*r+3];
0040104A 33 44 3E 0C xor eax,dword ptr [esi+edi+0Ch]
46: temp = (c*3) + (d*9);
0040104E 8D 3C 12 lea edi,[edx+edx]
00401051 8D 34 00 lea esi,[eax+eax]
00401054 03 FA add edi,edx
00401056 03 F6 add esi,esi
00401058 03 F6 add esi,esi
0040105A 03 F0 add esi,eax
0040105C 03 FE add edi,esi
47: a += temp;
0040105E 03 EF add ebp,edi
48: b -= temp;
00401060 2B CF sub ecx,edi
49: temp = (a*3) + (b*9);
00401062 8D 7C 2D 00 lea edi,[ebp+ebp]
00401066 8D 34 09 lea esi,[ecx+ecx]
00401069 03 FD add edi,ebp
0040106B 03 F6 add esi,esi
0040106D 03 F6 add esi,esi
0040106F 03 F1 add esi,ecx
00401071 03 FE add edi,esi
50: c += temp;
00401073 03 D7 add edx,edi
51: d -= temp;
00401075 2B C7 sub eax,edi
52:
53: /* bitslice 4x4 */
54: a ^= b^(c&d);
00401077 8B F2 mov esi,edx
00401079 23 F0 and esi,eax
0040107B 33 F1 xor esi,ecx
0040107D 33 EE xor ebp,esi
55: b ^= c^(d|a);
0040107F 8B F0 mov esi,eax
00401081 0B F5 or esi,ebp
00401083 33 F2 xor esi,edx
00401085 33 CE xor ecx,esi
56: c ^= d^(a&b);
00401087 8B F5 mov esi,ebp
00401089 23 F1 and esi,ecx
0040108B 33 F0 xor esi,eax
0040108D 33 D6 xor edx,esi
57: d ^= a^(b|c);
0040108F 8B F1 mov esi,ecx
00401091 0B F2 or esi,edx
00401093 33 F5 xor esi,ebp
00401095 33 C6 xor eax,esi
33:
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list by posting to sci.crypt.
End of Cryptography-Digest Digest
******************************