Field Guide · algorithm

Also known as: block cipher

A block cipher encrypts data in fixed-size blocks — for example 128 bits in AES or 64 bits in DES — transforming each block under a key with a keyed, invertible permutation.1 A mode of operation then chains the blocks so the cipher can handle messages of any length.

block (n bits) block cipher key cipher block (n bits)
A block cipher maps an n-bit plaintext block to an n-bit ciphertext block under a key; a mode chains blocks.

How it works

The core block cipher is a single keyed permutation: for a fixed key it maps every possible input block to a distinct output block, and the mapping is invertible so the holder of the key can reverse it. Internally this permutation is built from many simple rounds, most often as a Feistel network (DES) or a substitution-permutation network (AES), each combining confusion and diffusion so the output depends intricately on every input and key bit.

Because real messages are longer than one block, a mode of operation specifies how successive blocks combine:

  • ECB encrypts each block independently — simple but leaks patterns, since identical plaintext blocks yield identical ciphertext.
  • CBC XORs each plaintext block with the previous ciphertext block before encrypting.
  • OFB / CTR turn the block cipher into a keystream generator, making it behave like a stream cipher.

Relevance to SDR

Block ciphers underpin the strong encryption on the digital systems GopherTrunk monitors. P25 voice may use DES or AES-256, and DMR encryption options likewise build on AES — but these protocols run the block cipher in a feedback mode (OFB/CTR), so on air the protected voice is delivered as a stream cipher. The practical upshot is the same: GopherTrunk can recognize and follow an encrypted call but cannot recover audio without the key, since the underlying permutation is infeasible to invert by brute force.

Sources

  1. Block cipher — Wikipedia, for fixed-size block encryption and modes of operation. 

See also