How to Protect Radio Signals Over Short Distances?
anth_007 asks: "I'm a software developer seeking to delve into the hardware world. I am trying to create a prototype for a new product that would broadcast signals over a very short range (100s of meters). The important part is that only authorized users (ie. no hackers) would be able to broadcast signals. Well, a more accurate description would be that anyone could broadcast (it's just a radio transmitter after all), but receivers would be able to differentiate between authorized signals and those which are not. I've been looking to find information on Satellite Radio (XM, Sirius, etc) and how they protect their signals, but I haven't had much success. I realize that I'm talking about two different problems here (I want to stop unauthorized people from broadcasting, satellite radio is trying to stop unauthorized people from receiving), but I need to start somewhere. Any ideas? How do the big boys protect their signals? Is there any readily available technology out there that would allow me to accomplish this?"
Use shielded signal guides. You can even get ones that work up to optical frequencies these days!
I've had this sig for three days.
Tinfoil........lots of tinfoil.
Beauty is in the eye of the beerholder.
If you buy a license to broadcast over specific wavelengths, the Feds will happily track down unauthorized broadcasters, arrest and possibly even fine & imprison them.
If you are using some unlicensed spectrum like the 2.4GHz band, you have no recourse. Any unlicenced radio communication is required to not interfere with other people's use of the spectrum, and accept any interference without recourse.
Conformity is the jailer of freedom and enemy of growth. -JFK
With the right despreading key, you get signals.
Otherwise, you get noise.
...laura
Radio waves are radio waves. Once your frequency, modulation system, etc. are documented, anyone can fake your radio waves.
It's far easier to secure the higher layers (in the OSI sense) -- the data you're sending over the radio waves.
Authenticating this is pretty trivial, from a crypto standpoint. The simplest approach is to encrypt your data with a shared key; more robust approaches might include signing unencrypted data with a private/public keypair, etc. This would also introduce some noise resistance, since you could tell if the data's been corrupted by checking the signature. (Though for non-malicious interference, you're probably better off using a redundancy check of some sort.)
Good luck!
... trying to make radio not transmittable is like trying to make water not wet. (ripped off from jwz i think, and transformed to fit your question)
the only way to actually attempt to control who transmits on what bandwidth would probably require some sort of licensing from the FCC. that way you have some sort of legal recourse if someone does decide to walk on your airwaves.
there are lots of techies out there who know how to build transmitters and recievers that can send and recieve at any frequency they want, so trying to put a technical barrier to the actual airwaves won't get you anywhere, as you mentioned.
an elegant solution would consist of some sort of stream verification, so that you can verify the sender of a signal via fingerprint, encryption, hidden messages, etc. Something that you control and that is difficult to reverse engineer would allow you to differentiate your signals from someone else's.
I think XM and Sirius encrypt their streams, or at least apply some sort of proprietary DRM to their streams to keep idle listeners from tuning in. They also use a fully digital stream, so encryption is pretty easy. And if I remember, they use an odd frequency that must be licensed from the FCC to use. The combination of those things seems to work great for them, a quick search on satellite radio hacking revealed almost nothing useful.
There is no practical way to provide secure RF transmissions. However, there are many many ways to protect the data carried on those transmissions. What you're interested in is public-key cryptography as it applies to message signing. It works like ths:
1. Send block of data
2. compute fingerprint ("hash") of the transmitted data
3. encrypt that fingerprint with the transmitter's private key
4. transmit that
on the receiving end, you do this:
1. receive data
2. receive encrypted hash
3. compute hash of received data
4. decrypt received hash using sender's public key and compare to actual hash of data
This process is called signing, and is used in many many places. The use you've most likely encountered is to verify the identity of online stores. (the store's encryption certificate is signed by the trusted certificate authority that issued it. Your browser has all the authorities' public keys built into it, and uses it to check the signature against the certificate contents.)
All you need is an LED at the transmitter and a telescope with a photodiode at the receiver. No one outside the field of view of the receiver would be able to interfere. If you want even better protection, put a telescope at the transmitter too.
A telescope is effectively a very high gain "antenna."
Good judgement comes from experience, and experience comes from bad judgement.
- W. Wriston, former Citibank CEO
The guy who mentioned "Despreading" had the right idea. Use of "Spread-spectrum" direct sequence modulation is probably the most secure you're going to get. Essentially, a "key" is used to control the spreading code. If you don't have the key, you can't receive the signal.
Further, the transmission by it's very nature is somewhat covert. Now - if you're the NSA, perhaps you can figure out, but it's likely to be able to put together a system that is for all intents and purposes "private" using this type of transmission.
Now -FCC licenses, and spectruma are your REAL problem. The technical problems have solutions.
Have you compiled your kernel today??
Spread spectrum such as WCDMA (Wide band code division multiplex) is probably the best way to prevent jamming. However there are a couple of difficulties: 1. You need a wide spectrum to spread the energy over. I don't know the details of spectrum allocation in your juristiction but it is unlikely to be available anywhere (except for the military). 2. Whatever the bit rate you transmit at (slow is best) a jammer will always be able to swamp your signal by raising the noise floor sufficiently. The best way to avoid jamming is to spread the signal over as wide a spectrum as possible, transmit at the lowest possible bit rate and keep a low profile. Whether or not that helps depends on the application you have in mind.
if you want to make sure that the RF is only being sent and recieved by you, you have to set up a system where the frequency "hops" - changes very rapidly in what appears to an outsider as randomness. You do this by using cryptography to establish a connection and share a seed value for the variable that initiates the hopping sequence and a synchonization pulse for their internal clocks.
Then you need to build a transmitter and a reciever that will be able to change frequencies very very fast (hundreds or thousands of times per second), keep in sync with one another, and send packetized digital data between them.
If you are really paraniod, you encrypt the signals going to the transmitter, allow the transmitter to encrypt them again, the reverse the process at the receiver side.
If you are really, really paranoid, you iterate that cascading pattern over several layers of the network, multiplex the signal to the radio, and broadcast a solid stream of encrypted information, filling it the gaps between "real" information with garbage so that there isn't any variation in the RF between when you are saying something and when you aren't.
If you are more paraniod than that, you unplug everything, use very low tech methods executed by fanatically loyal zealots who would rather die horribly painful deaths than bring shame on their families, betray the cause, or endanger their eternal soul.
If you want to stop the paranoid, really paraniod, and really really paraniod folks from communicating, you build your own frequency hopping device, add a modulation hopping function, connect it to a really big tesla coil mounted on an electronically isolated & shielded truck, and broadcast megawatts of RF into the atmosphere while driving around in arbitrary paths.
If you want to stop the zealots, pull a Keiser Soze on them and kill them and everyone they've ever known, their dog, their neighbor, the guy who sold them coffee this morning, etc. Iterate until there aren't any more zealots.
It depends on the type of data and on who else will be broadcasting.
I assume it's a digital signal you are sending, but if it's analog audio you can do some cool things by adding something that sounds like white noise to the transmitter, then subtracting it on the receiver. A "sync" signal will need to be sent to get them together (or transmit the "white noise" on another frequency if 2 tranmitters is feasable). If the transmitter isn't adding the "white noise", but you subtract it, then the audio will sound like white noise. (something like this was done for WWII radio encryption).
Weather it's analog audio or digital, it depends on who else will be broadcasting. If it's an attacker who may put lots of effort to reverse engineer your signal then you may need crypto. If you're just worried about a random transmitter or script-kiddie-type trying to screw with you, then you may just need to add some "sync" or "i'm legit" signals occationally (possibly on another frequency).
http://www.cs.brown.edu/exploratories/freeSoftware /catalogs/signal_processing.html
Some "exploratories" on signal processing.
There's some other good stuff there as well.