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

EC Cryptography in Java

This chapter provides tutorial notes on generating EC (Elliptic Curve) keys with Java technology. Topics covered include using 'keytool' command to generate EC private-public key pairs; selecting different name elliptic curves or key sizes; writing Java program to generate EC keys.

"keytool -keyalg EC" - Generate EC Key Pair

"keytool -groupname ..." - Select Curve Name

Java Program to Generate EC Keys

Takeaways:

- "keytool" is a cryptography tool provided in the JDK (Java Development Kit) package.
- "keytool -genkeypair -keyalg EC" generates EC private-public key pairs with the default elliptic curve, "secp256r1".
- "keytool -genkeypair -keyalg EC -groupname secp521r1" generates EC key pairs with the specified curve.
- "JavaKeyPair.java" is simple Java program to generate EC key pairs with different key sizes.

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)