Elliptic-Curve Cryptography

Bitcoin uses a type of asymmetric key cryptography known as Elliptic Curve Cryptography. The following are some good references to online materials that I have found useful in understanding the basics of ECC. It should be said that for the application developer knowledge of ECC is not a pre-requisite. There exists libraries that do all the interesting bits.

That being said, it is a good idea to have a basic understanding of how ECC works if one intends to use either ECDH (Elliptic-Curve Diffie-Hellman) or ECIES (Elliptic-Curve Integrated Encryption Scheme).

The following section will reference some video materials. Once those video materials are covered, with the basics in hand, a reading of the SECG’s (Standards for Efficient Cryptography Group) standards document for ECC would lay a good foundation for understanding ECC. Download the Document from here.

The following videos are those of Professor Bill Buchanan. Professor Buchanan maintains an extensive resource on cryptopgraphy at Bill’s Security Site. The website contains lots of tools, tutorials and code samples in both Golang and Python.

ECC Introduction


ECDSA (Elliptic-Curve Digital Signature Algorithm)


ECIES (Elliptic-Curve Integrated Encryption Scheme)


ECDH (Elliptic-curve Diffie-Hellman)