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

What Is tinyec

This section introduces what is tinyec - a tiny library to perform arithmetic operations on elliptic curves in pure Python.

**What Is tinyec?**
tinyec is a tiny library to perform arithmetic operations on elliptic
curves in pure Python.
It is not a library suitable for production.
It is useful for security professionals to understand the inner workings
of EC, and be able to play with pre-defined curves.

There are 2 main classes in tinyec:

- Curve(), which describes an elliptic curve in a finite field.
- Point(), which describes a point belonging to an EC.

tinyec also supports some named curves: brainpoolP160r1, brainpoolP192r1, brainpoolP224r1, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1, secp192r1, secp224r1, secp256r1, secp384r1, secp521r1

For more information, see tinyec Website at github.com/alexmgr/tinyec.

Last update: 2019.

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

Perform Point Addition with tinyec

Find Subgroup with Point Addition

Set Subgroup Order to Higher Value

ECDH (Elliptic Curve Diffie-Hellman) Key Exchange

ECDSA (Elliptic Curve Digital Signature Algorithm)