With ECDH, there are two separate EC points that are output by the algorithm:

- There's the public value xG (where x is our secret); this is passed in the KE 
payload
- There's the shared secret value xyG (where x is our shared secret, and y is 
the peer's secret); this is used in the key derivation function.

What RFC5903 says is:
- The public value xG will be expressed as explicit x, y coordinates.
- The shared secret value xyG (that is, the value we give to the sk generation 
function) will be only the x coordinate; the y coordinate will not be used.

Yes, this implies that doing point compression on the shared secret value 
doesn't make much sense (as point compression discards all but one bit of y -- 
the format that RFC5903 chooses already discards all the bits of y).  However, 
the argument about point compression was never about the shared secret value; 
instead, it was about the repesentation that appeared in the KE payload (that 
is, the one that is specified to have both the x and y coordinates).

As for Dan's question, it was about whether we should validate the public value 
we get from the peer, well, the public value does have explicit x and y 
coordinates, and so it makes sense to check them.


-----Original Message-----
From: ipsec-boun...@ietf.org [mailto:ipsec-boun...@ietf.org] On Behalf Of Yoav 
Nir
Sent: Friday, November 30, 2012 4:39 PM
To: Johannes Merkle
Cc: IPsecme WG; Manfred Lochter; Sean P. Turner; Dan Harkins; 
rfc-...@rfc-editor.org
Subject: Re: [IPsec] I-D on Using the ECC Brainpool Curves for IKEv2 Key 
Exchange

Hi Johannes,

Dan't question made me realise something I hadn't noticed before. 

In section 2.3, the draft says:
   For the encoding of the key exchange payload and the derivation of
   the shared secret, the methods specified in [RFC5903] are adopted.

   In an ECP key exchange in IKEv2, the Diffie-Hellman public value
   passed in a KE payload consists of two components, x and y,

However, according to RFC 5903:
      The Diffie-Hellman shared secret value consists of the x value of
      the Diffie-Hellman common value.

In fact RFC 5903 replaced 4753 just to say that the encoding consists only of 
x, not both x and y.

This also relates to Dan't question. If the y value is missing, what is there 
to verify?

Yoav

On Nov 30, 2012, at 7:57 PM, Dan Harkins <dhark...@lounge.org> wrote:

> 
>  Hi Johannes,
> 
> On Fri, November 30, 2012 4:11 am, Johannes Merkle wrote:
>> We have submitted a new revision of the Internet Draft on Using the 
>> ECC Brainpool Curves (defined in RFC 5639) for IKEv2 Key Exchange 
>> https://datatracker.ietf.org/doc/draft-merkle-ikev2-ke-brainpool/
>> 
>> Since there was considerable objection to the point compression 
>> method in the WG, we have removed this option altogether and define 
>> only the uncompressed KE payload format, which is in full accordance 
>> with RFC 5903.
>> 
>> 
>> Any feedback is welcome.
> 
>  I see that there is a requirement that an implementation MUST verify 
> that the D-H common value is not the point-at-infinity. Do you think 
> there should also be a requirement that an implementation MUST verify 
> that the x- and y-coordinates received from a peer satisfy the 
> equation of the negotiated curve (and abort the exchange if not)?
> 
>  regards,
> 
>  Dan.

_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to