19

By robust, I mean resistant to common image transforms (reversal, crop a non-multiple of 8 pixels off and recompress, blur, solarize to 64 levels, then interpolate, and sharpen, change compression levels, optimize for download, scale...

Suppose you are trying to embed ownership/copyright info in an image. How do you do so in a way that survives all of the above singly or in combination? And has sufficient parameters that it is non-obvious that it has been done.

You need to build in a lot of redundancy, and error correction systems. But that is short of workable system.

Ideally such a system is somewhat holographic in that other systems could also put data into an image, without compromising the original data.

Edit: While the use mention is one similar to watermarking, I normally consider a watermark to be visible in the image. Digital rights management has the addition of having various hidden attributes/data.

This came up in a discussion about Facebook putting tracking codes in images. In their case using an uncommonly used metadata field. So take it a step further: Can you put data into an image that is not readily recoverable without knowing a bunch of specific additional information, and that is proof against normal image operations.

Keeping the data secret is easy. Encrypt before encoding the ciphertext into the image. Keeping the data recoverable is harder. I'm inquiring about the latter.

1 Answers1

20

The field of research that deals with robustness is watermarking. There are hundreds of techniques to deal with the different existing attacks (resize, crop, recompress, etc).

Currently there is no system that overcomes all possible attacks. But there are some approaches that solve a lot of attacks under certain circumstances.

For example, this is a classic paper for solving RST (Rotation, Scale, Translation) attacks.

But I think the most robust current methods are based on zero-bit schemes. Check, for example, this paper.

I suggest that you define the most important attacks for your application, and try to find papers that deal with these attacks. But it is quite complicated to implement these techniques for non-experts in the field.

The alternative is to try to deal with the different attacks by using simple techniques. For example, use a copy of the original image for mark extraction. This keeps things easy.

Use a DCT transform of the image. Then hide information by modifying the DCT coefficients. You can recover the original DCT coefficients from the original image and the mark from the differences between the original and the marked image.

This resists the resizing process to some degree. If the user makes a crop, use the original image to find the same crop in the original image. Then you can recover the mark as before. The same procedure can be used to deal with rotation.

This approach has many problems, but it provides you with an easy starting point.

Patriot
  • 3,162
  • 3
  • 20
  • 66
Daniel Lerch
  • 686
  • 4
  • 6