Combining semacodes and steganography?
Asked Answered
A

3

6

Update I asked this question quite a while ago now, and I was curious if anything like this has been developed since I asked the question?

I don't even know if there is a term for this kind of algorithm, and I guess there won't be if nobody has invented it yet. However it also makes googling for this a bit hard. Does anybody know if there is a term for this algorithm/principle yet?


This is an idea I have been thinking about, but I do not quite know how to solve it. I would like to know if any solutions like this exists out there, or if you guys have any idea how this could be implemented.

Steganography

Steganography is basically the art of hiding messages. In modern days we do this digitally by e.g. modifying the least significant bits in a image as the one below. Thus for every pixel and for every colour component of that pixel we might be able to hide a byte or two.

This alternation is not visibly by the naked eye, but analysing the least significant bits might reveal patterns that exposes the existence and possibly content of a hidden message. To counter this we simply encrypt the message before embedding it in the image, which keeps the message safe and also helps preventing discovery of the existence of a hidden message.

Thus, in principle, steganography provides the following:

  • Hiding encrypted message in any kind of media data. (Images, music, video, etc.)
  • Complete deniability of the existence of a hidden message without the correct key.
  • Extraction of the hidden message with the correct key.


(source: cs.vu.nl)

Semacodes

Semacodes are a way of encoding data in a visually representation, that may be printed, copied, and scanned easily. The Data Matrix shown below is a example of a semacode containing the famous Lorem Ipsum text. This is essentially a 2D barcode with a higher capacity that usually barcodes. Programs for generating semacodes are readily available, and ditto for software for reading them, especially for cell phones. Semacodes usually contains error correcting codes, are generally very robust, and can be read in very damaged conditions.

Thus semacodes has the following properties:

  • Data encoding that may be printed and copied.
  • May be scanned and interpreted even in damaged (dirty) conditions, and generally a very robust encoding.

Combining it

So my idea is to create something that combines these two, with all of the combined properties. This means it would have to:

  • Embed a encrypted message in any media, probably a scanned image.
  • The message should be extractable even if the image is printed and scanned, and even partly damaged.
  • The existence of a embedded message should be undetectable without the key used for encryption.

So, first of all I would like to know if any solutions, algorithms or research is available on this? Secondly I would like to hear any ideas/thoughts on how this might be done?

I really hope to get a good discussion going on the possibilities and feasibility of implementing something like this, and I am looking forward to reading your answers.

Update

Thanks for all the good input on this. I will probably work a bit more on this idea when I have more time. I am convinced it must be possible. Think about research in embedding watermarks in music and movies.

Anaemia answered 7/8, 2009 at 9:22 Comment(1)
Further to my answer, and more along the lines of audio watermarking, I'm very impressed by the results of this guy's review of Cognicity AudioKey: homerecording.com/audiokey2.htmlAlexiaalexin
A
9

I imagine part of the robustness of a semacode to damage/dirt/obscuration is the high contrast between the two states of any "cell". The reader can still make a good guess as to the actual state, even with some distortion.

That sort of contrast is not available in a photographic image, and is the very reason why steganography works - the lsb bit-flipping has almost no visual effect on the image itself, while digital fidelity ensures that a non-visual system can still very accurately read the embedded data.

As the two applications are sort of at opposite ends of the analog/digital spectrum (semacodes are all about being decipherable by analog (visual) processing but are on paper, not digital; steganography is all about the bits in the file and cares nothing for the analog representation, whether light or sound or something else), I imagine a combination of the two will extremely difficult, if not impossible.

Essentially what you're thinking of is being able to steganographically embed something in an image, print the image, make a colour photocopy of it, scan it in, and still be able to extract the embedded data.

I'm afraid I can't help, but if anyone achieves this, I'll be DAMN impressed! :)

Alexiaalexin answered 7/8, 2009 at 9:39 Comment(1)
agreed. if you have a digital image in analog form, you lose the steganography bits. if you have a digital image in digital form, you're extremely unlikely to lose any bits, so why bother w/ adding robustness features found in semacodes?Barbour
S
1

It's not a complete answer, but you should look at watermarking. This technique solves your first two goals (embedable in a printed image and readable even from partly damaged scan).

Part of watermarking's reliability to distortion and transcription errors (from going from digital to analog and back) come from redundancy (e.g. repeating the data several times). Those would make the watermark detectable even without a key. However, you might be able to use redundancy techniques that are more subtle, maybe something related to erasure coding or secret sharing.

I know that's not a complete answer, but hopefully those leads will point you in the right direction!

Scission answered 11/8, 2009 at 11:53 Comment(0)
C
0

What language/environment are you using? It shouldn't be that hard to write code that opens both the image and semacode as a bitmap (the latter as a monochrome), sets the lowest bit(s) of each byte of each pixel in the color image to the value of the corresponding pixel of the monochrome bitmap.

(optionally expand the semacode bitmap first to the same pixel-dimensions extending with white)

Consol answered 7/8, 2009 at 9:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.