0

I create a watermark with photoshop like this

To make this watermark I use a software functions of a software (for example photoshop). Functions is implement like set instructions (my variables)

a, b,c,d 

function is like this

f(x) = a,b,c,d

set instruction is implemented like variables a,b,c,d

- place the bitmap over a photo or drawing (a)
- apply a Flat (b)
- adjust the transparency slider setting to X value (c)
- edit the Contrast amount X value (d)

I save to png format, I know also that software add also EXIF metadata.

I sent picture to my friend. My friend open picture with my same software and it want remove my watermark applying the inverse function that I used to realize my embossed transparent watermark.

If my initial function was

f = f (x)

used to generate watermark, my friend need to remove my watermark so he need to have this situation

f = f ^-1 

hardware & software is the same, algorithm is known both, me and he.

Have same software allow to use EXIF metadata like a decode key and have same format png allow to decode and separate watermark like if it is encoded layer (in photoshop, for example, we can add edits and compose picture in layers) but applying inverse function we can remove watermark directly because inverse function + key make this :

a) Recognize that picture It comes from the same software because EXIF metadata added after saving picture is like a decode key or access point
b) Recognize that algorith is same because format file is same (png)
c) Recognize that in that picture is integrated watermark like an locally integrable function, in sofware language is integrated like a encoded level that appears in software like merged layer as if it is only one.
This is possible because software works like an operator so using same software and adding metadata info generate a transfer function
d) Appling inverse function allow to transform encoded level like a simply layer.

We don't have distorsion

Is possible ?

Jacky Ned
  • 11
  • 3

1 Answers1

0

It depends on the watermark you've added. If the watermark changes the image in a known way without losing any image fidelity, then yes. Otherwise, no.

The key is being able to retain sufficient detail in the amended image that running the inverse function exactly reproduces the original image data. Typically, this is a very hard problem because digital image files have limited data depth.

For a simple example, imagine your function changed 1 pixel. It changes a single channel - red lets say - of that pixel by multiplying by 2. The red channel started with a value of 180, 180x2=360 but a standard png file only allows a single byte per channel = 255. So your change looses data, what should have been 360 is actually 255. Now reverse your function, 255/2 = 127, different to the original 180.

So if you can work out a clever algorithm that will never exceed the image data limits then you are OK. Good luck with that! On the other hand, if you used a different image format, you would have fewer limits so the problem would be somewhat easier.

The other way to fix the problem would be to somehow capture the missing data in the metadata. But then your "inverse" function would have to use that data somehow to restore the images full fidelity. And you would need to somehow hide or encrypt the metadata otherwise someone else could do the same thing which would make adding a watermark pretty pointless in the first instance.

