This repository is for IITISOC_2024_PS3 in the cybersecurity domain, which deals with the development and implementation of a secure image encryption system.
-
- Encryption Algorithms
- User Authentication
- Key Management
- GUI Interface
Developing a secure image encryption system that utilises advanced cryptographic algorithms such as DES (Data Encryption Standard), AES (Advanced Encryption Standard), and RSA (Rivest-Shamir-Adleman) to ensure that only authorised users can access encrypted images with additional functionalities like user authentication and a robust key management system.
-
- Implementing a hybrid system that uses both symmetric(DES, AES) and asymmetric(RSA) algorithms to encrypt and decrypt images.
- The DES and AES are used for image encryption and the RSA for symmetric keys(for DES and AES)encryption.
-
- Secure user registration and login using bcrypt for password hashing.
- User credentials are stored in an SQLite database.
-
- DES and AES: Keys are randomly generated and stored securely.
- RSA: Public and private keys are generated, stored, and used for encryption and decryption.
-
- Built with Tkinter for a user-friendly experience.
- Provides options for selecting images and performing encryption/decryption.
- Python 3.x
- Libraries like - PyCryptodome, SQLite3, tkinter, bcrypt.
- Run the application
- Register yourself
- Then, Login
- Generate Keys (RSA)(Only if you are a new user, otherwise skip this step)
- Choose the image to be encrypted - after getting the success message, two files will be saved on your system, with the same name (as that of the original image), one for the ciphertext( .enc )and the other for the key file( .key ) (look for them in downloads section of your system)
- Delete the original image from your system
- At this stage, the image is well encrypted and can be decrypted, whenever necessary
- To decrypt it, choose the file to be decrypted (which is the ciphertext ) and the corresponding key file ( You will have to login again, whenever you close the program)
- Enter the name in SaveAs, as you wish to save it and it will be decrypted and saved on your system. (* A popup message will show up reading " Image decrypted successfully. ")
*NOTE - if you didn't get the popup message, then it signifies that decryption was unsuccessful and please recheck that both the files(ciphertext and key) are of the same encrypted image.
-
Name - Krishay Rathaure
GitHub - https://github.com/Quanmat -
Name - Gajendra Singh Rana
GitHub - https://github.com/pratapsingh123om
Well, a lot can be done to improve it. Firstly, we can create a central database (using for eg - Django). Additionally, we can create a UI, which allows users to share images among themselves, with algorithm implementation.
This hybrid system merges both DES/AES and RSA algorithms.
- Encryption of data(images) is done using the symmetric key(for DES and AES).
- Encryption of the symmetric key is done using the public key(of the receiver/user), through RSA.
To ensure both security (using RSA) and fast processing (using DES/AES).
Contact the team leader for any questions.