**EC Cryptography Tutorials - Herong's Tutorial Examples** - Version 1.00, by Dr. 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

Conclusion:

- 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)