IETF-SSH archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

RE: deaft-gree-sedsh-ecc-08: small correction



Thanks Peter, I'm happy to find this issue has been already been
addressed.


> -----Original Message-----
> From: Peter Gutmann [mailto:pgut001%cs.auckland.ac.nz@localhost]
> Sent: Friday, August 13, 2010 10:37 AM
> To: djm%mindrot.org@localhost; douglas%stebila.ca@localhost; Igoe, Kevin M.
> Cc: ietf-ssh%NetBSD.org@localhost
> Subject: RE: deaft-gree-sedsh-ecc-08: small correction
> 
> "Igoe, Kevin M." <kmigoe%nsa.gov@localhost> writes:
> 
> >As to checking for the point at infinity in ECDH, I'd rather have
that
> issue
> >addressed in a document that is clearly directed at ECDH rather than
> having
> >it hidden in a document that only peripherally touches ECDH. I'll be
> putting
> >out a "Suite B for Secure Shell" document in the near future and plan
> to cover
> >such issues in there.
> 
> Shouldn't this check be automatic anyway for a (correct)
> implementation?  The
> standard that defines ECC use (keygen, key checking, data formats,
> etc),
> X9.62, already mandates this check (although for some reason the RFC
> references it as informative rather than normative and gives the SECG
> doc as
> the primary reference when pretty much everything else uses X9.62, and
> AFAIK
> the SECG stuff was derived from the earlier X9.62 work), so if you
> implement
> ECC correctly than you already do this check.  In any case the text
> says:
> 
>    All elliptic curve public keys MUST be validated after they are
>    received.  An example of a validation algorithm can be found in
>    Section 3.2.2 of [SEC1].  If a key fails validation, the key
> exchange
>    MUST fail.
> 
> so it appears this is already covered.  The checks I have, from X9.62,
> are:
> 
> 	/* Verify that the public key parameter sizes are valid:
> 
> 		qx, qy >= MIN_PKCSIZE_ECC, qx, qy <= p - 1 */
> 
> 	/* Verify that Q is not the point at infinity */
> 
> 	/* Verify that qx, qy are elements in the field Fq, i.e. in the
> range
> 	   0...p - 1 */
> 
> 	/* Verify that qy^2 is congruent to qx^3 + a*qx + b (mod p) */
> 
> 	/* Verify that n * Q is the point at infinity */
> 
> If that's sufficient for checking Q then the existing doc already
> covers
> things.
> 
> Peter.



Home | Main Index | Thread Index | Old Index