EC Cryptography Tutorials - Herong's Tutorial Examples - v1.03, by Herong Yang
EC Cryptography Tutorials - Herong's Tutorial Examples
https://www.herongyang.com/EC-Cryptography
Copyright © 2019-2024 Herong Yang. All rights reserved.
This EC (Elliptic Curve) cryptography tutorial book is a collection of notes and sample codes written by the author while he was learning cryptography technologies himself. Topics include rule of chord and point addition on elliptic curves; Abelian groups with additive/multiplicative notations; EC as Abelian groups; DLP (Discrete Logarithm Problem) and trapdoor function; Galois fields or finite fields with Additive/Multiplicative Abelian Group; Prime fields, binary fields, and polynomial fields; EC fields reduced with modular arithmetic; EC subgroup and base points; EC private key and public key pairs; ECDH (Elliptic Curve Diffie-Hellman) protocol; ECDSA (Elliptic Curve Digital Signature Algorithm); ECES (Elliptic Curve Encryption Scheme) protocol; Java tool/program to generate EC keys. Updated in 2024 (Version v1.03) with minor changes.
Table of Contents
Geometric Introduction to Elliptic Curves
Elliptic Curve Geometric Properties
Addition Operation on an Elliptic Curve
Prove of Elliptic Curve Addition Operation
Same Point Addition on an Elliptic Curve
Infinity Point on an Elliptic Curve
Negation Operation on an Elliptic Curve
Subtraction Operation on an Elliptic Curve
Identity Element on an Elliptic Curve
Commutativity of Elliptic Curve Operations
Associativity of Elliptic Curve Operations
Elliptic Curve Operation Summary
Algebraic Introduction to Elliptic Curves
Algebraic Description of Elliptic Curve Addition
Algebraic Solution for Symmetrical Points
Algebraic Solution for the Infinity Point
Algebraic Solution for Point Doubling
Algebraic Solution for Distinct Points
Elliptic Curves with Singularities
Elliptic Curve Point Addition Example
Elliptic Curve Point Doubling Example
Abelian Group and Elliptic Curves
Niels Henrik Abel and Abelian Group
Multiplicative Notation of Abelian Group
Additive Notation of Abelian Group
Modular Addition of 10 - Abelian Group
Modular Multiplication of 10 - Not Abelian Group
Modular Multiplication of 11 - Abelian Group
Abelian Group on Elliptic Curve
Discrete Logarithm Problem (DLP)
Doubling or Squaring in Abelian Group
Scalar Multiplication or Exponentiation
What Is Discrete Logarithm Problem (DLP)
Examples of Discrete Logarithm Problem (DLP)
Scalar Multiplication on Elliptic Curve as Trapdoor Function
Generators and Cyclic Subgroups
What Is Subgroup in Abelian Group
What Is Subgroup Generator in Abelian Group
Every Element Is Subgroup Generator
Order of Subgroup and Lagrange Theorem
Element Generated Subgroup Is Cyclic
Converting Elliptic Curve Groups
Elliptic Curves in Integer Space
Python Program for Integer Elliptic Curves
Elliptic Curves Reduced by Modular Arithmetic
Python Program for Reduced Elliptic Curves
Point Pattern of Reduced Elliptic Curves
Integer Points of First Region as Element Set
Reduced Point Additive Operation
Modular Arithmetic Reduction on Rational Numbers
Reduced Point Additive Operation Improved
What Is Reduced Elliptic Curve Group
Reduced Elliptic Curve Group - E23(1,4)
Reduced Elliptic Curve Group - E97(-1,1)
Reduced Elliptic Curve Group - E127(-1,3)
Reduced Elliptic Curve Group - E1931(443,1045)
Finite Elliptic Curve Group, Eq(a,b), q = pn
tinyec - Python Library for ECC
Perform Point Addition with tinyec
Find Subgroup with Point Addition
Set Subgroup Order to Higher Value
EC Private and Public Key Pair
EC Private Key Example - secp256k1
Generate secp256k1 Keys with OpenSSL
ECDH (Elliptic Curve Diffie-Hellman) Key Exchange
ECDSA (Elliptic Curve Digital Signature Algorithm)
ECES (Elliptic Curve Encryption Scheme)
"keytool -keyalg EC" - Generate EC Key Pair
"keytool -groupname ..." - Select Curve Name
Java Program to Generate EC Keys
"Legacy SunEC curve disabled" Error
What Are Standard Elliptic Curves
"openssl ecparam -list_curves" - Curves Supported by OpenSSL
"secp256r1" - For 256-Bit ECC Keys
"secp256k1" - For 256-Bit ECC Keys
"sect283r1" - For 256-Bit ECC Keys
"brainpoolP256r1"“ - For 256-Bit ECC Keys
Keywords: Cryptography, EC, Elliptic Curve, Tutorial, Example