Hilbert's curve used to trace pixels
Given the highly digitized nature of our modern society, we were quite concerned by the lack of versatile security and creative encryption of images and videos, as corroborated by the plethora of deepfakes and social media - related scams that have come up in recent years. This dearth of innovative data protection is what motivated us to adopt the interdisciplinary approach to image encryption. Furthermore, the discovery of the Hilbert's Curve was the initial spark to much of our encryption process.
What it does :
Our program is essentially the next step in data protection as it encrypts images in the form of a frequency stream encoded as sound. Upon reception of the cyphertext, the original image can be received from the stream of frequencies through a reverse process that we coded out.
How we built it :
Our code traces through the grid of pixels in a sequence defined by the Hilbert curve. It then extrapolates the RGB components of each pixel to generate a 1D array of RGB components. These components were translated into frequencies that we plotted on a sine curve, which is essentially the 'frequency stream.' The reverse process at the receiving end of this transmission retrieved the RGB components from the sine curve, and used them to reconstruct the image pixel-by-pixel in the reverse order of the Hilbert curve. It is important to note that we had to pad the input image to form a square whose side length was rounded up to the nearest power of 2 - this is because Hilbert's curve can only trace square images.
Challenges we ran into :
We initially hoped to incorporate asymmetric encryption to enhance the strength of our encryption process by running the frequencies through an encryption algorithm to protect the data if perchance it got intercepted.
Accomplishments that we're proud of :
We're especially proud of how we used Hilbert's curve to fortify the strength of our encryption by defining the sequence of pixels in an order that would be very hard to crack. We also feel that our idea of encrypting images as sound is quite unique, creative and versatile since such an interdisciplinary approach to data protection has never been explored before.
What we learned :
Given the level of intricacy that our program had to demonstrate in order to be effective, we learned how to tie together the multiple phases of our program in a simple and efficient but effective manner. We did so by defining each phase and sub-phase as functions which we then imported into one master program file.
What's next for Synesthesia:
We wish to use asymmetric encryption to make the code even stronger and harder to crack using RSA encryption.