Simon Josefsson <[email protected]> writes:

> Wonderful.   There is another document coming out (describing the
> Curve25519 algo only) which contains test vectors from the NaCl library
> as well, including them would be good.

URL?

I have a couple of questions ragarding curve25519.

1. The input of the curve255519 function is the x coordiante only. I
   compute the y cordinate, via a square root. This might fail... I
   don't really understand Theorem 2.1 in the curve25519 paper, but it
   seems to indicate that for curve25519 to be defined for arbitrary x,
   one needs to consider coordinates in the extended field

     x = x_0 + x_1 sqrt(2)
     y = y_0 + y_1 sqrt(2)

   Obviously I don't want to do this. I think one can get away with
   treating x inputs where the square root fails as invalid. That
   shouldn't happen for public keys computed according to the spec.

   Are there any testcases for such questionable inputs?

2. API for the curve25519 function. I think I sent a mail about this
   previously. Should it be a single function (with some magic
   optimization for the input x == 9), or two functions? What do the
   NaCl and Sodium libraries do, and do they get it right?

3. I haven't yet figured out how to do the user-api using struct
   ecc_curve. I think I'll have to make functions like ecc_mul_g and
   ecc_mul_a go via function pointers in this struct, and also some
   abstract functions for converting points to and from an unspecified
   internal coordinate representation, which will be jacobian or
   edwards, with or without redc.

   Internal functions like ecc_add_jja have to move from ecc.h to
   ecc-internal.h, and there maybe some new more abstract functions for
   operating on points, regardless of internal coordinate
   representation.

4. Also, things need to be organized so that curve2519 and EdDSA can
   share the internals in a clean way. Maybe there could be two struct
   ecc_curve for the two equivalent curves, which differ only in
   conversions done on input and output.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs

Reply via email to