ahron-chet / Asymmetric-encryption-algorithms-RSA-Elgamal-Diffie-Hellman

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Asymmetric-encryption, a full implementation of RSA, Elgamal, and Diffie-Hellman in Python.

This repository contains a complete and self-contained implementation of each of these algorithms, written entirely from scratch using only the Python standard library. No external libraries have been used, making this implementation highly efficient and portable.

The project includes a custom random number generator, as well as implementations of prime generation algorithms such as Euler's Totient function, the Euclidean algorithm, and the Miller-Rabin primality test. These algorithms are essential for the security and efficiency of the encryption schemes implemented in this project.

The RSA algorithm is a widely used asymmetric encryption scheme that allows for secure communication between two parties. It is based on the mathematical concept of factoring large composite numbers into their prime factors. The implementation in this repository includes key generation, encryption, and decryption functions.

The Elgamal algorithm is another popular asymmetric encryption scheme that uses the principles of modular arithmetic to provide security. It is based on the Diffie-Hellman key exchange protocol, which allows two parties to agree on a shared secret key over an insecure communication channel. The implementation in this repository includes key generation, encryption, and decryption functions.

The Diffie-Hellman key exchange protocol is a fundamental building block of many modern encryption schemes. It allows two parties to agree on a shared secret key over an insecure communication channel, without any prior shared information. The implementation in this repository includes key generation and key exchange functions.

Each algorithm has been thoroughly tested and is fully functional. The code is well-documented and easy to understand, making it a valuable resource for anyone interested in learning about or implementing these algorithms.

About


Languages

Language:Python 100.0%