GithubHelp home page GithubHelp logo

Point release for Ed25519 bug fix about tink HOT 12 CLOSED

google avatar google commented on August 20, 2024
Point release for Ed25519 bug fix

from tink.

Comments (12)

thaidn avatar thaidn commented on August 20, 2024

Hi iainmcgin@,

Yes it's a known bug in the code. That's why it's annotated with @Alpha. We don't recommend using it for production.

We're working hard on 1.1.0 release, but Ed25519 might not make the cut because we're still worried about that code (it was written by a contributor).

Do you absolutely need it or can you switch to ECDSA? If you really need it, we'll spend more time working on it and that might delay the 1.1.0 release 1-2 weeks -- it's fine for us, because we have no pressure to release it now.

from tink.

thaidn avatar thaidn commented on August 20, 2024

Without Ed25519, 1.1.0 will be out in a couple of days. With Ed25519, it won't be later than 4/15/2018.

from tink.

iainmcgin avatar iainmcgin commented on August 20, 2024

We don't desperately need it, I just picked that scheme as it is intended to be more performant than ECDSA, according to Bernstein's paper, though I haven't actually tried benchmarking the Tink implementation to see if that is the case.

So anyway, don't rush on my account. If there are any low-hanging fruit changes needed that you'd like help with, let me know.

P.S: Hello from the outside, I left the Google Identity team a couple of months ago.

from tink.

ise-crypto avatar ise-crypto commented on August 20, 2024

Thanks Iain. We implemented it in pure Java, so it might not give you a better performance comparing to JCE ECDSA which I believe is a wrapper of native code. I'd love to see the numbers if you happen to benchmark it though.

Cheers!

from tink.

iainmcgin avatar iainmcgin commented on August 20, 2024

Oh, one last thing: I didn't realize the Ed25519 implementation was alpha, and I think a potential point of confusion there is that Ed25519 is included from the default Tink config registration. Maybe if it's not considered safe to use, it shouldn't be in the default config and users of the library should have to explicitly roll their own config to include it?

from tink.

thaidn avatar thaidn commented on August 20, 2024

from tink.

iainmcgin avatar iainmcgin commented on August 20, 2024

@ise-crypto I wrote a simple micro-benchmark to measure performance of signing operations for Ed25519 and ECDSA. You can see the code and results here: https://github.com/wework/tink-signature-benchmark

tl;dr: The Ed25519 implementation in Tink is almost 10x faster than the OpenJDK provided implementation of ECSDA with the P-256 curve.

from tink.

thaidn avatar thaidn commented on August 20, 2024

from tink.

iainmcgin avatar iainmcgin commented on August 20, 2024

Sure, the Kotlin code isn't that fancy and should be straightforward to translate. Want me to send you a PR?

from tink.

thaidn avatar thaidn commented on August 20, 2024

from tink.

thaidn avatar thaidn commented on August 20, 2024

Hey Iain, just want to make sure you see this. We released 1.2.0 with Ed25519.

from tink.

iainmcgin avatar iainmcgin commented on August 20, 2024

I spotted that, thanks! I'm still working with my employer to get the Google Corporate CLA signed so that I can send you a PR for the benchmarking code; hopefully that will be resolved soon.

from tink.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.