IETF-SSH archive

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

Re: Curve25519/448 key agreement for SSH



Hi Simon,

Regarding

  https://datatracker.ietf.org/doc/draft-josefsson-ssh-curves/

could advise on the the following?

|   The protocol flow, the SSH_MSG_KEX_ECDH_INIT and
|   SSH_MSG_KEX_ECDH_REPLY messages, and the structure of the exchange
|   hash are identical to chapter 4 of [RFC5656].
|
|   The method names registered by this document are "curve25519-sha256"
|   and "curve448-sha256".

The RFC5656 "4. ECDH Key Exchange" also says

|    The Elliptic Curve Diffie-Hellman (ECDH) key exchange method
|    generates a shared secret from an ephemeral local elliptic curve
|    private key and ephemeral remote elliptic curve public key.  This key
|    exchange method provides explicit server authentication as defined in
|    [RFC4253] using a signature on the exchange hash.  Every compliant
|    SSH ECC implementation MUST implement ECDH key exchange.

which would seem to also implicitly reference RFC5656 3.1.1:

| 3.1.1.  Signature Algorithm
| 
|    Signing and verifying is done using the Elliptic Curve Digital
|    Signature Algorithm (ECDSA).  ECDSA is specified in [SEC1].  The
|    message hashing algorithm MUST be from the SHA2 family of hash
|    functions [FIPS-180-3] and is chosen according to the curve size as
|    specified in Section 6.2.1.

and if so, looking at 6.2.1:

| 6.2.1.  Elliptic Curve Digital Signature Algorithm
|
|   The hashing algorithm defined by this family of method names is the
|   SHA2 family of hashing algorithms [FIPS-180-3].  The algorithm from
|   the SHA2 family that will be used is chosen based on the size of the
|   named curve specified in the public key:
|
|                     +----------------+----------------+
|                     |   Curve Size   | Hash Algorithm |
|                     +----------------+----------------+
|                     |    b <= 256    |     SHA-256    |
|                     |                |                |
|                     | 256 < b <= 384 |     SHA-384    |
|                     |                |                |
|                     |     384 < b    |     SHA-512    |
|                     +----------------+----------------+

Is the hash to use driven by the table in RFC5656 as seen in 6.2.1 such
that curve448 should use SHA-512?

If so, why is the Key Exchange Method name "curve448-sha256" rather than
"curve488-sha512" ?

Also, should the current draft be updated to change references of
[I-D.irtf-cfrg-curves] to [RFC7748] ?

	Thank you,
	-- Mark



Home | Main Index | Thread Index | Old Index