Can anyone speak to the history of the examples here (or the content of the
report itself)?

Thanks,

Ben

On Tue, Nov 17, 2020 at 10:46:21AM -0800, RFC Errata System wrote:
> The following errata report has been submitted for RFC8031,
> "Curve25519 and Curve448 for the Internet Key Exchange Protocol Version 2 
> (IKEv2) Key Agreement".
> 
> --------------------------------------
> You may review the report below and at:
> https://www.rfc-editor.org/errata/eid6339
> 
> --------------------------------------
> Type: Technical
> Reported by: Christian Tschudin <christian.tschu...@unibas.ch>
> 
> Section: Appendix A
> 
> Original Text
> -------------
> The public keys are generated from this using the formula in
> Section 2:
> 
> pub_i = X25519(d_i, G) =
>              48 d5 dd d4 06 12 57 ba 16 6f a3 f9 bb db 74 f1
>              a4 e8 1c 08 93 84 fa 77 f7 90 70 9f 0d fb c7 66
> 
> pub_r = X25519(d_r, G) =
>              0b e7 c1 f5 aa d8 7d 7e 44 86 62 67 32 98 a4 43
>              47 8b 85 97 45 17 9e af 56 4c 79 c0 ef 6e ee 25
> 
> And this is the value of the Key Exchange Data field in the Key
> Exchange payload described in Section 3.1.  The shared value is
> calculated as in Section 2:
> 
> SHARED_SECRET = X25519(d_i, pub_r) = X25519(d_r, pub_i) =
>              c7 49 50 60 7a 12 32 7f-32 04 d9 4b 68 25 bf b0
>              68 b7 f8 31 9a 9e 37 08-ed 3d 43 ce 81 30 c9 50
> 
> 
> Corrected Text
> --------------
> The public keys are generated from this using the formula in
> Section 2:
> 
> pub_i = X25519(d_i, G) =
>              a7 07 b3 bc 0f 37 56 fc 0a cf 33 55 85 c5 f7 7b
>              9f 29 ff a4 24 70 14 af 84 70 5b eb 50 46 26 29
> 
> pub_r = X25519(d_r, G) =
>              0e 57 7e 11 5d 6c 08 59 b8 51 36 d2 1b 1c fd 74
>              67 9f 91 14 61 1d 79 c6 81 ba d0 8a 7e 1f 0a 04
> 
> And this is the value of the Key Exchange Data field in the Key
> Exchange payload described in Section 3.1.  The shared value is
> calculated as in Section 2:
> 
> SHARED_SECRET = X25519(d_i, pub_r) = X25519(d_r, pub_i) =
>              d6 8d 8c ea fd 2c d3 ce 25 34 43 33 c8 9e 35 54
>              9e 0f c6 1a 98 87 39 34 b1 8a 18 70 f0 3a 17 0c
> 
> 
> Notes
> -----
> The test vector values given both for the public keys and for the shared 
> secret are wrong. It turns out that they were derived from the unchanged 
> random input, instead of d_X. An explanation could be that a first text 
> version did not include the fixing of the random bits and that after 
> inserting the respective paragraph (introducing fixed_X and d_X), it was 
> forgotten to update pub_X and SHARED_SECRET.
> 
> This discrepancy came to my attention when testing the Yubikey 5 hardware and 
> comparing it with the NaCl library and RFC8031. While the NaCl library works 
> as expected, it is disturbing to see that the Yubikey can only be made to 
> produce the desired (above and corrected) shared secret if you let it compute 
> X25519(fixed_i,pub_r). That is, the secret must be presented to the Yubikey 
> in big-endian format which could be "inspired" by the (not very detailed) 
> Smartcard spec 3.4.1 that refers to ANSI X9.62 where curve parameters, 
> prefixed with 0x04, are encoded in big-endian order - clearly the ANSI 
> encoding is not useful here as we only need one parameter u. I wonder whether 
> RFC8031 should spell out that input parameters (d_X and pub_X) SHOULD be 
> presented in encoded form (and thus little-endian), hence putting 
> manufacturers in charge of documenting any deviation.
> 
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party  
> can log in to change the status and edit the report, if necessary. 
> 
> --------------------------------------
> RFC8031 (draft-ietf-ipsecme-safecurves-05)
> --------------------------------------
> Title               : Curve25519 and Curve448 for the Internet Key Exchange 
> Protocol Version 2 (IKEv2) Key Agreement
> Publication Date    : December 2016
> Author(s)           : Y. Nir, S. Josefsson
> Category            : PROPOSED STANDARD
> Source              : IP Security Maintenance and Extensions
> Area                : Security
> Stream              : IETF
> Verifying Party     : IESG

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

Reply via email to