Skip to content

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

License

Notifications You must be signed in to change notification settings

rezameerr/ECC-Framework

Repository files navigation

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