Skip to content

Drscq/ElGamal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

ElGamal Cryptosystem Implementations in C++ (On Going)

Welcome to the repository for the ElGamal cryptosystem implementations. This project contains implementations of the standard ElGamal cryptosystem, the exponential ElGamal cryptosystem, and their elliptic curve-based variants in C++. These implementations are designed for cryptographic research and educational purposes, providing a solid foundation for understanding and working with the ElGamal cryptosystem in both prime fields and elliptic curve settings.

Features

  • Standard ElGamal Cryptosystem: A basic implementation of the ElGamal encryption scheme over a prime field, providing secure encryption and decryption functions.
  • Exponential ElGamal Cryptosystem: An advanced variant of ElGamal that supports homomorphic properties, useful for performing operations on encrypted data without needing to decrypt it first.
  • Elliptic Curve-based ElGamal Cryptosystem: Implementations of both the standard and exponential ElGamal schemes utilizing elliptic curve cryptography (ECC), offering stronger security with smaller key sizes.
  • C++ Implementation: All cryptographic schemes are implemented in C++ with a focus on efficiency and clarity, making the codebase suitable for both study and practical use.

Contents

Working on it.

Getting Started

Prerequisites

  • A C++ compiler supporting C++17 or later.
  • OpenSSL library (for handling cryptographic operations).

Building the Project

To build the project, use the following commands:

git clone https://github.com/yourusername/ElGamalCryptosystem.git
cd ElGamalCryptosystem
make

Running Tests

You can run the provided test cases to verify the implementations:

./tests/run_tests

Usage

Each implementation comes with a set of examples demonstrating how to use the cryptosystems. For detailed instructions, please refer to the comments within each source file.

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests to improve the implementations or add new features.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published