Jeffrey Walton on Sat, 02 Jan 2021 12:00:16 +0100


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

Re: How to use a named elliptic curve?


On Sat, Jan 2, 2021 at 5:08 AM Karim Belabas
<Karim.Belabas@math.u-bordeaux.fr> wrote:
>
> * Jeffrey Walton [2021-01-02 05:58]:
> > Hi Everyone,
> >
> > I'm working through the elliptic curve tutorial at
> > https://pari.math.u-bordeaux.fr/Events/PARI2017c/talks/ecc_en.pdf. I
> > want to use a named curve, like secp256k1 or secp256r1. It does not
> > appear to be covered in the tutorial.
> > ...
> > How do I create a named curve?
>
> The named curves mechanism only supports Cremona labels at this point
> (for curves over Q sorted by conductor provided by the Cremona database,
> which we repackage as 'elldata'); with the second syntax as in
>
>   E = ellinit("36a1");
>
> None of the crypto curves names (SEC2, FIPS 186-4, RFC3279, etc.) are
> currently supported by this mechanism. It's an interesting option,
> though, that would not be hard to support: Crenoma labels start by a
> digit, all crypto curves names I am aware of start by a letter...
>
> What names would we need to support ?
>   - [PKR]-* from FIPS
>   - sec* from SEC2
>   - prime* from RFC

curve25519 and curve448 are fairly popular. SEC-2/NIST and Bernstein's
curve would probably keep most people happy.

The RFC 3279 curves may be useful, too. I seem to recall some of them
are considered weak/wounded. I think some of them were from the 1998
version of ANSI 9.62. They include c2pnb163v1 and wtls1. But they
would probably make good academic material.

Jeff