[curves] Microsoft ECCLib for "NUMS" curves

Trevor Perrin trevp at trevp.net
Mon Jun 30 14:54:52 PDT 2014


On Mon, Jun 30, 2014 at 1:29 PM, Samuel Neves <sneves at dei.uc.pt> wrote:
> Here are the remaining numbers:

Thanks, those are also very close to the numbers previously reported
by Microsoft [1] that I put in the spreadsheet.

It's good to get independent verification, but for variable-base
scalar mult it looks like there's no surprise here.  (I haven't looked
at fixed-base or "double-base" performance, though).


Trevor


[1] http://patricklonga.webs.com/Presentation_CFRG_Selecting_Elliptic_Curves_for_Cryptography.pdf


>> Curve arithmetic: Weierstrass a=-3 over GF(2^256-189)
>>
>>   Point doubling runs in ..........................................      687 cycles
>>   (Complete) point addition runs in ...............................     1788 cycles
>>   Variable-base scalar mul runs in ................................   282593 cycles
>>   Fixed-base scalar mul (memory model=MEM_LARGE) runs in ..........   109593 cycles
>>   Double-base scalar mul (memory model=MEM_LARGE) runs in .........   299468 cycles
>>
>> --------------------------------------------------------------------------------------------------------
>>
>> Curve arithmetic: twisted Edwards a=-1 over GF(2^256-189)
>>
>>   Point doubling runs in ..........................................      561 cycles
>>   (Complete) point addition runs in ...............................      932 cycles
>>   Variable-base scalar mul runs in ................................   228468 cycles
>>   Fixed-base scalar mul (memory model=MEM_LARGE) runs in ..........    84344 cycles
>>   Double-base scalar mul (memory model=MEM_LARGE) runs in .........   242463 cycles
>>
>> --------------------------------------------------------------------------------------------------------
>>
>> Curve arithmetic: Weierstrass a=-3 over GF(2^384-317)
>>
>>   Point doubling runs in ..........................................     1291 cycles
>>   (Complete) point addition runs in ...............................     3160 cycles
>>   Variable-base scalar mul runs in ................................   756699 cycles
>>   Fixed-base scalar mul (memory model=MEM_LARGE) runs in ..........   260110 cycles
>>   Double-base scalar mul (memory model=MEM_LARGE) runs in .........   795440 cycles
>>
>> --------------------------------------------------------------------------------------------------------
>>
>> Curve arithmetic: twisted Edwards a=-1 over GF(2^384-317)
>>
>>   Point doubling runs in ..........................................     1048 cycles
>>   (Complete) point addition runs in ...............................     1738 cycles
>>   Variable-base scalar mul runs in ................................   612372 cycles
>>   Fixed-base scalar mul (memory model=MEM_LARGE) runs in ..........   206029 cycles
>>   Double-base scalar mul (memory model=MEM_LARGE) runs in .........   644065 cycles
>>
>> --------------------------------------------------------------------------------------------------------
>>
>> Curve arithmetic: Weierstrass a=-3 over GF(2^512-569)
>>
>>   Point doubling runs in ..........................................     1995 cycles
>>   (Complete) point addition runs in ...............................     4798 cycles
>>   Variable-base scalar mul runs in ................................  1560055 cycles
>>   Fixed-base scalar mul (memory model=MEM_LARGE) runs in ..........   505452 cycles
>>   Double-base scalar mul (memory model=MEM_LARGE) runs in .........  1643738 cycles
>>
>> --------------------------------------------------------------------------------------------------------
>>
>> Curve arithmetic: twisted Edwards a=-1 over GF(2^512-569)
>>
>>   Point doubling runs in ..........................................     1697 cycles
>>   (Complete) point addition runs in ...............................     2832 cycles
>>   Variable-base scalar mul runs in ................................  1287500 cycles
>>   Fixed-base scalar mul (memory model=MEM_LARGE) runs in ..........   399970 cycles
>>   Double-base scalar mul (memory model=MEM_LARGE) runs in .........  1346718 cycles
>
> _______________________________________________
> Curves mailing list
> Curves at moderncrypto.org
> https://moderncrypto.org/mailman/listinfo/curves


More information about the Curves mailing list