Synchronize shielded messages using fuzzy message detection (FMD).
This crate supports multi-key extraction by thresholdizing the original FMD2 scheme.
Knowing up to t < d
detection keys leaks no information about the other d-t
keys. Here t
is a corruption threshold parameter passed to the multi-key extraction.
For each pair (d,t)
, there is an associated set P(d,t)
of valid leaked and filtering rates (p_l,p_f)
.
p_l:=2^{-n}
andn
is the number of (different) secret subkeys across anyt
detection keys,p_f:=2^{-δ}
andδ
is the total number of secret subkeys in thed
detection keys.
Thus, the leaked rate is the false-positive rate at which any coallition of t
servers can filter. The filtering rate is the false-positive rate at which the receiver can filter, after receiving all the filters from the d
servers.
Two implementations are provided. The compact scheme generates short FMD public keys, which can be randomized.
- Compact public keys can be publicly expanded into FMD public keys. This means that only compact keys need to be made public by key owners (receivers), saving bandwidth and storage.
- Randomized public keys share the same set of detection keys. Can be seen as sybil identities for the same receiver.
Feature serde
enables serialization/deseralization of public keys, secret keys, detection keys, and flag ciphertexts.
Run make bench
.
See the examples folder.