Overview

ECB - Elliptic Curve Builder - is a generator of ordinary elliptic curves. The curves over GF(P), GF(2N) and GF(3N) are built using the so-called complex multiplication method. Even if, for some reasons, one does not trust the curves produced with ECB, they remain useful in order to test and/or to tune ECC applications.

Executable for Linux 64-bit (Ubuntu 14.04/x86-64 architecture)
Compiled with Free Pascal 3.0.0 and Lazarus 1.6.0
ECB for Linux screenshot

Properties of a curve created with ECB

  • over GF(P)
    • equation y2 = x3 + Ax + B;
    • the order is U = R*K with R prime and K < R;
    • the binary size of the prime modulus P may be any in 30..1536.

  • over GF(2N)
    • equation y2 + xy = x3 + Ax2 + B;
    • the order is U = R*K with R prime and K < R;
    • the field degree N may be any in 30..1024;
    • the basis of the field GF(2N) may be polynomial or normal.

  • over GF(3N)
    • equation y2 = x3 + Ax2 + B;
    • the order is U = R*K with R prime and K < R;
    • the field degree N may be any in 20..768;
    • the basis of the field GF(3N) may be polynomial or normal.


Examples of use
Over GF(P)
Parameters ---------- P = 81598516213282754316057565591253440513595901172568168425578611827 Discriminant = -261762 Class number = 288 Order U = R*K with R prime -------------------------- U = 81598516213282754316057565591253746600275322583683770317215734358 R = 40799258106641377158028782795626873300137661291841885158607867179 K = 2 U binary size = 216 R binary size = 215 K binary size = 2 MOV condition ------------- (P^e mod R) <> 1 for all e in 1..200 Field GF(P) ----------- P = 81598516213282754316057565591253440513595901172568168425578611827 J-invariant ----------- J = 39478255298952272494102096060286924102007387693101885025049078757 Curve (Y^2 = X^3 + AX + B) of order R*K --------------------------------------- R = 40799258106641377158028782795626873300137661291841885158607867179 K = 2 A = -3 B = 39203769498218508684097448848632530914621544507728641390082973841 Base point G (of order R) ------------------------- X = 43476061527435728668477113342291061267119890801047274484944180244 Y = 43201194101978834386880648267297883678441846149320875637805690899


Over GF(2N)
Parameters ---------- Field degree = 223 Discriminant = -679351 Class number = 446 Order U = R*K with R prime -------------------------- U = 13479973333575319897333507543509814922446042298823059087804060576348 R = 3369993333393829974333376885877453730611510574705764771951015144087 K = 4 U binary size = 223 R binary size = 221 K binary size = 3 K factorization = 2^2 MOV condition ------------- (2^e mod R) <> 1 for all e in 1..2230 Field GF(2^223) --------------- Field polynomial = [223,33,0] Basis type = Polynomial J-invariant ----------- J = 16#25E76404818D98066A1F96F9BD60B8893ACD62E9AE5D94B4637C1BB0 Curve (Y^2 + XY = X^3 + AX^2 + B) of order R*K ---------------------------------------------- R = 3369993333393829974333376885877453730611510574705764771951015144087 K = 4 A = 16#0 B = 16#7EAB5FFA1647DD122632792F7C0AC1CA30CADB4F03760D39D5992FA3 Base point G (of order R) ------------------------- X = 16#527F4CC2F00C90FF024BA0DDDC3965482ED4880C1C7EB710ADC64B20 Y = 16#226EDB59D9CD873484DDB8098BABAE0C0410ADB8BF1A66FEB0833790


Over GF(3N)
Parameters ---------- Field degree = 127 Discriminant = -427067 Class number = 127 Order U = R*K with R prime -------------------------- U = 3930061525912861057173624287137094778397646624162832523320429 R = 1310020508637620352391208095712364926132548874720944174440143 K = 3 U binary size = 202 R binary size = 200 K binary size = 2 MOV condition ------------- (3^e mod R) <> 1 for all e in 1..1143 Field GF(3^127) --------------- Field polynomial = [127,-126,-74,-0] Basis type = Normal Field multiplicative identity ----------------------------- I = 9#1444444444444444444444444444444444444444444444444444444444444444 J-invariant ----------- J = 9#2546211278166744651571743412152324532012305117470187544380405724 Curve (Y^2 = X^3 + AX^2 + B) of order R*K ----------------------------------------- R = 1310020508637620352391208095712364926132548874720944174440143 K = 3 A = 9#1444444444444444444444444444444444444444444444444444444444444444 B = 9#2503707542263565644442537604567155105413720456058768265246780510 Base point G (of order R) ------------------------- X = 9#1802145614788372537170244845128202454170083174688378761362676814 Y = 9#0027466558584743801174531346588086778106014481028255255865764138



Changes
v2.0.4 (May 9, 2016)
  • Use of the PCLMULQDQ assembler instruction (if available on the CPU). It considerably speeds up computations over GF(2N) fields.
 Previous changes



Download

The ECB software may be used free of charge but it might be a good idea to read the End-User License Agreement before downloading and using it.

  ecb-204-lx64.7z    736.3 kB   Executable  (binary file)

Valid XHTML 1.0 Strict