<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">As far as other curves go, there is also my Decaf library for Ed448-Goldilocks:</div><div class=""><br class=""></div><div class=""><a href="http://sourceforge.net/p/ed448goldilocks/code/ci/decaf/tree/" class="">http://sourceforge.net/p/ed448goldilocks/code/ci/decaf/tree/</a></div><div class=""><br class=""></div><div class="">It includes a C++ header with overloaded arithmetic operations, so you can do all the arithmetic operations you might expect:</div><div class="">Scalar +-*/= Scalar</div><div class="">Point +-= Point</div><div class="">Point */ Scalar, Scalar * Point</div><div class="">Precompute point, precomputed point */ scalar</div><div class="">Constant or variable-time double scalarmul</div><div class="">Convert point to a string and back</div><div class="">Hash uniformly or non-uniformly to the curve</div><div class="">Steganographically encode point on curve</div><div class=""><br class=""></div><div class="">The code implements a prime-order group, so you don’t have to worry about cofactor.  All the operations are constant-time except variable-time double-scalar-mul (i.e. verify), and steg encoding (which succeeds with probability 1/2 on each iteration).</div><div class=""><br class=""></div><div class="">The library also includes an implementation of SHA3 and SHAKE, but you can glue it to your favorite hash function instead.</div><div class=""><br class=""></div><div class="">I can’t guarantee that the code is 100% stable, but it should be plenty for research use.  Most of the guts are generic, so it shouldn’t be too hard to point to other curves, especially curves over 3-mod-4 fields with cofactor exactly 4.  (I.e. you could try porting to Curve25519, but it’d be trickier than porting to a curve mod 2^251-9 or the MS NUMS curves.)</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">— Mike</div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On Jun 17, 2015, at 2:16 PM, Frank Wang <<a href="mailto:frankw@mit.edu" class="">frankw@mit.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi,<div class=""><br class=""></div><div class="">I am working on a research project at MIT, and I need to use elliptic curves (or a group where DDH is hard, but elliptic curves seem like the best way to go) to implement a cryptographic scheme. I've been trying to search for general Curve25519 and Ed25519 libraries where I can just do add and scalar multiply as well as hash messages to points. The best library I've come across so far is tweetnacl, which has the add and scalar multiply operation for Ed25519, but it's a bit difficult to use, and I end up modifying the library to do subtraction of points.</div><div class=""><br class=""></div><div class="">I have yet to find a good library that allows me to just do operations on Ed25519 or Curve25519. Does such a library exist? If not, any tips on what I should do? Should I just use another curve library that is better supported? If so, any suggestions?</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Frank</div></div>
_______________________________________________<br class="">Curves mailing list<br class=""><a href="mailto:Curves@moderncrypto.org" class="">Curves@moderncrypto.org</a><br class="">https://moderncrypto.org/mailman/listinfo/curves<br class=""></div></blockquote></div><br class=""></body></html>