1. A method for printing an image, comprising: receiving image data based on an image, said image data comprising a plurality of pixels, each having a corresponding position and pixel value data; adjusting an image histogram of said image data to modify said image and create image data that is adjusted; permuting a plurality of said pixel positions using at least a secret key to create image data that is permuted; and printing the adjusted and permuted image data using a printer; wherein said permuting comprises pseudo-randomly permuting said image data using a relatively long pseudo random number sequence created using the secret key, an initialization vector and a pseudo random number generator to create the image data that is permuted.