Monday, 16 March 2015

Voice inversion with GNU radio

Voice inversion is security through obscurity. It is an analogue way to obscure transmission content.

There are all kinds of variations of this scrambling, offering different levels of security. The general idea is they take a signal and as the name recommends - inverts it. Meaning low frequencies become high and vice versa.

This scrambling is a pretty old technique. It prevents people from just listening in. Nowadays with fancy software and computers it is pretty obsolete. IT IS OBSOLETE *cough*Elion*cough*.

Software has been floating on the internet a long time, probably used by HAM radio operators. Basic rule is that you take the output from the radio receiver and pipe it to the computer. Computer with its magic outputs it as human understandable information. Now ,for example, it is useful to use a SDR.


Wikipedia suggests:

In the simplest form of voice inversion, the frequency "p" of each component is replaced with "s-p " , where "s"  is the frequency of a carrier wave. This can be done by amplitude modulating the speech signal with the carrier, then applying a low-pass filter to select the lower sideband.

When I read the last sentence I realized, how simple would I it be to demodulate signals with GNU Radio.

Wikipedia suggest the most common carrier frequencies are : 2.632 kHz, 2.718 kHz, 2.868 kHz, 3.023 kHz, 3.107 kHz, 3.196 kHz, 3.333 kHz, 3.339 kHz, 3.496 kHz, 3.729 kHz and 4.096 kHz.




My flow graph:





Technically works the same way as demodulation, only reversed. Simply taking a descrambled audio and it scrambles it. The same flow graph works great.


Screen Shot 2015-03-15 at 21.03.34



Carrier frequency - 3496 Hz