/ECC-Framework

Elliptic Curve Cryptography (ECC) Framework, ECC, ECDH(E), ECDSA, EC ElGamal, ECIES, HMAC

Primary LanguageCMIT LicenseMIT

ECC Framework

Elliptic Curve Cryptography (ECC) Framework

Algorithms and Protocols Implemented in the Project (OOP C++ and C):

1- ECC (Elliptic Curve Math, ECC, Domain Parameters, Standard Curves, Key Pair Generation)

2- ECDH(E) (Elliptic Curve Diffie-Hellman [Ephemeral], Shared Secret Generation)

3- ECDSA (Elliptic Curve Digital Signature Algorithm with Arbitrary Hash Function. e.g. BLAKE2b)

4- EC ElGamal (EC ElGamal Encryption and EC ElGamal Signature)

5- ECIES (Elliptic Curve Integrated Encryption Scheme, Key Derivation Function [KDF] based on Argon2id, MAC, Twofish Symmetric Encryption)

6- HMAC (BLAKE2b, SHA-3 Family, SHA-2 Family)


Libraries and Codes Used in the Project:

1- GMP

2- Givaro

3- OpenSSL (Only Hash Functions e.g. SHA) (BLAKE2 and Argon2 are computed independently)

4- Argon2

5- BLAKE2

6- Twofish Encryption (Neil Ferguson’s Twofish C library)


Tested on Ubuntu 22.04.4 LTS

Compiled using GCC 11.4.0 x86_64-linux-gnu


If you find any bugs or improvements, please let me know.


Terms of Use & Disclaimer:

This project is developed for educational purposes. Use it at your own risk!


With inspiration and help from projects:

https://github.com/poojagarg/ECC

and

https://github.com/rapoma/ecc-basis