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

About This Book

This section provides some detailed information about this book - EC Cryptography Tutorials - Herong's Tutorial Examples.

**Title:** EC Cryptography Tutorials - Herong's Tutorial Examples

**Author:** Herong Yang -
Contact by email via herong_yang@yahoo.com.

**Category:** Computers / Security / Cryptography & Encryption

**Version/Edition:** v1.03, 2024

**Number of pages in PDF format:** 242

**Description:**
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.

**Keywords:**
ECC, Elliptic Curve, Cryptography, Private Key, Tutorial, Example.

**Copyright:**

- This book is under Copyright © 2019-2024 Herong Yang. All rights reserved.
- Material in this book may not be published, broadcasted, rewritten or redistributed in any form.
- The example codes is provided as-is, with no warranty of any kind.

**Revision history:**

- Version v1.03, 2024. Minor updates.
- Version v1.00, 2019. Started with basics of ECC.

**Web version: **https://www.herongyang.com/EC-Cryptography -
Provides free sample chapters, latest updates and readers' comments.
The Web version of this book has been viewed a total of:

- 222,214 times as of December 2023.
- 161,277 times as of December 2022.
- 107,714 times as of December 2021.
- 55,667 times as of December 2020.
- 21,574 times as of December 2019.

**PDF/EPUB version: **https://www.herongyang.com/EC-Cryptography/PDF-Full-Version.html -
Provides information on how to obtain the full version of this book in PDF, EPUB, or other format.

All chapters and their main topics are list below to guide you reading through this book:

- Geometric Introduction to Elliptic Curves - Point addition on an elliptic curve can be defined using the “Rule of the chord" geometrical algorithm.
- Algebraic Introduction to Elliptic Curves - “Rule of the chord" geometrical algorithm can be expressed in algebraic formula.
- Abelian Group and Elliptic Curves - Points on an elliptic curve with point addition forms an Abelian group.
- Discrete Logarithm Problem (DLP) - Scalar multiplication in elliptic curve Abelian group creates a DLP and is a good trapdoor function.
- Finite Fields - Finite field is a set with finite elements that forms an additive Abelian group and a multiplicative Abelian group. This chapter is not closely related to elliptic curve Abelian groups.
- Generators and Cyclic Subgroups - Element in an Abelian group can be used to generated a cyclic Abelian subgroup.
- Reduced Elliptic Curve Groups - All integer points on a reduced elliptic curve and the reduced point addition forms a finite Abelian group.
- Elliptic Curve Subgroups - Any point in a reduced elliptic curve group can be used to generated a cyclic Abelian subgroup, which is the basis for Elliptic Curve Cryptography (ECC).
- tinyec - Python Library for ECC - tinyec is a Python library that allows you to build an elliptic curve subgroup and explore its properties.
- EC (Elliptic Curve) Key Pair - Scalar multiplication in an elliptic curve subgroup, d*G = Q, can be used to generate a private-public key pair (d, Q), where G is the base point (the subgroup generator).
- ECDH (Elliptic Curve Diffie-Hellman) Key Exchange - ECDH key exchange protocol is to perform a scalar multiplication of one's own EC private key and other's EC public key to obtain the common secret key.
- ECDSA (Elliptic Curve Digital Signature Algorithm) - EC digital signature is calculated as, s = (h + r*d)/k, where h is the message hash, d is the private key, r is the x-coordinate of k*G, k is a random number, and G is the base point.
- ECES (Elliptic Curve Encryption Scheme) - ECES uses the ECDH key exchange protocol to derive a common secret key, which is then used to encrypt plaintext message.
- EC Cryptography in Java - JDK (Java Development Kit) offers functionalities to generate EC key pairs on a number of pre-defined elliptic curve Abelian subgroups.
- Standard Elliptic Curves - Some elliptic Curves Abelian subgroups are recommended by different organizations to generated secure EC private-pubic key pairs.

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)