Skip to content

RrdpsLeakage ​

Privacy amplification bounded by the packet length alone, no observable read

9/9 passed in 179ms

TestWhat it doesResult
test_collective_bound_beats_the_originalrrdps_collective(l, 1) is exactly 1 at l = 2 and below both rrdps_leak(l, 1) and a whole bit at every longer train, Yin et al.'s corollary.✅ pass
test_gllp_charges_each_photon_numberrrdps_gllp matches Eq. (13) summed out to four thousand photon numbers, including the thresholds past half the delays where it collapses onto the whole-key form.✅ pass
test_leak_falls_with_train_lengthrrdps_leak(l, 1) falls monotonically in l, is h2(1/1023) at l = 1024, and scales as log2(l)/l with no floor.✅ pass
test_leak_has_no_channel_argumentMoving the bit error rate changes rrdps_rate only through qf_ech2(e)/l, never through privacy amplification.✅ pass
test_leak_saturates_at_a_whole_bitrrdps_leak is exactly one bit once the threshold reaches half the delays, and stays there past it.✅ pass
test_phase_mixes_the_error_ratesrrdps_phase is the tagged share plus nu/(l - 1) on the rest, capped at one half.✅ pass
test_source_tail_is_the_poisson_onerrdps_src is the Poisson tail of the packet's own mean l*mu, not of mu.✅ pass
test_tagging_reduces_to_the_leakrrdps_tag passes the leakage bound through unchanged at a zero over-threshold probability, and charges a whole bit on a wholly tagged key.✅ pass
test_three_published_forms_are_orderedrrdps_gllp <= rrdps_tag <= h2(rrdps_phase) at every train length and threshold.✅ pass