Inspiration

When I watched the movie The Imitation game on Netflix, I saw that the Nazis used encrypted messaging and with their messaging the key changed every day for the encrypted messages. From that it was a basis on how we approached the project. With the idea behind our project, since it is randomized no two keys or messages will be the same, ensuring security between whomever is communicating.

What it does

We created a encrypted messaging program that lets you decrypt or encrypt determining whether you are sending or receiving. If you are sending, you are given a key that is randomized every single time you run it. The receiver will use the key to send to the sender to decrypt the message. The key is sent separate from the program. The sender will also send the encrypted message to the receiver too. By making the key separate from the program, it makes the messaging more secure. When you are decoding you will be asked to input the key you were given from the sender. The receiver will then input the key and encrypted message. Finally, they will be given the original message from the sender. This can be done on two separate computers, regardless of distance.

How we built it

We built this on replit so all of us would be able to collaborate at the same time. By doing this we can be more efficient. We used python to create our overall program. The first step was importing random and string to create the overall base of our project and program. We then randomized the key so it will be harder to decrypt every message because the key would be different every time, therefore more security. After we made the program it was just one person interacting with themself, or you could call it single player. Then that we decided to upgrade it, so we wanted to make it where you could interact with 2 or more people, or multiplayer.

Challenges we ran into

One challenge we ran into was when we where trying to upgrade it to multiplayer. The process on how we would approach this was something we were stuck on. The main challenge was making it where it could interact with 2 or more people instead of just interacting with yourself.

Accomplishments that we're proud of

We are proud of making this encrypting program because the key is randomized every time you create a new message. We had an initial thought to use dictionaries or libraries, but it would make it easier to be decrypted if someone wanted to intercept the message. We didn't want to take the easy rout, so we perused the vision we had, and randomized the key.

What we learned

We learned how versatile communication can be between multiple users, and that we can use encrypted messaging not only with ourself, but with anyone else across the world as long as the recipient has the key and message to decrypt. We also learned that we could also use sockets to upgrade our program so that it could be more efficient with communication between the sender and receiver.

What's next for Desmond

I think using a variety of data structures that can make the key more sophisticated as well as allowing for a way to store the encrypted messages in a secure way. Additionally, I think using the socket module in python can allow faster communication with the client and server if we were to add that. Looking into making this more user friendly is something we can do as well, so perhaps integrating this into a website with clear instructions for the user could be worth exploring.

Built With

Share this project:

Updates