/Cryptography

A collection of cryptographic protocols as part of the preparation for the practial exam.

Primary LanguagePythonMIT LicenseMIT

Cryptography 🔐

This repository contains implementations of various encryption protocols in Python.

Implemented Encryption Protocols

  1. Diffie-Hellman Key Exchange 🔑

    • Implementation of the Diffie-Hellman key exchange algorithm for secure key establishment over an insecure channel.
  2. RSA Encryption 📜

    • Implementation of the RSA encryption algorithm for secure communication and digital signatures.
  3. Elliptic Curve Cryptography (ECC) 🔄

    • Implementation of elliptic curve cryptography for public key encryption, digital signatures, and key exchange.
  4. SAES (Simplified Advanced Encryption Standard) 🔒

    • Implementation of a simplified version of the Advanced Encryption Standard (AES) for symmetric-key encryption.

Usage

Each encryption protocol is implemented in its respective Python file within the repository. You can find detailed instructions on how to use each implementation in their respective files.

Modified Text Copier GUI

Additionally, a modified version of a text copier GUI script is included in this repository. This script allows for encryption and decryption of messages between two parties using the implemented encryption protocols.

To use the modified script:

  1. Run the script text_copier_gui.py.
  2. Enter the message in the text area labeled "Person A".
  3. Select the encryption method (RSA, Diffie-Hellman, Elliptic Curve, SAES).
  4. Click on the corresponding button to encrypt the message and copy it to the "Person B" text area.
  5. On the receiving end, select the same encryption method and click the button to decrypt the message.

Contributing 🤝

Contributions to this repository are welcome! If you have any improvements or additional encryption protocols to add, feel free to open a pull request.

License 📄

This repository is licensed under the MIT License. See the LICENSE file for details.