A radio "hears" only the loudest signal (due to necessary filters). A packet is directed via routes; a network interface only picks up packets on that physical route. It's the equivalent of using a directional antennae ... kinda.
At the beginning of the connection, you must establish some sort of "trust" between your radio and the other radio (if you want to use encryption). Your wifi does this with a Pre-Shared Secret (PSK). Your https connection does this with CA certificates.
This 'baseline trust' allows you to know the other end is who you expect it to be. With traditional radios, there's not much of that. There's just:
- something you have (the radio characteristics)
- something shared (past experiences/conversations)
- something you are (your voice)
If you don't squint that hard, that's the basis of any kind of authentication. Thus we have that covered. So, I can "authorize" myself as my person. Then I can send my keys over the air so we can have a private conversation.
Here's the issue, as soon as I broadcast my keys, someone with a "louder" (technically, brighter) radio broadcasts my voice with different keys. Next, they do the same thing when you broadcast your keys. Bam, we've been MITM'd without even realizing it.
So, ok, you say. Maybe we'll snail mail our keys to each other. Sure, that'll work. Yet still, even then, we'd only be able to talk to each other. At that point, why not just pick up a phone or start up a telegram chat?
The weakest link in any kind of encryption is always during the key exchange. Always. Mostly because we are human... we click through warnings, get our mail stolen, misstype things, and all kinds of dumb things.
My other point about code: we can agree on a dictionary. It's virtually uncrackable and fluent to have a coded conversation. For example, there's 0% chance you'd have any idea what this actual phrase from Afganistan means:
"the dust is blowing in, so we'll need about 5 mins to pick up my sister and head home"
spoiler:
"the americans are here, so we'll need about 5 mins to set up the guns and be the rendezvous."
Code is always better than encryption. Always. The issue is the "dictionary" and the fact that it can be leaked. Encryption gives better guarantees in that regard. But when you already have 'authentication and authorization' via the things I mentioned above, code does quite well...