Rolling Code
Rolling code uses a counter that advances in parallel in the transmitter and the receiver on every key press, making the transmitted packet different each time. An old packet that has been recorded and replayed is rejected because its counter is behind. It is the fundamental answer to the replay vulnerability of fixed code.
The transmitter and receiver share a common counter and a common transformation rule. On every press the counter advances, the packet is derived from that counter, and if the receiver sees a value in the range it expects it accepts the command and updates its own counter.
- Acceptance window: because keys pressed out of range still advance the counter, the receiver accepts a certain forward range; otherwise synchronisation would be lost.
- Loss of synchronisation: if the window is exceeded, re-pairing or a special resynchronisation procedure is needed.
- Limit: rolling code prevents replay, but on its own it does not encrypt the payload.
In stronger solutions, encryption and mutual session authentication are added on top of this mechanism. On the AXI side, in the XRF protocol of the HCT400 and HCT402 sets, an end-to-end encrypted data channel, bidirectional acknowledgement and session authentication are the features listed in the dump data.
Context in which this term is used: Receiver-transmitter pairing procedure