**EC Cryptography Tutorials - Herong's Tutorial Examples** - Version 1.00, by Dr. Herong Yang

EC Cryptography Tutorials - Herong's Tutorial Examples

http://www.herongyang.com/EC-Cryptography

Copyright © 2019 by Dr. 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 and multiplicative notations; Elliptic curves as Abelian groups; DLP (Discrete Logarithm Problem) on elliptic curve groups; Scalar mutliplication as trapdoor function; Galois fields or finite fields with Additive Abelian Group and Multiplicative Abelian Group; Prime fields, binary fields, and polynomial fields; Subgroups and generators; Ellipic curve fields reduced with modular arithmetic; Ellipic curve subgroup and base points; EC private key and public key pairs; ECDH (Elliptic Curve Diffie-Hellman) Key Exchange protocol; ECDSA (Elliptic Curve Digital Signature Algorithm); Random number issue in ECDSA; ECES (Elliptic Curve Encryption Scheme) using symmetric encryptions with shared secret keys.

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 = p^n

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)

**Keywords:** Cryptography, EC, Elliptic Curve, Tutorial, Example