An interactive desktop application to visualize and experiment with the Ascon lightweight cryptography algorithm. This project provides a graphical interface for users to input parameters and see real-time encryption and decryption results.
- Visualize Ascon encryption and decryption results
- Supports different versions of the Ascon algorithm
- Adjustable parameters (e.g., key, nonce, associated data)
- Easy-to-use graphical interface (built with Tkinter and CustomTkinter)
Make sure you are running the commands INSIDE source code directory Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
(Windows based systems)
$ # virtualenv env
$ # .\env\Scripts\activate
$
(Mac based systems)
$# python3 -m venv venv
$# source venv/bin/activate
pip3 install -r requirements.txt
python3 main.py
python3 -m unittest
- Launch the app using the instructions above.
- Enter the parameters (key, nonce, plaintext, associated data(optional), variant) for encryption.
- Click "Encrypt" to see the encrypted output.
- Use the "Decrypt" option to reverse the encryption process.
- Switch between different Ascon algorithm versions using the UI toggle.
/algorithms/
: Contains the Ascon algorithm implementation./controllers/
: Handles the business logic and interaction between the UI and the algorithm./view/
: Manages the graphical interface using Tkinter./utils/
: Contains utility functions used across the application./tests/
: Contains unit tests for different components.main.py
: Entry point for running the application.requirements.txt
: Lists the dependencies required to run the project.README.md
: Project documentation.
Contributions are welcome! If you find a bug or want to improve the application:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature
) - Commit your changes (
git commit -m 'Add your feature'
) - Push to the branch (
git push origin feature/your-feature
) - Open a pull request
If you have any questions, feel free to reach out or open an issue in this repository.