4 ms·
Indeed. It's a clever convolution filter, but all you have to do is look at the resulting image to see some weaknesses. The naive tiling approach is even worse.
by breckinloggins 14y ago
Indeed. It's a clever convolution filter, but all you have to do is look at the resulting image to see some weaknesses. The naive tiling approach is even worse. So let's say I wanted to find the image on the Internet that most likely represented the original of some "sudoku encrypted" image?
1. Throw out any images that are strictly smaller than the cipher image. This technique doesn't do any compression
2. Throw out any images that are larger or of a significantly given aspect ratio than the cipher image, based on how many more pixels could have possibly been added to complete the sudokus on each edge
3. Compare the color histogram or some precise additive hash of color values from the cipher image to some candidate image. If the values differ, reject the candidate. This should work because the algorithm as described only seems to shuffle pixels locally in a tile. So the convolution should still have the exact same overall color frequencies. Edges where some pixels might have been filled in may have to be treated differently.
4. Continue this process until you have a reasonably short result of candidate images
You could easily solve many of these issues by using the filter to shift both space and color values and by recursively applying the shuffling process to larger and larger blocks of the image, but certainly the procedure as described in the linked article sounds suspect.
I could actually see this being researched for compression as well as encryption. Maybe try some sudoku convolutions and see if they compress better. If so, compress that image along with the sudoku solution. I doubt it would work but it might be worth a look.