Cipher
Description
A simple cipher to encrypt and decrypt your messages. Even if this cipher doesn't use the most sophisticated encoding algorithm, it is still quite useful to send and receive encrypted messages and can prove quite challenging to decrypt.
Design Process
I've always been fascinated with cryptography and how it played a significant role in shaping human history. Since the dawn of time, humans have understood the importance of communicating securely and protecting information from prying eyes; one of the earliest examples of cryptography is an encrypted recipe for glazing ceramic, discovered in Mesopotamia and dating back to 1500BC. Cryptography reached a new high during WWII, when both sides tried to create unbreakable codes, while the U.S. achieved this using Native Americans code talkers the Germans developed the infamous Enigma Machine. Immense effort was put into cracking the Enigma code with multiple daring raids to secure a functioning machine and the related codebooks. These efforts culminated with the work of British mathematician Alan Turing (now considered one of the fathers of computer science and artificial intelligence) that created the Bombe, an electro-mechanical device used to find the rotor settings, the message key and the wiring of the plugboard.
Reflection
When I started this project, I wanted to recreate a functioning Enigma machine using code; unfortunately, after some research, I realized that even a simplified version was well beyond my current skill level. I ended up creating a simpler Caesar cipher that proved to be quite challenging as well but was more manageable to research and understand. Even if it is not the prettiest thing I generated in p5js, I'm quite happy with the final result. The only thing I was not able to achieve was to have the 3 red blinking lights change to green once the code was encrypted or decrypted.