I've been playing with an image encryption algorithm that I think is
pretty interesting. I'd be interested in hearing any feedback about
it. In a nutshell, I do the following to encrypt and decrypt an image:
1) format the plaintext image as a square matrix
2) generate a square encyption matrix of equal size using a key
generated from a fractal (chaotic) equation
3) encrypt the plaintext with simple matrix multiplication and
send to the recipient
4) The encryption matrix is not sent to the recipient, but
rather the fractal parameters are sent via a secure means.
5) The recipient regenerates the encryption matrix using the
fractal key, inverts the matrix, and decrypts the encrypted data to
obtain the plaintext.
As an example, I encrypted and decrypted a 400x400 pixel image. I used
a generic mandelbrot fractal to generate the 400 x 400 encryption
matrix. In order to regenerate this encryption matrix, it is only
necessary to store the fractal parameters (like the mandelbrot loop
count, initial condition, and coordinates of the corners). Obviously
there are implementation issues, like ensuring that the encryption
matrix is invertable, but that isn't too difficult.
I dont make any claims that this is a method of "stronger" encryption,
because I have no means to determine the strength of an encryption
algorithm. Rather, I think that it is an "efficient" method, in that
the sender only had to provide the fractal key parameters, not the
significantly larger encryption matrix.
Fractals and encryption is a fascinating topic! Is there active
research in this area?
Regards,
Gary Huntress
hun...@ibm.net
Interesting ideas, thank you for posting them here. It seems that
image compression (jpeg) cannot be used because it spoils the
squareness of the array. Then the color, 400x400 has 480,000 bytes
in the file, when jpeg would be much smaller.
Also, what range do the key parameters take? Do these parameters
provide up to 2^80 choices?
The Mandelbrot loop count is for each pixel, right? If it is, then
how is it useful for all matrix elements? Or maybe you mean the
"maximum count" allowed for each pixel before a result reaches
the "4" or "2" which is common for Mandelbrot calculation.
Also, please show a little math as background for what I have
forgotten about Mandelbrot sets.
Thanx, Henry
Since you are doing it, I guess there is. Make it actually work in code
if you can, and, as simply as you can, before trying to write the
ultimate; something generic might be scaled up.
I've seen fractals come up before, mainly requests for info.
--
I hear that some right-wing Republicans are even looking into President Clinton's past lives so as not to leave any stone unthrown; a disparaging end result justifying any obscure means.
>> Fractals and encryption is a fascinating topic! Is there active
>> research in this area?
>> Gary Huntress
>> hun...@ibm.net
>Since you are doing it, I guess there is. Make it actually work in code
>if you can, and, as simply as you can, before trying to write the
>ultimate; something generic might be scaled up.
>I've seen fractals come up before, mainly requests for info.
The problem with using chaotic systems (and fractals) for encryption is that
they have many stable points/area's with regular behaviour. So not just
any chaotic system can be turned into an encryption system.
Regards,
Coen Visser
Gary