I saw a pretty interesting article a few days attempting to reverse engineer the mosaic tool used often online to obscure sensitive or confidential information.
The article shows that the mosaic isn’t actually very random, and in a way you can brute force reverse engineer the mosaic to reveal the contents before they were obscured.
It’s ok for faces, but when it comes to letters/numbers and text it can be uncovered.
For the most part this is all fine with peoples’ faces as there isn’t a convenient way to reverse the blur back into a photo so detailed that you can recognise the photo. So that’s good if that is what you intended. However, many people also resort to blurring sensitive numbers and text. I’ll illustrate why that is a BAD idea.
Suppose someone posted a photo of their check or credit card online for whatever awful reason (proving to Digg that I earned a million dollars, showing something funny about a check, comparing the size of something to a credit card, etc.), blurring out the image with the far-too-common mosaic effect to hide the numbers.
Which is true, it is very common.
There is some ubermath geek stuff after this, analysing the brightness vector of the mosaic areas.
In this case, the account number 0000001 creates mozaic brightness vector a(0000001)=[213,201,190,…]. We find the mozaic brightness vector for every account number in a similar fashing using a script to blur each image and read off the brightnesses. Let a(x) be the function of the account number x. a(x)_i denotes the ith vector value of the mozaic brightness vector a obtained from account number x. Above, a(0000001)_1 = 213.
We now do the same for the original check image we found online or wherever, obtaining a vector we hereby call z=[z_1,z_2,…z_n]:
Anyway go ahead and check the article out, a very interesting read and a real example of proper hacking, thinking of a solution to something, thinking how to break something..
You can read more in the full article here: