A novel approach to encrypting images in the clear


A novel, but impractical, method of encrypting an image in clear view. Randomising the position of each pixel, and keeping a record of that position, for later decryption. The cypher-key can be a text file or another image [similar to below-left]. The ARGB integer value of each pixel corresponds to the coordinates of where the pixel, in that space, has been moved to. The image below is a RGB key, without an alpha channel. With this RGB key-image, the maximum size of image that can be encoded is 16 megapixels (256*256*256). Adding an alpha channel increases the maximum size to 4 gigapixels.


The reason that this idea, in it's current form, is impractical is because the encrypted image can not be compressed with regular image compression algorithms, like jpeg. If it is saved as a jpeg, chromatic information is lost and what results when the image is decoded, is a monochromatic image [above-right]. To stop this, images can be saved as PNG files, but file size then becomes a problem with larger images [original jpeg image = 47.6KB / encrypted PNG = 278KB]

A solution to this, is to split the image into red, green, and blue components, and save them individually as jpegs. By merging these images together and running the decoding algorithm, the original image reemerges, with just a slight amount of noise added. The problem here is that the three images together still add up to roughly the same size as a single PNG [236KB], and noise has been added, but if we accept the existence of noise, then we can take it to it's logical conclusion.


Applying heavy compression of each of the three images, such that the jpeg quantising matrices can be seen, the total filesize has been reduced to [39.5KB]. Surprisingly, even with so much distortion, a recognisable version of the original can be still created. There is excessive noise but if a secret message were written in the image, it would still be quite legible.


Original image: Igone de Jongh - Dutch ballerina. http://www.operaballet.nl/en/node/2241?destination=peopleoverview/dancers