Giter VIP home page Giter VIP logo

Comments (5)

kokke avatar kokke commented on July 21, 2024 1

Hi @trstovall and thanks for chiming in.

I read that too :) The problem is, that this is not the only patent on ECC - far from - it's just one of the better known ones. There are no public lists of all patents covering which ECC techniques, and there are not many sources of information on what is unencumbered.

Most ECC patents should expire around 2020-2021, from what I've read, but there are no guarantees. There is even an RFC dedicated to what is covered by patents in ECC and what isn't:
https://tools.ietf.org/html/rfc6090

Some patents are only valid in the US etc. etc. -- I don't know what to make of this. Software patents are an abomination...

from tiny-ecdh-c.

kokke avatar kokke commented on July 21, 2024

Hi @p0fi and thanks for your interest.

I have chosen not to support point compression, because it seems to be patent encumbered:
https://patents.google.com/patent/US6252960B1/en

I am not 100% sure when the patents will expire, but it should be soon.

from tiny-ecdh-c.

p0fi avatar p0fi commented on July 21, 2024

Oh really? Thats a pity, I really need a point compressed representation of the keys. Do you have any idea how I can maybe implement it myself easily? The patent link seems overwhelmingly complex since im not really into cryptography.

I found that https://github.com/kmackay/micro-ecc does support point compression but not the curve I need in particular.

from tiny-ecdh-c.

kokke avatar kokke commented on July 21, 2024

Not many people know for sure how the patent situation is currently.
Some patents cover only ECC-tech working on prime-field curves, others are for Galois-field (binary) curves. That could explain the difference, since Ken MacKay's library works on prime-field curves and mine works on Galois-fields (so-called binary curves)

ECC is quite the patent mine-field, so I haven't uploaded anything related to point compression, even though it's conceptually somewhat simple.

Basically, you exploit the fact that if you know the x-coordinate, there are only so many y-coordinates the point can have, if it lies on the curve.
For prime-field curves, it requires you calculate a modular square root.
For binary curves, you need to solve a quadratic equation to get the y-coordinate, so it's a bit more involved.

This page has great ECC resources, and pseudo-code for some field-operations:
http://point-at-infinity.org/ecc/

I think this answer on crypto.stackexchange has a pretty good explanation of the math involved:
https://crypto.stackexchange.com/questions/8914/ecdsa-compressed-public-key-point-back-to-uncompressed-public-key-point

There is a thorough description of formats under section 2.3 in this document:
http://www.secg.org/sec1-v2.pdf

And this blog is a really approachable introduction to ECC in general:
https://www.johannes-bauer.com/compsci/ecc/

from tiny-ecdh-c.

trstovall avatar trstovall commented on July 21, 2024

That patent link states the patent application expires today.

from tiny-ecdh-c.

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.