[curves] General Curve25519 and Ed25519 Libraries
mike at shiftleft.org
Thu Jun 18 11:53:15 PDT 2015
Ah. Also RELIC implements hashing to the curve, but probably not the way you want. For prime-order curves they use hunt-and-pack, which works but isn’t constant time. For Edwards curves they use g^hash, which is going to outright break most protocols that use this primitive. I’m filing a bug against that.
> On Jun 18, 2015, at 11:45 AM, Michael Hamburg <mike at shiftleft.org> wrote:
> Hi Frank,
> My library supports hashing to the curve, as do Snowshoe [*] and Libelligator [+], and not much else that I’m aware of. Especially if you want it to be constant time and/or fast. I’d bet that some of the other fancy libraries like PBC and MIRACL have it though.
> I somehow misread your original message as “hashing points”.
> — Mike
> [*] https://github.com/catid/snowshoe <https://github.com/catid/snowshoe> by Christopher A Taylor
> It’s pretty fast and uses a 254-bit field. It doesn’t export point operations, but since it’s an Edwards curve it should be reasonably safe to use the internal APIs.
> [+] https://github.com/Yawning/libelligator <https://github.com/Yawning/libelligator>
> I found this by Googling. It looks to be based on Donna.
>> On Jun 18, 2015, at 11:01 AM, Frank Wang <frankw at mit.edu <mailto:frankw at mit.edu>> wrote:
>> Hi Mike,
>> Well, I want a way to translate a n-bit message to a point on the curve. My understanding is that it's easiest to hash it to the curve, but I could just be confused.
>> Does your library not support hashing to the curve?
>> On Thu, Jun 18, 2015 at 1:50 PM, Mike Hamburg <mike at shiftleft.org <mailto:mike at shiftleft.org>> wrote:
>> Wait, do you want to hash messages to the curve, or just be able to hash curve points? The former is kind of a niche feature, though you could implement it yourself if the library doesn't support it.
>> Sent from my phone. Please excuse brevity and typos.
>> On Jun 18, 2015, at 10:38, Frank Wang <frankw at mit.edu <mailto:frankw at mit.edu>> wrote:
>>> Hi Thomas,
>>> Yes. Sorry, my goal right now is that I have a key revocation scheme that I want to implement, involving elliptic curve addition, subtraction, and scalar multiplication (as well as hashing messages to the curve). I would like reasonable performance (so C does seem good) because I'm benchmarking it against AES. However, I'm willing to trade off some performance for ease of use.
>>> TweetNacl seems to be designed primarily for ECDH and EC signatures rather than a general purpose elliptic curve library. I'm exploring alternatives.
>>> On Thu, Jun 18, 2015 at 1:34 PM, Thomas DuBuisson <thomas.dubuisson at gmail.com <mailto:thomas.dubuisson at gmail.com>> wrote:
>>> A lot of recommendations are pouring in about C and Java libraries, on
>>> top of which I'm tempted to recommend my own in Cryptol or one of the
>>> Sage version out there, but none of us have heard about your actual
>>> goal and needs. Could you say more about how this code will be used
>>> and what you hope to achieve?
>>> On Wed, Jun 17, 2015 at 2:16 PM, Frank Wang <frankw at mit.edu <mailto:frankw at mit.edu>> wrote:
>>> > Hi,
>>> > 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.
>>> > 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?
>>> > Thanks,
>>> > Frank
>>> > _______________________________________________
>>> > Curves mailing list
>>> > Curves at moderncrypto.org <mailto:Curves at moderncrypto.org>
>>> > https://moderncrypto.org/mailman/listinfo/curves <https://moderncrypto.org/mailman/listinfo/curves>
>>> Curves mailing list
>>> Curves at moderncrypto.org <mailto:Curves at moderncrypto.org>
>>> https://moderncrypto.org/mailman/listinfo/curves <https://moderncrypto.org/mailman/listinfo/curves>
> Curves mailing list
> Curves at moderncrypto.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Curves