EC Cryptography Tutorials - Herong's Tutorial Examples
∟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
Is EC Private Key Secure
EC Private Key Example - secp256k1
Generate secp256k1 Keys with OpenSSL
EC Key in PEM File Format
EC Key File with Curve Name
Create EC Public Key File
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 2256 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
About This Book
Geometric Introduction to Elliptic Curves
Algebraic Introduction to Elliptic Curves
Abelian Group and Elliptic Curves
Discrete Logarithm Problem (DLP)
Finite Fields
Generators and Cyclic Subgroups
Reduced Elliptic Curve Groups
Elliptic Curve Subgroups
tinyec - Python Library for ECC
►EC (Elliptic Curve) Key Pair
ECDH (Elliptic Curve Diffie-Hellman) Key Exchange
ECDSA (Elliptic Curve Digital Signature Algorithm)
ECES (Elliptic Curve Encryption Scheme)
EC Cryptography in Java
Standard Elliptic Curves
Terminology
References
Full Version in PDF/EPUB