Kruptos Encryption is a file encryption software built using Python. With just a few simple steps, your file can be encrypted and decrypted with a special unique key that is only available to you.
What was our inspiration?
There are more than 30,000 vulnerable people attacked by hackers daily. For this reason, we created Kruptos Encryption. The word "Kruptos" comes from the word κρυπτώ, which means "hidden" in Greek. Most people nowadays leave their important files out in the open and un-encrypted. One of the reasons why we felt that is because the term "encrypting your files" sounds super complicated, so our purpose with this software is to make encryption as simple as possible. We went with a simple and yet minimalistic design that allows you to encrypt and decrypt your files with just a few button clicks.
What does it do?
Once the user has opened our application, they have two main options:
- Encrypt a file
- Decrypt a file
Encrypt a file allows you to choose a file that you want to encrypt, in return, the program will give you a decryption key that matches with your encrypted file. And that is yet! Your file is now encrypted, to decrypt the file, go back to the main menu and click the Decrypt a file button.
For decrypting a file, the program will ask the user for the encrypted file and an appropriate key. If the file and the key match, the program will successfully decrypt the file. Afterward, if the user wants to encrypt the file with the SAME key as they used before, the application has a button that helps the user do just that with just one-click.
How did we build it?
We built this application in Python using the Tkinter and Cryptography module. We used Visual Studio Code and the Live Share extension to collaborate remotely and make sure every team member could contribute to the code. The Cryptography module allowed us to encrypt and decrypt files, and the Tkinter module is used to build the user interface.
What challenges we ran into?
One challenge that we faced was that everybody had a different level of technical skill, so it was hard at first to get a sense of organization. We resolved that by taking everyone's strengths and apply that throughout the project. Some of us that are good at coding will focus on the coding, and some who are good at explaining will work on the summary and the video script. The most challenging part of the project was positioning and sizing things for the GUI, as we had to re-run the application and go through every single option every time when we had made a change. This in return made the project unnecessarily tedious.
What accomplishments that we're proud of?
One thing we are proud of is that the Cryptography module worked as intended. We were able to ask the user for files and keys without any major hiccup. Another accomplishment was that everyone, despite having different schedules, was able to pull off the project long into the night and in the morning.
What we learned?
We learned the implementation of creating a GUI using Python's Tkinter module. Also, we got a chance to learn some of the basic rules of file encryption.
What technologies were used for the development of the project?
- Visual Studio Code (Code Editor)
- Live Share (Pair Programming Extension)
- Python (Programming Language)
- Tkinter (Python Module)
- Cryptography (Python Module)
We would like to include other file types to be encrypted. Currently, we only support .txt and .json files. Also, the implementation of a secure cloud application so that the user can get theirs and their keys on the go (similar to MongoDB). We are also looking forward to changing the name of our project due to the similarity that our name of the project shares with a company and we would like that our project shines by itself.
Who created the project?
Ramon Camilo, Chenhao Li, Riaz Ahmed, Yeiry Chaverra.