diff options
| author | eunhhu <[email protected]> | 2026-09-29 13:57:58 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-29 13:58:06 +0100 |
| commit | 9791a1e70979ee4ba832851912f0de20301343a8 (patch) | |
| tree | f0d4aaccae616ba61d06ced5ffed2f1c85d218f5 /prototypes/workbench/rules.test.mjs | |
| parent | e680e67dc99c33cfaa3152613bddf3742263e385 (diff) | |
| download | pure-9791a1e70979ee4ba832851912f0de20301343a8.tar.gz pure-9791a1e70979ee4ba832851912f0de20301343a8.zip | |
Move a link to a new epoch now and then, so keys that leak later open nothing past
A sender offers the public half of a pair made for the next epoch
(OFFER) until the receiver accepts with a half of its own (ACCEPT); their
X25519 and the epoch's secret make the next one's, and the private
halves go. The header's low four bits say a packet's epoch; epoch 0 is
the nodes' static secret, as the keys were. The first epoch is offered in
the run's first packet (it begins with the first answer when the
receiver is not busy), then one an hour or GiB. One who later has both
nodes' keys opens only epoch 0, and no record went there after an epoch
began: test-link tries every packet sent under the static keys, with
epochs a second long, loss, reordering, restarts and replays.
The receiver writes the epoch it accepted in its memo (a place is 256
bytes now), so it goes on without an X25519 when it starts again; one
that forgot is not heard from, and its senders, after 2 s and four
probes unanswered, offer again in epoch 0 with no records until an epoch
begins. Keys of four epochs are tried (accepted, now, before, zero), as
two may share the four bits.
An accept costs an X25519 on each side, 220 µs on this Pi: one of a
sender with records costs a token (256 a second, 8 at once) and the
next packet offers again when there is none; one of a sender with
nothing else to send waits for none, one a second for it. The X25519 is
made after the turn's answers, never between a packet and its answer.
serve's report and M2's generator count keys, X25519s and epochs.
Diffstat (limited to 'prototypes/workbench/rules.test.mjs')
0 files changed, 0 insertions, 0 deletions
