Also known as: Feistel cipher
A Feistel network is a way of building a block cipher by splitting each block into two halves and, round after round, mixing one half into the other through a round function.1 Its defining property is that the same structure both encrypts and decrypts — the round function never has to be inverted.
How it works
In each round the right half R is fed through a round function F (mixing in a round key),
the result is XORed into the left half L, and then the two halves swap. Because the
untouched half is carried forward unchanged, decryption simply runs the identical rounds in
reverse order: knowing R, you can recompute F(R) and undo the XOR. This means the round
function F need not be invertible — it can be any nonlinear mapping, which gives designers
great freedom in building F from S-boxes and bit permutations.
A single round provides little security, so a real Feistel cipher repeats many rounds (DES uses 16), each with a different round key derived from the master key, until every output bit depends on every input and key bit.
Relevance to SDR
The classic Feistel cipher is DES, one of the algorithms used to encrypt P25 voice, so the construction sits behind some of the encrypted traffic GopherTrunk encounters. As with any strong cipher, the relevance is honest but bounded: GopherTrunk can identify an encrypted call but cannot recover its audio without the key.
The structure is also useful as an analysis template. The clean-room study of the Motorola P25 talker-alias obfuscation in issue #773 tested whether the scheme’s byte updates followed a Feistel-shaped split-and-mix pattern; that hypothesis was evaluated and ruled out from public on-air data alone, with no third-party source involved.
Sources
-
Feistel cipher — Wikipedia, for the split-half round structure and the fact that decryption reuses the same rounds. ↩