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

ECES (Elliptic Curve Encryption Scheme)

This chapter provides tutorial notes on ECES (Elliptic Curve Encryption Schema). Topics includes ECES plaintext encryption and ciphertext decryption processes; using Crypto.Cipher.AES module to test ECES.

*These sections are omitted from this Web preview version. To view the full content,
see information on how to obtain the full version this book.
*

ECES Plaintext Encryption

ECES Ciphertext Decryption

Download and Install PyCryptodome

ECES Encryption with Crypto.Cipher.AES

ECES Decryption with Crypto.Cipher.AES

EC Encryption of Plaintext Point

Takeaways:

- ECES (Elliptic Curve Encryption Scheme) 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.
- ECES encryption process actually uses the ECDH Key Exchange protocol to derive a shared secret key. Then a shared cipher function is used to encrypt the plaintext message with the shared secret key.
- ECES decryption process actually uses the ECDH Key Exchange protocol to recover the shared secret key. Then a shared cipher function is used to decrypt the ciphertext message with the shared secret key.
- Crypto.Cipher.AES module from the PyCryptodome Python library can be used to test the ECES encryption and decryption processes.
- Plaintext message can be mapped to a point on the elliptic curve and encrypted to a ciphertext point using a shared secret point.

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)