LWN.net Logo

An introduction to Elliptic Curve Cryptography

March 8, 2006

This article was contributed by Jake Edge.

Elliptic Curve Cryptography (ECC) has been gaining momentum as a replacement for RSA public key cryptography largely based on its efficiency, but also because the US National Security Agency (NSA) included it, while excluding RSA, from its Suite B cryptography recommendations. Suite B is a set of algorithms that the NSA recommends for use in protecting both classified and unclassified US government information and systems.

Public key cryptography is the basis for tools like ssh as well as Secure Sockets Layer (SSL) for encrypting web traffic. For readers who would like more information, a nice introduction to public key cryptography and the RSA algorithm can be found on Wikipedia.

ECC is based on some very deep math involving elliptic curves in a finite field. It relies on the difficulty of solving the Elliptic Curve Discrete Logarithm Problem (ECDLP) in much the same way that RSA depends on the difficulty of factoring the product of two large primes. The best known method for solving ECDLP is fully exponential, whereas the number field sieve (for factoring) is sub-exponential. This allows ECC to use drastically smaller keys to provide the equivalent security; a 160-bit ECC key is equivalent to a 1024-bit RSA key.

Smaller key sizes lead to faster processing, which is very interesting to folks that are implementing encryption on small, mobile devices with limited resources in terms of power, CPU and memory. It is also very desirable for large web servers that will be handling many encrypted sessions. These are the technical considerations driving adoption. The NSA's recommendation makes it very attractive to companies that sell encryption products to the government and many non-governmental entities will also want products that implement ECC.

In order to use elliptic curves as part of a public key cryptosystem, both parties must agree on a set of domain parameters that fully specify the curve that is being used. Various groups, notably the US National Institute for Standards and Technology (NIST) and the Standards for Efficient Cryptography Group (SECG) have recommendations for the domain parameters to be used for various key sizes. The Internet Engineering Task Force (IETF) also has a draft specification for adding ECC to SSL/TLS.

Sun Microsystems has donated ECC code to OpenSSL and the Network Security Services (NSS) library; this allows the Apache web server and Mozilla browsers (and many other programs) to use ECC.

Unfortunately, as with RSA before its patent expired, the ECC landscape is littered with patent claims; some of dubious enforceability due to prior art. Sun claims patents on ECC technology, but has provided a "patent peace" provision in its license that states that it will not enforce its patent claims and asks that anyone holding patents associated with the code not enforce them against Sun.

The wild card in the ECC patent arena seems to be Certicom which claims a large number of ECC patents and has not made a clear statement of its intentions with regard to open source implementations. The NSA licensed Certicom's patents for $25 million to allow them and their suppliers to use ECC, lending some credence to at least some of the Certicom patents. Other companies also have patents on various pieces of ECC technology.

As is often the case with patents, it is well nigh impossible to determine what the patents cover and if an implementation infringes without going to court. Ironically, the clearest description of what is and is not patented is an RSA Laboratories FAQ entry:

In all of these cases, it is the implementation technique that is patented, not the prime or representation, and there are alternative, compatible implementation techniques that are not covered by the patents.

Of course, this is not legal advice from RSA and may or may not be how it is interpreted by the courts. We will all have to wait and see how it plays out if one or more of the patent holders decides to sue.

[The author wishes to thank his employer, Privacy Networks, for sending him to the RSA 2006 conference which inspired this article.]


(Log in to post comments)

An introduction to Elliptic Curve Cryptography

Posted Mar 9, 2006 4:59 UTC (Thu) by kirkengaard (subscriber, #15022) [Link]

I feel like I'm usually more insightful than this, but here it is anyways:

Would I be right in saying, then, that the patent landscape is irrelevant if one is implementing cleanroom from the math? Or is that copyright-mindset, so you're alright cleanroom from the math as long as you don't wind up substantially similar to an existing patented implemetation? And that's where the trouble lies, in determining exactly what implementations are foreclosed?

An introduction to Elliptic Curve Cryptography

Posted Mar 9, 2006 5:46 UTC (Thu) by jamesh (guest, #1159) [Link]

With patents if you independently discover something that has already been patented, you are still infringing.

You might be able to claim that the idea was obvious, but you'd still be risking a lawsuit.

An introduction to Elliptic Curve Cryptography

Posted Mar 9, 2006 18:39 UTC (Thu) by jzbiciak (✭ supporter ✭, #5246) [Link]

There is one benefit.... you avoid triple damages for willful infringement. Cold comfort, I know, but hey.

An introduction to Elliptic Curve Cryptography

Posted Mar 9, 2006 19:13 UTC (Thu) by oak (guest, #2786) [Link]

> With patents if you independently discover something that has
> already been patented, you are still infringing.

You're infringing even if you had made the discovery earlier, unless:
- you've patented the discovery, or
- you've made the information into prior art (public)
Just inventing it earlier is not enough.

Patents are about a possibility for the rich to buy (time-limited)
monopolies.

An introduction to Elliptic Curve Cryptography

Posted Mar 11, 2006 8:33 UTC (Sat) by LetterRip (guest, #6816) [Link]

[QUOTE]You're infringing even if you had made the discovery earlier, unless:
- you've patented the discovery, or
- you've made the information into prior art (public)
Just inventing it earlier is not enough. [/QUOTE]

Actually I believe that is incorrect (at least for the US).

I'm not a lawyer, but as I recall as long as you documented your prior invention - then your invention has primacy. Things like lab notes and other formal documentation procedures can be used to establish this.

LetterRip

Elliptic Curve Cryptography patents

Posted Mar 11, 2006 23:09 UTC (Sat) by giraffedata (subscriber, #1954) [Link]

I too have only a vague understanding of this, but years ago, I know the US stood out with its "first to invent" rule, which meant a patent was good only to the first person to invent something, so if you had private notes proving you had invented it earlier than the patentee, you not only had a right to use it yourself, but the patent was invalid and you could file your own patent and exclude the original patentee from the invention!

But I also heard the US was thinking of changing to the more practical "first to file" rule, where whoever files a patent first owns the invention. I don't know if that happened.

Incidentally, one point missed from the original posting is that it contemplates developing an original implementation "from the math." In that case, there's no independent invention going on anyway -- using that math for that purpose is the invention, and you got it from someone else. It's not only a patent infringement, but a deliberate one.

An introduction to Elliptic Curve Cryptography

Posted Mar 9, 2006 15:28 UTC (Thu) by Nelson (subscriber, #21712) [Link]

The math isn't that deep, you need to have some math background though. On the upside, we know tons and tons about elliptical curves where some of the number theory about primes is relatively light (there haven't been many advances in that area) it gives you a degree of confidence in the EC methods. Also, the speed difference is huge, it's much much faster. You can play with the EC code in OpenSSL, it's not too difficult and there are tests in the test suite. I'm not sure where it stands exactly with NSS.

Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds