List of terms used in this book.

Abelian Group - An Abelian Group is a set of elements with a binary operation that satisfy 5 conditions: Closure, Commutativity, Associativity, Identity Element, and Symmetry.

DLP (Discrete Logarithm Problem) - DLP is the reverse operation of the scalar multiplication operation in an Abelian Group. There is no efficient algorithm for the DLP in an elliptic curve field. This makes the scalar multiplication in an elliptic curve field a good trapdoor function.

Domain Parameters - A set of parameters, (p,a,b,G,n,h), which specifies an elliptic curve and a subgroup to be used to generate private keys and their associated public keys.

Double-and-Add - Double-and-Add is efficient algorithm to perform scalar multiplications in an elliptic curve field.

EC (Elliptic Curve) - An EC is the set of 2 dimensional points of (x, y) that satisfy the following mathematical equation with given values of a and b:

y2 = x3 + ax + b

EC Group - An EC Group is an Abelian group defined with all points of an elliptic curve and the addition operation defined by the rule of chord.

EC Group on Finite Field - An EC Group on a Finite Field can also be called reduced EC group, which contains all integer points of an elliptic curve equation reduced by a modulo. The addition operation is also reduced by the same modulo.

EC Subgroup Generated from a Base Point - An EC Subgroup Generated from a Base Point is a subgroup of an EC Group on Finite Field with all points are generated from scalar multiplications of a given base point.

ECC (Elliptic Curve Cryptography) - ECC is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields.

ECDH (Elliptic Curve Diffie-Hellman) - ECDH is a secret key exchange protocol that uses the Elliptic Curve group property to establish a shared secret key without sending it directly to each other.

ECDSA (Elliptic Curve Digital Signature Algorithm) - ECDSA is an algorithm that uses elliptic curve subgroup properties to generate digital signatures of any given messages.

ECES (Elliptic Curve Encryption Scheme) - ECES is a schema that uses elliptic curve subgroup properties to encrypt a plaintext into a ciphertext using receiver's EC public key. The ciphertext can only be decrypted back to the plaintext by the receiver using his/her EC private key.

Finite Field - A Finite Field is a set of finite number of elements with two operations, one called addition and the other called multiplication, that satisfy conditions: Additive Abelian Group, Multiplicative Abelian Group and Distributivity.

Rule of the Chord - The Rule of the Chord is geometrical definition of the addition operation of the elliptic curve field.

Subgroup - A Subgroup is a subset of the Abelian Group that itself is an Abelian Group. The subgroup and its parent group are using the same operation.

Scalar Multiplication - The Scalar Multiplication is a derived operation from the addition operation of an Abelian Group by adding the same element multiple times. Scalar Multiplications in elliptic curve fields are good trapdoor functions.

Trapdoor Function - A Trapdoor Function is an operation that is much easier to perform than its reverse operation.

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



 Full Version in PDF/EPUB