We’ve touched on the difference between chaos and randomness before. One strange property of chaotic systems is that they are able to synchronise to each other, so that in spite of their intrinsic tendency to vary wildly, a chaotic system can (actually quite easily) be persuaded to match the behaviour of another chaotic system. As this post will show, it is possible to use this property for a kind of secret message transmission.
The technique was published in a 1993 paper here by Cuomo and Oppenheim. They created a coupled analogue electronic version of the Lorenz system. The system consists of two nearly identical circuits. The first (call it the “transmitter”) generates chaotic voltage signals. The second system (the “receiver”) is identical to the first, except that one of the feedback pathways in the circuit is effectively cut, and replaced with a voltage taken from the same location in the transmitter. Even if they start in different states, the two circuits rapidly synchronise and produce identical voltage signals.
The next thing they did was add a very small perturbation to the transmitter signal, containing an audio message. The transmitted signal is still dominated by chaos so if you listen to it directly, it sounds like meaningless noise. However, they found that the receiving chaotic circuit reconstructed the original chaotic voltage without the message on top. This means by subtracting the reconstructed voltage from the transmitted signal, the message can be recovered at the receiver.
The system looks a bit like this:
A simple version of this experiment can be done on a computer very rapidly, without the need to build any circuitry. First, instead of the chaotic circuit, we are going to use the logistic map to produce chaos. This is quite simple, all you have to do is pick a starting value between 0 and 1 (usually pick one randomly), and call that . Then generate values of etc by repeatedly applying the following equation.
Choose to get a nice chaotic result (not all values of produce chaos). Then take a message that you want to encrypt, call it , and make sure that in magnitude it is much smaller than the chaotic signal, and add them together. In an equation, we get a signal by doing:
If you play back this signal, it will sound like random noise. If we transmit this signal, we can assume that a third party listening to it won’t be able to hear the original message.
But, suppose we use another logistic map system to generate another chaotic signal . Except this time, instead of iterating only the current value of the system to get the next state, we average the current state of the system with the signal that was transmitted. We called the transmitted signal , so the new logistic map system is:
Again with . It turns out that actually looks very similar to . This might seem very strange, but it is actually the case. It’s not mathematically easy to prove either, but trust me, at least to a close approximation, this is true, and a demonstration follows shortly. So what happens if we subtract from the signal , to get a reconstructed signal ?
But was just the sum of and so
So (after multiplying by 100), we have a reconstruction of the original secret message! This doesn’t work perfectly, as the recovered chaotic signal does not perfectly match the original. However, I’ve found that it works well enough. I coded this up and tested it on a clip from The Twilight Zone, publicly available here. My program performs the chaotic masking exactly as above, and saves the resulting transmission signal () to a file. A second script performs the reconstruction of the message. I’ve uploaded the result to YouTube below.
The first noise you hear is the original message. Following by the transmitted signal, and finally the message after reconstruction. You’ll notice that it’s not a perfect reconstruction, but it’s not bad!