Content uploaded by Patrick Longa
Author content
All content in this area was uploaded by Patrick Longa on Sep 19, 2015
Content may be subject to copyright.
Specification of Curve Selection and
Supported Curve Parameters in MSR ECCLib
Joppe W. Bos1, Craig Costello2, Patrick Longa2, and Michael Naehrig2
1NXP Semiconductors
2Microsoft Research
This document explains the details of the curve generation algorithms and provides the
parameters for the NUMS (Nothing Up My Sleeve) curves, which are supported in the MSR
Elliptic Curve Cryptography Library (a.k.a. MSR ECCLib). For more details on curve selec-
tion and curve properties, see [1] and [2].
1 Notation
The following notation is used in this document.
sDenotes the target security level in bits, here s∈ {128,192,256}.
pDenotes a prime number.
cA positive integer used in the representation of the prime pas p= 22s−c.
FpThe finite field with pelements.
bAn element in the finite field Fp,b6=±2.
EbThe elliptic curve Eb/Fp:y2=x3−3x+bin short Weierstrass form,
defined over Fpby the parameter b6=±2.
rbThe prime order rb= #Eb(Fp) of the group of Fp-rational points on Eb.
tbThe trace of Frobenius tb=p+ 1 −rbof Eb.
r0
bThe prime order r0
b= #E0
b(Fp) = p+ 1 + tbof the group of Fp-rational
points on the quadratic twist E0
b.
dAn element in the finite field Fp,d /∈ {1,0}.
EdThe elliptic curve Ed/Fp:x2+y2= 1 + dx2y2in Edwards form, defined
over Fpby the parameter d /∈ {0,1}.
rdThe prime subgroup order such that 4rd= #Ed(Fp) is the order of the
group of Fp-rational points on Ed.
tdThe trace of Frobenius td=p+ 1 −4rdof Ed.
r0
dThe prime subgroup order such that 4r0
d= #E0
d(Fp) = p+1+tdis the
order of the group of Fp-rational points on the quadratic twist E0
d.
PA generator point defined over Fpeither of prime order rbon the Weier-
strass curve Eb, or of prime order rdon the Edwards curve Ed.
X(P) The x-coordinate of the elliptic curve point P.
Y(P) The y-coordinate of the elliptic curve point P.
2 Joppe W. Bos, Craig Costello, Patrick Longa, and Michael Naehrig
2 Selection of the prime p.
For each given security level s∈ {128,192,256}, a prime pis selected as a pseudo-Mersenne
prime of the form p= 22s−cfor a positive integer c. Each prime is determined by the smallest
positive integer csuch that p= 22s−cis prime. For the three values of sabove, the resulting
primes satisfy p≡3 (mod 4).
3 Selection of Weierstrass curves Eb
Given a security level s∈ {128,192,256}and a corresponding prime p= 22s−cselected
according to Section 2, the elliptic curve Ebin short Weierstrass form is determined by the
element b∈Fp,b6=±2 with smallest absolute value (when represented as an integer in the
interval [−(p−1)/2,(p−1)/2]) such that both group orders rband r0
bare prime and rb< r0
b.
4 Selection of Edwards curves Ed
Given a security level s∈ {128,192,256}and a corresponding prime p= 22s−cselected
according to Section 2, the elliptic curve Edin Edwards form is determined by the element
d∈Fp,d /∈ {0,1}with smallest absolute value (when represented as an integer in the interval
[−(p−1)/2,(p−1)/2]) such that both subgroup orders rdand r0
dare prime.
Specification of Curve Selection and Supported Curve Parameters in MSR ECCLib 3
5 Curve parameters for short Weierstrass curves.
The following curves in short Weierstrass form y2=x3−3x+bover Fpwere generated
according to Section 3.
Curve ID: numsp256d1, prime p= 2256
−189
p:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
b:0x25581
rb:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE43C8275EA265C6020AB20294751A825
X(P) : 0xBC9ED6B65AAADB61297A95A04F42CB0983579B0903D4C73ABC52EE1EB21AACB1
Y(P) : 0xD08FC0F13399B6A673448BF77E04E035C955C3D115310FBB80B5B9CB2184DE9F
cofactor : 0x01
Curve ID: numsp384d1, prime p= 2384
−317
p:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC3
b:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFF77BB
rb:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD61EAF1EEB5D6881
BEDA9D3D4C37E27A604D81F67B0E61B9
X(P) : 0x757956F0B16F181C4880CA224105F1A60225C1CDFB81F9F4F3BD291B2A6CC742
522EED100F61C47BEB9CBA042098152A
Y(P) : 0xACDEE368E19B8E38D7E33D300584CF7EB0046977F87F739CB920837D121A837E
BCD6B4DBBFF4AD265C74B8EC66180716
cofactor : 0x01
Curve ID: numsp512d1, prime p= 2512
−569
p:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC7
b:0x1D99B
rb:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
5B3CA4FB94E7831B4FC258ED97D0BDC63B568B36607CD243CE153F390433555D
X(P) : 0x3AC03447141D0A93DA2B7002A03D3B5298CAD83BB501F6854506E0C25306D9F9
5021A151076B359E93794286255615831D5D60137D6F5DE2DC8287958CABAE57
Y(P) : 0x943A54CA29AD56B3CE0EEEDC63EBB1004B97DBDEABBCBB8C8F4B260C7BD14F14
A28415DA8B0EEDE9C121A840B25A5602CF2B5C1E4CFD0FE923A08760383527A6
cofactor : 0x01
4 Joppe W. Bos, Craig Costello, Patrick Longa, and Michael Naehrig
6 Curve parameters for Edwards curves.
The following curves in Edwards form x2+y2= 1 + dx2y2over Fpwere generated according
to Section 4.
Curve ID: numsp256t1, prime p= 2256
−189
p:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
d:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC355
rd:0x4000000000000000000000000000000041955AA52F59439B1A47B190EEDD4AF5
X(P) : 0x8A7514FB6AEA237DCD1E3D5F69209BD60C398A0EE3083586A0DEC0902EED13DA
Y(P) : 0x44D53E9FD9D925C7CE9665D9A64B8010715F61D810856ED32FA616E7798A89E6
cofactor : 0x04
Curve ID: numsp384t1, prime p= 2384
−317
p:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC3
d:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFD19F
rd:0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2471A1CB46BE1CF
61E4555AAB35C87920B9DCC4E6A3897D
X(P) : 0x61B111FB45A9266CC0B6A2129AE55DB5B30BF446E5BE4C005763FFA8F3316340
6FF292B16545941350D540E46C206BDE
Y(P) : 0x82983E67B9A6EEB08738B1A423B10DD716AD8274F1425F56830F98F7F645964B
0072B0F946EC48DC9D8D03E1F0729392
cofactor : 0x04
Curve ID: numsp512t1, prime p= 2512
−569
p:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC7
d:0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECBEF
rd:0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
B4F0636D2FCF91BA9E3FD8C970B686F52A4605786DEFECFF67468CF51BEED46D
X(P) : 0xDF8E316D128DB69C7A18CB7888D3C5332FD1E79F4DC4A38227A17EBE273B8147
4621C14EEE46730F78BDC992568904AD0FE525427CC4F015C5B9AB2999EC57FE
Y(P) : 0x6D09BFF39D49CA7198B0F577A82A256EE476F726D8259D22A92B6B95909E8341
20CA53F2E9963562601A06862AECC1FD0266D38A9BF1D01F326DDEC0C1E2F5E1
cofactor : 0x04
References
1. Joppe W. Bos, Craig Costello, Patrick Longa, and Michael Naehrig. Selecting elliptic curves
for cryptography: An efficiency and security analysis. J. Cryptographic Engineering, 2015.
http://dx.doi.org/10.1007/s13389-015-0097-y.
2. Craig Costello, Patrick Longa, and Michael Naehrig. A brief discussion on selecting new elliptic curves.
Technical Report MSR-TR-2015-46, June 2015.