After we formed our group, we read the instructions and examples in the folder, and a few ideas we quickly brainstormed were already on the document, but that encouraged us to further explore and think of ways to expand upon these.
Since colors can be displayed in binary, we had the idea to apply logic gates to the colors by performing a logic gate on each byte. After experimenting with colors, we discovered that due to not being used to binary, even simple colors such as orange and white produced unexpeted results when logic gates were added. Hence, we think that implementing logic gates to combine multiple images would be interesting. We tried a basic implementation of an AND gate and discovered that even ANDing simple colors already results in strange unreadable results. We didn’t see much of a use for this, except for one small idea. The concept of a logic gate for most people was recently introduced, and we discovered that this can be visualized well by using black and white images on the logic gate combiners.
After seeing how messed up ANDed images were, we had the idea to encrypt, or obfuscate images by XORing them with a random image. We had the idea to use an image as a key, or generate a random key that can be sent to the receiver, however this would be impractical and would require sending the key as well. Instead, we have the idea to use a seeded random number generator, such that each seed will return the same key that can be generated by the website. Then, the two images can be XORed to decrypt the image.
Another usage of binary in images that we explored is steganography. We research LSB steganography, which is using the least significant bit of an image and changing it to hide information, since it will not change the output of the image by a lot. However, we found many of these sites online and wanted to explore something new, hiding images inside other images. We plan to do this by increasing the base image by a factor of 2, increasing the pixel count by a factor of 4. This gives us 4 bits for each color of the hidden image, but by using the two least significant bits, we can get 8 bits per color, which is enough to encode a 255x255x255. With some testing, we learned that changing the value of a color by 4 bits does not result in a major change, which is good for this idea.
Pair 1 - Ian, Srijan Feature: Cryptography Pair 2 - Ryan, Hayden Feature: Color ANDing
We plan to finish up steganography after one of the two pairs has finished theirs and whichever pair finishes first will move to steganography. Extra time will most likely be spent researching other features and polishing up the website
Week 1
- Create plans, assign work, start work on features
Week 2
- Finish up JavaScript of features, potentially start on steganography or explore more features. Start on CSS and design of website
Week 3
- Finish up design and polish website to ready for presentation
An existing page design and homepage plan can be found below.