A playground simulator for https://crates.io/crates/fuzzytags designed to demonstrate the impact of integrating fuzzytags into an application with poor parameter choices (and aid in choosing good parameters).
移至檔案
Sarah Jamie Lewis 0eb9b53195 Upgrade to 0.4.0 2021-02-13 20:46:02 -08:00
datasets Datasets, Server upgrades + Nicer Graphs 2021-02-12 23:36:04 -08:00
src Fmt, Bulk Verify and nicer SVG output 2021-02-13 20:43:54 -08:00
.gitignore Const-generics + Entangled Upgrade 2021-02-09 23:23:50 -08:00
Cargo.toml Upgrade to 0.4.0 2021-02-13 20:46:02 -08:00
README.md initial commit 2021-01-31 23:50:59 -08:00
rustfmt.toml Fmt, Bulk Verify and nicer SVG output 2021-02-13 20:43:54 -08:00

README.md

fuzzytags-sim

A playground simulator for fuzzytags designed to demonstrate the impact of integrating fuzzytags into an application with poor parameter choices (and aid in choosing good parameters).

Setup

Run cargo build --release, then the binary will be at ./target/release/fuzzytags-sim

By default, the simulator will run a single-round experiment with 10 parties (--num-parties). Messages for parties will be drawn randomly from a pareto distribution (scale: 1.0, shape: 1.0) i.e. a few parties will receive many messages, the rest will receive a small number (or zero). This can be adjusted by the --samples-per-round argument.

Once all the parties and messages have been generated, the server will test all messages against all parties.

Finally, the server will produce statistics for the round, including the ideal false positive rate for each party, the observed match rate for each party, the skew between the ideal false positive rate and the observed rate, and the number of trivial attributions it has made to that party in this round.

Note: A trivial attribution corresponds to the server receiving a tag which only matches a single party.

Future Extensions

  • Multiple Rounds / Aggregate Statistics
  • Differential Attacks e.g. leak that a set of messages all belong to the same party and have the server guess which party they belong to.
  • Simulate poisson distribution arrival (and bidirectional conversation) and allow the server to make timing correlations to aid in breaking anonymity