Inventor(s)

Abstract

The block is laid out group-major: the descriptor, then every mix’s codec resync field, then every mix’s group 0, then every mix’s group 1, and so on; the error-correction parity and the keyed tag come last. A group is therefore complete as soon as its own bits have landed, and the per-block codec fields (side info in the descriptor, the resync field) arrive before group 0. As a block arrives, the receiver hands the bits up after each read; groups of its mix that are whole are decrypted (the block’s keystream is known from its period), checked by their own per-group parity in detect-only modes, decoded and written to the output, before the block’s code and tag are checked. The side info and the resync field go to the decoder with group 0. In detect-only modes streaming stops before the first group whose parity fails. Speculation is permitted only when the previous block passed its check under the current key, and not while the receiver is re-arming after any failure. A lost block (nothing received) does not stop it. Before the first group of a streamed block, the decoder’s state is saved into one of STATE_SLOTS (= 4) slots indexed by the block’s period. When the whole block is checked, the calls the checked block would make on the decoder are compared with those already made (side info, resync field and each group’s bits).

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.

Share

COinS