Also known as: symmetric encryption, secret-key cryptography
Symmetric-key cryptography uses the same secret key to encrypt and to decrypt, so the sender and receiver must both hold that key and keep it secret.1 It underlies the fast bulk ciphers such as AES, DES, and RC4, and is the workhorse of almost every system that protects real traffic in volume.
How it works
A single cryptographic key parameterises both directions of the cipher. Encryption transforms plaintext to ciphertext under the key; decryption is the inverse transform under the same key. Because there is only one key and no public-key mathematics — no modular exponentiation over thousand-bit numbers, no elliptic-curve point multiplication — symmetric ciphers run one to three orders of magnitude faster than their asymmetric counterparts and are used for essentially all bulk data encryption. A well-designed symmetric cipher aims for confusion (each ciphertext bit depends on the key in a complicated way) and diffusion (flipping one plaintext bit changes about half the ciphertext bits), so the output is statistically indistinguishable from random and resists frequency analysis.
Variants
Symmetric ciphers come in two main shapes:
- Stream ciphers generate a keystream and combine it with the data, usually by XOR — for example RC4. They encrypt one bit or byte at a time and are natural for continuous media such as digital voice.
- Block ciphers transform fixed-size blocks under the key — for example AES (128-bit blocks) and DES (64-bit blocks). A mode of operation turns a block cipher into a way to encrypt arbitrary-length data: ECB (blocks independently, weak), CBC (chained), CTR, and OFB (which runs the block cipher as a keystream generator, blurring the two categories).
The block/stream distinction is not absolute. P25 voice protection running DES or AES in output-feedback (OFB) mode uses a block cipher precisely to manufacture a keystream that is then XORed with the vocoder bits, so the radio treats a block cipher exactly like a stream cipher over the air.
In practice
The central weakness is key distribution: every pair of parties needs a shared secret, delivered over some channel an eavesdropper cannot read. In a fleet of hundreds of radios this becomes a logistics problem — keys are loaded physically with a key loader or refreshed remotely by over-the-air rekeying, and each key is tagged with a key ID and algorithm ID so a receiver knows which key and cipher a given call used. Public-key cryptography was developed largely to solve the distribution problem, and modern systems often combine the two: an asymmetric exchange delivers a fresh symmetric key, then the fast symmetric cipher carries the traffic. Per Kerckhoffs’s principle, the algorithm may be public; only the key must stay secret.
Relevance to SDR
Most trunked-radio voice encryption is symmetric. DMR “Enhanced Privacy” uses RC4; P25 voice protection uses DES-OFB, DES-XL, or AES-256; TETRA uses the TEA family. In every case GopherTrunk can detect the encrypted traffic, read the key ID / algorithm ID that identifies it, and follow the call, but cannot recover the audio without the shared key — that is the whole point of a symmetric cipher. This is distinct from reversible scrambling or whitening, which use a publicly known sequence and so can be undone without any secret. GopherTrunk decodes clear and scrambled traffic; it does not attempt to break keyed symmetric encryption.
Sources
-
Symmetric-key algorithm — Wikipedia, for the shared-secret-key model and its key-distribution trade-off. ↩