<div dir="ltr">Trevor,<div><br></div><div>This is probably too "researchy" and not ready for prime time, but we recently implemented a GLS binary curve over GF(2^254) [1] with the following results for constant-time variable-base scalar multiplication:</div>
<div><br></div><div>Sandy Bridge: 115K</div><div>Haswell: 60K</div><div><br></div><div>Code was submitted to SUPERCOP and remains available at [2], but it's not very readable at this time (multiple hands and lots of macros). I'm currently porting it to RELIC. An implementation over curve K283 is coming in a month or so, since Haswell has better support for binary fields than prime fields, for the first time ever!</div>
<div><br></div><div>[1] <a href="http://eprint.iacr.org/2013/131.pdf">http://eprint.iacr.org/2013/131.pdf</a></div><div>[2] <a href="http://sites.google.com/site/dfaranha/projects/gls254.tar.gz" target="_blank" style="font-size:13px;font-family:arial,sans-serif">http://sites.google.com/site/dfaranha/projects/<span class="">gls254</span>.tar.gz</a></div>
</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">--<br>Diego de Freitas Aranha<br>Institute of Computing - University of Campinas<br><a href="http://www.ic.unicamp.br/~dfaranha" target="_blank">http://www.ic.unicamp.br/~dfaranha</a></div>
</div>
<br><br><div class="gmail_quote">On Tue, Apr 22, 2014 at 8:32 PM, Trevor Perrin <span dir="ltr"><<a href="mailto:trevp@trevp.net" target="_blank">trevp@trevp.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I'm trying to understand the time/security ratio for modern ECDH<br>
implementations.<br>
<br>
Some cycle-counts are below, for the best ECDH implementations I'm<br>
aware of. The numbers are for const-time variable-base scalar mult<br>
(the main component of ECDH) on two recent Intel microarchitectures.<br>
<br>
I've also provided a "normalized" time/security ratio in parentheses,<br>
which assumes that cycle-counts "should" scale as (security_level)^2.6<br>
due to Karatsuba, and sets "1" to the time/security ratio of Intel's<br>
recent P-256 implementation (smaller numbers are better).<br>
<br>
For curves with security level > 128, the best implementations I'm<br>
aware of are from Microsoft ([3], though code isn't available?) and<br>
Mike Hamburg [4,5]. I've listed the best-peforming of Microsoft's<br>
several curves. Mike's curve appears to be the fastest, for its<br>
security level.<br>
<br>
Is there anything I'm missing that's competitive? Anything coming soon?<br>
<br>
<br>
Sandy Bridge:<br>
<br>
[1] Intel P-256, 374K (1)<br>
<br>
[2] Curve25519, 194K (0.54)<br>
<br>
[3] Microsoft ed-382-mont, 590K (0.56)<br>
<br>
[4,5] Goldilocks-448, 688K (0.43)<br>
<br>
<br>
Haswell:<br>
<br>
[1] Intel P-256, 291K (1)<br>
<br>
[2] Curve25519, 162K (0.58)<br>
<br>
[4,5] Goldilocks-448, 571K (0.46)<br>
<br>
<br>
Trevor<br>
<br>
<br>
[1] <a href="http://eprint.iacr.org/2013/816.pdf" target="_blank">http://eprint.iacr.org/2013/816.pdf</a><br>
[2] <a href="https://eprint.iacr.org/2014/134.pdf" target="_blank">https://eprint.iacr.org/2014/134.pdf</a><br>
[3] <a href="http://research.microsoft.com/pubs/209303/curves.pdf" target="_blank">http://research.microsoft.com/pubs/209303/curves.pdf</a><br>
[4] <a href="https://moderncrypto.org/mail-archive/curves/2014/000064.html" target="_blank">https://moderncrypto.org/mail-archive/curves/2014/000064.html</a><br>
[5] <a href="https://moderncrypto.org/mail-archive/curves/2014/000101.html" target="_blank">https://moderncrypto.org/mail-archive/curves/2014/000101.html</a><br>
_______________________________________________<br>
Curves mailing list<br>
<a href="mailto:Curves@moderncrypto.org">Curves@moderncrypto.org</a><br>
<a href="https://moderncrypto.org/mailman/listinfo/curves" target="_blank">https://moderncrypto.org/mailman/listinfo/curves</a><br>
</blockquote></div><br></div>