Skip to content

Repository files navigation

Cryptography Simulation Project

Overview

This program is a cryptography application developed by Merbouche Mouloud. It showcases the implementation of various cryptography algorithms including RSA, Elliptic Curve Cryptography (ECC), Fernet encryption, Quantum Key Distribution, and the Vigenère Cipher.

Final Score

The project was awarded a final grade of 19/20.

Dependencies

To run this application, you will need Python along with the following libraries:

  • tkinter for the graphical user interface
  • cryptography for cryptographic operations
  • Pillow for image processing tasks
  • random for generating random numbers, essential for cryptographic algorithms
  • os for operating system interaction

These dependencies can be installed using pip:

pip install tk cryptography Pillow

Usage

Please read the user manual carefully before launching the application. To start the application:

  • Execute Main.py by typing python Main.py in your terminal.
  • Use the GUI to select and simulate different cryptographic algorithms.

Features

  • RSA Algorithm: Facilitates key generation, and the encryption and decryption of messages.
  • Elliptic Curve Cryptography (ECC): Supports key generation, encryption, and decryption using ECC.
  • Fernet Encryption: Implements symmetric key cryptography for encryption and decryption tasks.
  • Quantum Key Distribution: Simulates quantum key distribution to demonstrate potential quantum cryptography methods.
  • Vigenère Cipher: Encrypts text using a form of polyalphabetic substitution.

File Structure

  • Main.py: The main file to run the application.
  • ANIMATEDRSA.py: Contains the RSA encryption and decryption functionalities.
  • Additional modules for each cryptographic method are included.

Contributing

Contributions are welcome! Feel free to fork this project and submit pull requests to help improve the functionality of the cryptographic simulations.

Notes:

  • Make sure to check the exact file names and paths when you include them in the documentation.
  • Replace "user manual" with the actual name and possibly a link to the user manual if it is available online.
  • Adjust the language and details according to the actual functionality and implementation specifics of your project.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages