/RSA

RSA is a public-key cryptosystem that is widely used for secure data transmission.

Primary LanguagePythonMIT LicenseMIT

GitHub contributors GitHub issues GitHub license GitHub forks GitHub stars GitHub Language

📝 Table of Contents

📙 About

  • RSA (Rivest–Shamir–Adleman) is a public-key cryptosystem that is widely used for secure data transmission.

  • In a public-key cryptosystem, the encryption key is public and distinct from the decryption key, which is kept secret (private). An RSA user creates and publishes a public key based on two large prime numbers, along with an auxiliary value. The prime numbers are kept secret.

  • Messages can be encrypted by anyone, via the public key, but can only be decoded by someone who knows the prime numbers.

  • The security of RSA relies on the practical difficulty of factoring the product of two large prime numbers, the "factoring problem". There are no published methods to defeat the system if a large enough key is used.

🏁 Getting Started

This is an list of needed instructions to set up your project locally, to get a local copy up and running follow these instructuins.

Installation

  1. Clone the repository
$ git clone https://github.com/ZeyadTarekk/RSA.git
  1. Navigate to repository directory
$ cd RSA
  1. Install dependencies
pip install sympy
pip install matplotlib
pip install sockets

Running

  1. Running the chat
python src/main1.py
python src/main2.py
  1. Running the attacks
python  src/attack.py
  • 1 for mathematical attack
  • 2 To test the key length vs attack time
  1. Running the efficiency test
python  src/effeciency.py

💻 Built Using

  • Python

📷 Demo Screenshots





Contributors

Zeyad Tarek
Zeyad Tarek

License

This software is licensed under MIT License, See License for more information.