**EC Cryptography Tutorials - Herong's Tutorial Examples** - v1.03, by Herong Yang

EC (Elliptic Curve) Key Pair

This chapter provides tutorial notes on EC (Elliptic Curve) key pair. Topics include definition of EC private and public key pair; example of elliptic curve and subgroup used to generate good EC key pair; using OpenSSL command line tool to generate EC key pairs.

EC Private and Public Key Pair

EC Private Key Example - secp256k1

Takeaways:

- EC (Elliptic Curve) private and public key requires the owner to select a set of domain parameters, (p,a,b,G,n,h), which specifies an elliptic curve and a subgroup.
- An EC private key is positive integer d, smaller than the subgroup order n.
- The EC public key of an EC private key is the result of the scalar multiplication of the private key and the subgroup generate: Q = d*G.
- An EC key pair is secure, if the private key, d, is large
enough. For example, if d is 256-bit long,
it will require about 2
^{256}operations to find d with the given public key Q. - A commonly used EC domain parameter set is called secp256k1, which uses the E(0,7) elliptic curve and is capable to generate 256-bit long private keys.
- "openssl ecparam" commands can be used to generate EC private and public key pairs.
- "openssl ec" commands can be used to manage EC private keys.

Table of Contents

Geometric Introduction to Elliptic Curves

Algebraic Introduction to Elliptic Curves

Abelian Group and Elliptic Curves

Discrete Logarithm Problem (DLP)

Generators and Cyclic Subgroups

tinyec - Python Library for ECC

ECDH (Elliptic Curve Diffie-Hellman) Key Exchange

ECDSA (Elliptic Curve Digital Signature Algorithm)