visualmoo - visually illustrate ECB badness

Introducing: visualmoo. A silly little program to visually illustrate (through images) that using the ECB mode-of-operation is a Bad Idea™.

The proverbial itch that this program scratches is that I wanted a different image than the same old Tux image (see wikipedia’s page on the matter) to illustrate that the ECB mode-of-operation does not hide data patterns very well. For those unfamiliar with the the concept, a (blockcipher) mode-of-operation is an algorithm for applying a blockcipher to plaintexts larger than the blockcipher’s blocksize. One of the most straightforward approaches (called “Electronic Code Book”, hence “ECB”) is to simply feed to each plaintext block to the blockcipher without considering earlier blocks. As this approach makes equivalent plaintext blocks have the the same ciphertext blocks, a lot of structure will be leaked, which can be nicely illustrated through encrypted bitmap images containing large areas of uniform color (such as the aforementioned Tux image).

At the time, a quick google-session did not give me pointers to existing code for creating such images, so a little project was born to create one myself. I used Go (golang) as the implementation language, which (with its well-rounded standard-library) resulted a a fairly straightforward little program. For those having the same need I have put the code on github. See the github page for more detailed information (including commandline options, etc).

Looking back, seeing how trivial the program is, I maybe should have attempted to created a web-based (javascript) version. But since my proverbial itch is now scratched, I leave that for someone else (if it doesn’t actually already exist yet).

Some example visualmoo output images:

Example output of visualmoo (01) Example output of visualmoo (02) Example output of visualmoo (03)