-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Copying over from #1 with some changes.
There are a few options of how to handle the relationship between cofactor 4 curves and Ristretto. As far as I can glean from the Git history, ristretto448 used to be planned, but then quietly got cut.
Currently, the website presents Ristretto as this mixed bag between h = 4 as well as h = 8 and only h = 8:
Ristretto is a technique for constructing prime order elliptic curve groups with non-malleable encodings. It extends Mike Hamburg's Decaf approach to cofactor elimination to support cofactor-8 curves such as Curve25519.
[...]
Ristretto can be used in conjunction with Edwards curves with cofactor 4 or 8, and provides the following specific parameter choices:
However, ristretto448 for Ed448-Goldilocks, the other major Edwards curve going around, isn't actually defined. The reason specifying something for Ed448-Goldilocks at all is useful is because of I-D.draft-irtf-cfrg-voprf-03 specifying in § 8.1.4 that they only consider ciphersuites providing 196 bits of security (Not sure if this was supposed to be 192 or if they really did mean 196 bits but include NIST P-384 regardless). While the Internet Draft does account for required cofactor hacks, having a more elegant alternative to implement the IETF (V)OPRF on would probably be useful from an implementation perspective, and a lot less scary.
The curve selection page on the website of the Doppio group notes that Decaf is much easier and straightforward in the h = 4 case, both conceptionally and practically. And I agree in theory. Personally, I think the main issue with saying “just use Decaf”, however, is that there are no test vectors, plus the definition of what constitutes a negative number as well as encoding of field elements is implementation-defined. Making this well-defined (e.g. as Ristretto-flavored Decaf that just writes down Decaf and defines some missing elements and instantiates ristretto448 with that theory) would probably end up being a net gain. New curve designs could then pick up from the base decisions made for Ristretto-flavored Decaf, too, without having to specify a bunch of specific Decaf parameters for interop.