Leonardo

Password manager using steganography with stable diffusion integration.

year
2024
role
dev

During the 2024 winter break, while working on a password manager app, I thought about more ways to creatively use AI. Steganography is the process of hiding messages inside images or other files. I had some experience with it from playing too many CTFs online and I started thinking about how to make the process more secure.

First, alongside writing my own steganography library Stegodon, I also implemented 256-bit AES symmetric encryption and decryption. But that didn’t feel secure enough. I remembered reading that one of the forensic techniques when analyzing images is comparing and looking at the difference between the original and the encrypted image.

So what I decided to do was use stable diffusion plus an open-source model from HuggingFace, accessed via an API, to generate an original image that already has a string encrypted inside of it. This way the original image is the encrypted image, which makes the file less suspicious. The encryption itself doesn’t happen online, it’s all done on the client.

The entire stack was written from scratch in C#. The graphics were drawn in, and animated using ShakeArtDeluxe.

Visual and textual documentation plus the binary live on the GitHub repo.

also see