diff --git a/ANONYMITY.md b/ANONYMITY.md index f458fef..16f61df 100644 --- a/ANONYMITY.md +++ b/ANONYMITY.md @@ -37,11 +37,25 @@ download everything, the more the system can safely tolerate parties with small To what extent you can actually account for this in your application is an open question. +### Statistical Attacks + +Using some basic binomial probability we can use the false positive rate of reach receiver tag to calculate +the probability of matching on at least X tags given the false positive rate. Using this we can find statistically +unlikely matches e.g. a low-false positive key matching many tags in a given period. + +This can be used to find receivers who likely received messages in a given period. + +If it is possible to group tags by sender then we can perform a slightly better attack and ultimately learn the +underlying social graph with fairly low false positive rates (in simulations we can learn 5-10% of the underlying +connections with between 5-12% false positive rates.) + +For more information on statistical attacks please check out our [fuzzytags simulator](https://git.openprivacy.ca/openprivacy/fuzzytags-sim). + ### Should Senders use an anonymous communication network? -If differential attacks are likely e.g. few parties download everything and +If statistical & differential attacks are likely e.g. few parties download everything and multiple messages are expected to originate from a sender to a receiver or there -is other information that might otherwise link a set of messages to a receiver then you may want to consider how +is other information that might otherwise link a set of messages to a sender or receiver then you may want to consider how to remove that context. One potential way of removing context is by having senders send their message to the server through some kind of anonymous diff --git a/FuzzyTags_Logo.png b/FuzzyTags_Logo.png new file mode 100644 index 0000000..562e0c1 Binary files /dev/null and b/FuzzyTags_Logo.png differ diff --git a/README.md b/README.md index 075c414..93664da 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # FuzzyTags +![](https://git.openprivacy.ca/openprivacy/fuzzytags/media/branch/trunk/FuzzyTags_Logo.png) + Anonymous messaging systems (and other privacy-preserving applications) often require a mechanism for one party to learn that another party has messaged them ("notifications"). diff --git a/src/lib.rs b/src/lib.rs index 426917e..dcdd3e1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,6 +3,7 @@ #![feature(const_generics)] #![doc(include = "../README.md")] #![doc(include = "../ANONYMITY.md")] +#![doc(html_logo_url = "https://git.openprivacy.ca/openprivacy/fuzzytags/media/branch/trunk/FuzzyTags_Logo.png")] use bit_vec::BitVec; use curve25519_dalek::constants::RISTRETTO_BASEPOINT_POINT; use curve25519_dalek::digest::Digest;