Julian Knight
  • 7,092
  • 17
  • 23
  • mmm..your answer is good, It made me think. So need I to use *raw* format without compression to avoid lose *data depth* ? But is possible implement this missing `changed 1 pixel` like part of my function implemented in hardware mode (no software) directly like monitor signal ? My aim is not working on algorithm decoding only to restore the original image, but i may change final information directly creating a loop fuction if there some is missing because however this picture is display on a monitor, not only processed like *code*. The function should be implemented like a *signal modulation* – Jacky Ned Dec 05 '16 at 01:31
  • Raw gives you more to work with, I'm not an expert there, there are other extended depth formats too. But you still need to make sure you don't loose data. Not really sure what you are asking now. Digital images ARE code, you could create a *display* method to implement a watermark or indeed to reverse it out I guess. A pure hardware method would be pointless I think because nobody would buy it. – Julian Knight Dec 05 '16 at 07:05
  • Yes, you are right but maybe it be useful for security trasmission method to bypass breaking RSA algorithms or from interception by a remote station. Modulation it should work only locally (like home) if people have got this 'demodulator' (you can imagine it like a *power plug* attached directly to the socket of the wall or immediately before the modem filter) so if you want to send an audio or text message you can bypass without loose data because you transfer a *function* and not a information that, instead, is transmitted by modem using a synchronization mechanism by quartz oscillators – Jacky Ned Dec 05 '16 at 16:22
  • quartz oscillators generate a *costant k* between signals to allow trasmission present in modem electronic so if you look information is because you have same method or same hardware/algorithm implementation (costant k). Also modem is a modulator-demodulator that modulates one or more carrier wave signals, so I only need to correct no the signal but generate an out of sync using this particular power plug modulators in my home sockets because my purpose is not information but apply my function. With this method, in theory, I could also send a distorted image directly without encrypt it – Jacky Ned Dec 05 '16 at 16:23
  • In practice, I realize a *filter* that filters the modem filter but I don't act on signal frequency or transmission signal but only the input signal of my home so the out of sync it maybe useful to use this plug modulators directly like *function generators* so if my friend want reconstruct he must have this filter attached on socket otherwise picture trasmitted is distorted. This solution avoid to use algorithms and thus avoid transmitting information as a `constant k`. The thing is not easy to study, there are some technical details on which I must work `:-)` – Jacky Ned Dec 05 '16 at 16:31
  • OK, a lot there but you seem to be basically talking about a "dongle". They went out of fashion because (a) they are a pain to use, (b) once compromised, they are useless, (c) they are expensive. Too complicated and likely to fail I'm afraid. – Julian Knight Dec 05 '16 at 20:58
  • No, because you speak to me in terms of *code*, I will act only on the input signal so that the house does not come as a code because it comes out the same as it is broadcast, but as a function of the modulation generated from this jack. What happens inside the home is not physically possible *decrypt* or bypass with a remote attack because *it simply is not what I do*. In fact, the external systems would see only through the modulated signal from the modem that is a signal of a *constant* function (k). Not only that, but even if I were to give this filter what would they do – Jacky Ned Dec 09 '16 at 00:34
  • if the function that works is only possible between me and my friend? Should know the function but this function is not *assigned before* because it is not an algorithm but is created later, this means that the function is not an algorithm so 2 identical functions may be different because what that difference is modulation (otherwise it would be a constant k) Same modulation do not need to transmit information, but to generate one or more functions within the private circuit. From the outside (like a server) you should create a de-synchronization with newtoek to try to guess – Jacky Ned Dec 09 '16 at 00:35
  • the correct modulation. But this would be to *disconnect* from the Internet because the entire internet and its protocols it works on a precise signal modulation that is a constant. You speak to me in terms of information, I speak in terms of functions and make a difference between what is transmitted as a signal and between what then comes home as modulation. External access it useful only as a process, constant (it can be an algorithm, a protocol, a signal..) not as a *generator*. – Jacky Ned Dec 09 '16 at 00:41
  • It may be that what you describe is beyond me. But from what I can tell, your idea isn't materially different - just because it would effectively be an analogue decoder rather than digital the principle is the same? – Julian Knight Dec 09 '16 at 08:04
  • No, because I don't encode/decode on input signal according to the combination of the bits present at its inputs because I work only with modulation to have a *function generator* but what is output signal? Signal is same but what is changed ? *Function*. I don't have an algorithm or a code to encode/decode because my filter is a function filter, no a signal filter. If you measure with an instrument on my home you don't see the difference because *signal is the same* but not the function that you can't see because I need to generate a function *after*. The key is generation no measure – Jacky Ned Dec 09 '16 at 18:43
  • Information *change* only if I generate function, not when you measure or try to decrypt because there are no code, no information, no algorithm that process my signal. You can see only a modulation (maybe an out of sync, maybe a modem desincronized) but if you have my same modulation you don't have function because you should generate it but this is an unique operation. So I don't trasmit really an information with signal, `my modulation transmit a function with same signal`. If you know my function this is useless because you need to make this situation `function like access` (*interface*) – Jacky Ned Dec 09 '16 at 18:55
  • but you need a generate one function before but is your function not my. Same function can be different because you must use a modulation to transmit function, but I can change modulation if I want so initial function can be change. You understand what I'm trying to explain ? Is difficult because you think so: signal = information. I realize this situation instead signal = function so I realize signal ≠ information because I don't use any code, no algorithm. To make this you need an *arbitrary waveform generator*, an *oscillator* (crystal, quartz..) and in some situation a *pattern generator* – Jacky Ned Dec 09 '16 at 18:56
  • So I can drive this function with a waveform generator, I can include an oscillator inside my plug or use the oscillator modem embedded like https://goo.gl/Fmul0L. Pattern generator is a lithography component but you can reverse use for modulation no for microscope interface working http://www.nanomaker.com/images/schema.jpg. So the 'patterns' can be my functions but I generate this, I don't know *before* and is not 'hackable' because you should generate a function - copy function is a generating operation but what is possibly to change always to make same function different ? `modulation` – Jacky Ned Dec 09 '16 at 19:10
  • In fact, if you generate a function should then pass it using my modulation, but this would change *my modulation* because your function is unique because you have generated one, it is not my f and then this change the modulation me and friend but this will prevent me to access *like* information. Otherwise, to have more functions we need to generate the correct modulation between you, me and my friend so that the function that one of us generates is compatible as modulation between us, otherwise you take completely different information because what you need is my function, no information. – Jacky Ned Dec 09 '16 at 19:36
  • This way you can also understand what is a information monopoly: the *dependence* on a single function and this is called `costant k`. But I make sure that each of us can create your own function. In this way, if I wanted your own information, before, I have to ask to send me your function. Privacy is guaranteed – Jacky Ned Dec 09 '16 at 19:42