Re: Updated draft

Russ Housley <housley@spyrus.com> Mon, 22 March 1999 20:28 UTC

Received: from mail.proper.com (mail.proper.com [206.86.127.224]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA28121 for <smime-archive@odin.ietf.org>; Mon, 22 Mar 1999 15:28:52 -0500 (EST)
Received: (from majordomo@localhost) by mail.proper.com (8.8.8/8.8.5) id LAA03424 for ietf-smime-bks; Mon, 22 Mar 1999 11:21:47 -0800 (PST)
Received: from spyrus.com (mail.spyrus.com [207.212.34.30]) by mail.proper.com (8.8.8/8.8.5) with ESMTP id LAA03420 for <ietf-smime@imc.org>; Mon, 22 Mar 1999 11:21:46 -0800 (PST)
Received: from rhousley_laptop.spyrus.com ([209.172.119.101]) by spyrus.com (8.7.6/8.7.3/arc) with SMTP id LAA20235; Mon, 22 Mar 1999 11:28:16 -0800 (PST)
Message-Id: <4.1.19990321235711.00a03620@mail.spyrus.com>
X-Sender: rhousley@mail.spyrus.com
X-Mailer: QUALCOMM Windows Eudora Pro Version 4.1
Date: Mon, 22 Mar 1999 00:16:56 -0500
To: Eric Rescorla <ekr@rtfm.com>
From: Russ Housley <housley@spyrus.com>
Subject: Re: Updated draft
Cc: ietf-smime@imc.org
In-Reply-To: <199903211609.IAA20970@speedy.rtfm.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: owner-ietf-smime@imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-smime/mail-archive/>
List-Unsubscribe: <mailto:ietf-smime-request@imc.org?body=unsubscribe>

Eric:

I have a few comments.  Most are nit-picks.

Russ


= = = = = = = = = = 


>Abstract
>
>   This document standardizes one particular Diffie-Hellman variant,
>   based on the ANSI X9.42 draft, developed by the ANSI X9F1 working
>   group. Diffie-Hellman is a key agreement algorithm used by two par-
>   ties to agree on a shared secret. An algorithm for converting the
>   shared secret into an arbitrary amount of keying material is pro-
>   vided. The resulting keying material is used as a symmetric encryp-
>   tion key.  The D-H variant described requires the recipient to have a
>   certificate, but the originator may have a static key pair (with the
>   public key placed in a certificate) or an ephemeral key pair.

This is the only place you use the D-H abbreviation.  Please spell it out.

>2.1.  Key Agreement
>
>   The first stage of the key agreement process is to compute a shared
>   secret number, called ZZ.  When the same originator and recipient
>   public/private key pairs are used, the same ZZ value will result.
>   The ZZ value is then converted into a shared symmetric cryptographic
>   key. When the originator employs a static private/public key pair,
>   the introduction of public random values are used to ensure that the
>   resulting symmetric key will be different for each key agreement.

Please replace the last sentence.  Since onlt partyAInfo is supported, only
one public random can be used:
	When the originator employs a static private/public key pair,
	the introduction of a public random value ensures that the
	resulting symmetric key will be different for each key agreement.


>2.1.1.  Generation of ZZ
>
>   X9.42 defines that the shared secret ZZ is generated as follows:
>
>           ZZ = g ^ (xb * xa) mod p
>
>   Note that the individual parties actually perform the computations:
>
>           ZZ = yb ^ xa    (mod p) = ya ^ xb  mod p

Please pick one notation.  I think this is the only place "(mod p)" is
used.  My preference is:
	ZZ = (yb ^ xa) mod p = (ya ^ xb) mod p

>
>   where ^ denotes exponentiation
>         ya is party a's public key; ya = g ^ xa mod p
>         yb is party b's public key; yb = g ^ xb mod p
>         xa is party a's private key
>         xb is party b's private key
>         p is a large prime
>         q is a large prime
>         g = h^{(p-1)/q} mod p, where
>         h is any integer with 1 < h < p-1 such that h{(p-1)/q} mod p > 1
>           (g has order q mod p; i.e. g^q mod p = 1 if g!=1)
>         j a large integer such that p=qj + 1
>         (See Section 2.2 for criteria for keys and parameters)
>
>   In [CMS], the recipient's key is identified by the CMS RecipientIden-
>   tifier, which points to the recipient's certificate.  The sender's
>   key is identified using the OriginatorIdentifierOrKey field, either
>   by reference to the sender's certificate or by inline inclusion of a
>   key.

Please change "key" to "public key" in the last sentence.


>2.1.2.  Generation of Keying Material
>
>   [snip]
>   Note that these ASN.1 definitions use EXPLICIT tagging. (In ASN.1,
>   EXPLICIT tagging is implicit unless IMPLICIT is explicitly speci-
>   fied.)

Please move this note right before or right after the ASN.1.

>   To generate a KEK, one generates one or more KM blocks (incrementing
>   counter appropriately) until enough material has been generated.  The
>   KM blocks are concatenated left to right in the obvious order.  I.e.
>   KM(counter=1) || KM(counter=2)...

I think that "obvious order" is asking for trouble.  You are better off
deleting the phrase if you cannot think of a better way to say it.

>2.1.4.  Keylengths for common algorithms
>
>   Some common key encryption algorithms have KEKs of the following
>   lengths.
>
>           3DES-EDE-ECB    192 bits
>           RC2-128         128 bits
>           RC2-40          40 bits

Please change "3DES-EDE-ECB" to "3-key 3DES".  The mode does not determine
key lenght, but the number of keys does.  You might want to include "2-key
3DES" to make this clear.

>2.1.6.  Example 1
>
>
>   ZZ is the 20 bytes 00 01 02 03 04 05 06 07 08 09
>                      0a 0b 0c 0d 0e 0f 10 11 12 13
>
>   The key wrap algorithm is 3DES-EDE wrap.
>
>   No partyAInfo is used

Please add missing period.

>Acknowledgements
>
>   The Key Agreement method described in this document is based on work
>   done by the ANSI X9F1 working group. The author wishes to extend his
>   thanks for their assistance.
>
>   The author also wishes to thank Burt Kaliski, Paul Hoffman, Stephen
>   Henson, Russ Housley, Brian Korver, John Linn, Jim Schaad, Mark
>   Schertler, Peter Yee, and Robert Zuccherato for their expert advice
>   and review.

You may wish to use alphabetical order here.

>   [PKIX] Housley, R., Ford, W., Polk, W., Solo, D., "Internet X.509 Public
>       Key Infrastructure Certificate and CRL Profile", RFC-XXXX.

RFC 2459.  Also, add date.