Working on timestamps

The solution does not require synchronized time, but the clocks are assumed to be relatively synchronized meaning that they are running on a relatively equal frequency.

All timestamps are represented with a 32 bit value containing seconds since the epoch11.2. Timestamps are at first recorded as $T = T_L - T_R$ where $T_L$ is the local timestamp and $T_R$ is the remote timestamp received through the timestamp exchange. When receiving a signature message, a certain slack $S$ in the calculated timestamp difference is allowed. This means that a signature message with a verified digest and a timestamp difference $T_N$ so that $(T_O - S) <
T_N < (T_O + S)$ where $T_O$ is the stored timestamp difference of the sender, is considered a verified signature message.

To compensate for a possible skew between clocks, the timestamp difference is recalculated for every received and verified signature message. The difference is recalculated as $(T_O + T_N)/2$ where $T_O$ is the recorded timestamp difference and $T_N$ is the difference calculated based on the received timestamp.

Andreas 2004-07-29