# elliptic curves

Published articles for elliptic curves.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Sending and Authenticating Messages with Elliptic Curves

DevFeed: [Sending and Authenticating Messages with Elliptic Curves](<https://devfeed.tech/articles/sending-and-authenticating-messages-with-elliptic-curves-40355.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/04/14/sending-and-authenticating-messages-with-elliptic-curves/>)

Published: 2014-04-14T10:00:38Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Python](<https://devfeed.tech/topics/python.md>), [Code](<https://devfeed.tech/topics/code.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [diffie-hellman](<https://devfeed.tech/tags/diffie-hellman.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [discrete-logarithm](<https://devfeed.tech/tags/discrete-logarithm.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [python](<https://devfeed.tech/tags/python.md>), [security](<https://devfeed.tech/tags/security.md>), [shamir-massey-omura](<https://devfeed.tech/tags/shamir-massey-omura.md>)

### AI overview

A tutorial explains how the Shamir-Massey-Omura protocol can send a message without a pre-shared secret, using elliptic-curve point operations and private locking values. It also notes that the accompanying Python implementations are intended for learning rather than practical security use.

### Source excerpt

Last time we saw the Diffie-Hellman key exchange protocol, and discussed the discrete logarithm problem and the related Diffie-Hellman problem, which form the foundation for the security of most protocols that use elliptic curves. Let's continue our journey to investigate some more protocols. Just as a reminder, the Python implementations of these protocols are not at all meant for practical use, but for learning purposes. We provide the code on this blog's Github page, but for the love of security don't actually use them.

## Elliptic Curve Diffie-Hellman

DevFeed: [Elliptic Curve Diffie-Hellman](<https://devfeed.tech/articles/elliptic-curve-diffie-hellman-40353.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/03/31/elliptic-curve-diffie-hellman/>)

Published: 2014-03-31T10:22:51Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Security, Privacy and Abuse Prevention](<https://devfeed.tech/topics/security-privacy-and-abuse-prevention.md>)

Tags: [cryptography](<https://devfeed.tech/tags/cryptography.md>), [diffie-hellman](<https://devfeed.tech/tags/diffie-hellman.md>), [discrete-logarithm](<https://devfeed.tech/tags/discrete-logarithm.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [rsa](<https://devfeed.tech/tags/rsa.md>)

### AI overview

This tutorial introduces the use of elliptic curves in cryptography, covering their mathematical history, point addition, the discrete logarithm problem, and the origins of elliptic-curve cryptography. The supplied excerpt also mentions concerns about vulnerable elliptic-curve standards and backdoor access.

### Source excerpt

So far in this series we've seen elliptic curves from many perspectives, including the elementary, algebraic, and programmatic ones. We implemented finite field arithmetic and connected it to our elliptic curve code. So we're in a perfect position to feast on the main course: how do we use elliptic curves to actually do cryptography? History As the reader has heard countless times in this series, an elliptic curve is a geometric object whose points have a surprising and well-defined notion of addition.

## Connecting Elliptic Curves with Finite Fields

DevFeed: [Connecting Elliptic Curves with Finite Fields](<https://devfeed.tech/articles/connecting-elliptic-curves-with-finite-fields-40352.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/03/19/connecting-elliptic-curves-with-finite-fields-a-reprise/>)

Published: 2014-03-19T10:00:05Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [arithmetic](<https://devfeed.tech/tags/arithmetic.md>), [code](<https://devfeed.tech/tags/code.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [fields](<https://devfeed.tech/tags/fields.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>)

### AI overview

A tutorial connecting elliptic-curve arithmetic over rational numbers with finite-field arithmetic. It combines previously developed programs and discusses the mathematical background, point addition, finite-field representations, and subtle limitations when applying the code across finite fields.

### Source excerpt

So here we are. We've studied the general properties of elliptic curves, written a program for elliptic curve arithmetic over the rational numbers, and taken a long detour to get some familiarity with finite fields (the mathematical background and a program that implements arbitrary finite field arithmetic). And now we want to get back on track and hook our elliptic curve program up with our finite field program to make everything work.

## Programming with Finite Fields

DevFeed: [Programming with Finite Fields](<https://devfeed.tech/articles/programming-with-finite-fields-40350.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/03/13/programming-with-finite-fields/>)

Published: 2014-03-13T10:00:11Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [math](<https://devfeed.tech/topics/math.md>), [Python](<https://devfeed.tech/topics/python.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [decorators](<https://devfeed.tech/tags/decorators.md>), [division-algorithm](<https://devfeed.tech/tags/division-algorithm.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [euclidean-algorithm](<https://devfeed.tech/tags/euclidean-algorithm.md>), [euclidean-domain](<https://devfeed.tech/tags/euclidean-domain.md>), [factoring](<https://devfeed.tech/tags/factoring.md>), [field-characteristic](<https://devfeed.tech/tags/field-characteristic.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [gcd](<https://devfeed.tech/tags/gcd.md>), [math](<https://devfeed.tech/tags/math.md>), [operator-overloading](<https://devfeed.tech/tags/operator-overloading.md>), [polynomial-ring](<https://devfeed.tech/tags/polynomial-ring.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [python](<https://devfeed.tech/tags/python.md>), [randomized-algorithm](<https://devfeed.tech/tags/randomized-algorithm.md>), [typecasting](<https://devfeed.tech/tags/typecasting.md>)

### AI overview

This tutorial explains how to implement number types in Python for arithmetic over finite fields. It introduces integers modulo a prime as a finite field and lays groundwork for later elliptic-curve arithmetic.

### Source excerpt

Back when I was first exposed to programming language design, I decided it would be really cool if there were a language that let you define your own number types and then do all your programming within those number types. And since I get excited about math, I think of really exotic number types (Boolean rings, Gaussian integers, Octonions, oh my!). I imagined it would be a language feature, so I could do something like this:

## Elliptic Curves as Python Objects

DevFeed: [Elliptic Curves as Python Objects](<https://devfeed.tech/articles/elliptic-curves-as-python-objects-40347.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/02/24/elliptic-curves-as-python-objects/>)

Published: 2014-02-24T10:00:28Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [classes](<https://devfeed.tech/topics/classes.md>), [object](<https://devfeed.tech/topics/object.md>), [constructor](<https://devfeed.tech/topics/constructor.md>), [test](<https://devfeed.tech/topics/test.md>), [unit test](<https://devfeed.tech/topics/unit-test.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [groups](<https://devfeed.tech/tags/groups.md>), [object](<https://devfeed.tech/tags/object.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [test](<https://devfeed.tech/tags/test.md>), [unit-test](<https://devfeed.tech/tags/unit-test.md>)

### AI overview

This tutorial translates elliptic-curve point addition from its geometric and formal description into Python code. It introduces curve and point classes, associates each point with its curve, implements relevant operators, and includes checks that points lie on smooth curves.

### Source excerpt

Last time we saw a geometric version of the algorithm to add points on elliptic curves. We went quite deep into the formal setting for it (projective space $ \mathbb{P}^2$), and we spent a lot of time talking about the right way to define the "zero" object in our elliptic curve so that our issues with vertical lines would disappear. With that understanding in mind we now finally turn to code, and write classes for curves and points and implement the addition algorithm.

## Elliptic Curves as Algebraic Structures

DevFeed: [Elliptic Curves as Algebraic Structures](<https://devfeed.tech/articles/elliptic-curves-as-algebraic-structures-40345.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/02/16/elliptic-curves-as-algebraic-structures/>)

Published: 2014-02-16T10:00:39Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [structure](<https://devfeed.tech/topics/structure.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [points](<https://devfeed.tech/tags/points.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This mathematical tutorial explains elliptic curves as algebraic structures. It develops the geometric algorithm for adding points by drawing a line through two points, finding the third intersection with the curve, and reflecting that point across the x-axis.

### Source excerpt

Last time we looked at the elementary formulation of an elliptic curve as the solutions to the equation $$y^2 = x^3 + ax + b$$ where $ a,b$ are such that the discriminant is nonzero: $$-16(4a^3 + 27b^2) \neq 0$$ We have yet to explain why we want our equation in this form, and we will get to that, but first we want to take our idea of intersecting lines as far as possible.

## Elliptic Curves as Elementary Equations

DevFeed: [Elliptic Curves as Elementary Equations](<https://devfeed.tech/articles/elliptic-curves-as-elementary-equations-40343.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/02/10/elliptic-curves-as-elementary-equations/>)

Published: 2014-02-10T10:00:40Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [algebra](<https://devfeed.tech/tags/algebra.md>), [algebraic-geometry](<https://devfeed.tech/tags/algebraic-geometry.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [function](<https://devfeed.tech/tags/function.md>), [mathematica](<https://devfeed.tech/tags/mathematica.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [security](<https://devfeed.tech/tags/security.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

This introductory tutorial explains elliptic curves as the sets of solutions to cubic polynomial equations in two variables. It motivates their study through algebraic geometry and their role in encryption, then begins developing the elliptic curve group structure using an elementary example involving pyramids of spheres.

### Source excerpt

Finding solutions to systems of polynomial equations is one of the oldest and deepest problems in all of mathematics. This is broadly the domain of algebraic geometry, and mathematicians wield some of the most sophisticated and abstract tools available to attack these problems. The elliptic curve straddles the elementary and advanced mathematical worlds in an interesting way. On one hand, it's easy to describe in elementary terms: it's the set of solutions to a cubic function of two variables.

## Introducing Elliptic Curves

DevFeed: [Introducing Elliptic Curves](<https://devfeed.tech/articles/introducing-elliptic-curves-40341.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/02/08/introducing-elliptic-curves/>)

Published: 2014-02-08T10:00:14Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>)

Tags: [cryptography](<https://devfeed.tech/tags/cryptography.md>), [diffie-hellman](<https://devfeed.tech/tags/diffie-hellman.md>), [digital-signatures](<https://devfeed.tech/tags/digital-signatures.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [implementing](<https://devfeed.tech/tags/implementing.md>), [nsa](<https://devfeed.tech/tags/nsa.md>), [python](<https://devfeed.tech/tags/python.md>), [rsa](<https://devfeed.tech/tags/rsa.md>)

### AI overview

An introductory tutorial series on elliptic curves and elliptic curve cryptography. It explains the motivation for ECC, its relationship to RSA and cryptographic security, and plans implementations covering finite fields, key exchange, encryption, and digital signatures.

### Source excerpt

With all the recent revelations of government spying and backdoors into cryptographic standards, I am starting to disagree with the argument that you should never roll your own cryptography. Of course there are massive pitfalls and very few people actually need home-brewed cryptography, but history has made it clear that blindly accepting the word of the experts is not an acceptable course of action. What we really need is more understanding of cryptography, and implementing the algorithms yourself is the best way to do that.