User Tools

Site Tools


sql-guessing-advantage-analyser

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
sql-guessing-advantage-analyser [2018/11/27 09:58]
alisa
sql-guessing-advantage-analyser [2018/11/27 10:36]
alisa [Description]
Line 6: Line 6:
  
 We interpret differential privacy in terms of a more standard security measure -- the attacker'​s guessing advantage. It is defined as the difference between the posterior (after observing the output) and prior (before observing the output) probabilities of attacker guessing the input. The analyser reports the amount of noise that need to be added to achieve a desired upper bound on advantage. We interpret differential privacy in terms of a more standard security measure -- the attacker'​s guessing advantage. It is defined as the difference between the posterior (after observing the output) and prior (before observing the output) probabilities of attacker guessing the input. The analyser reports the amount of noise that need to be added to achieve a desired upper bound on advantage.
 +
 +===== Quick guide =====
 +
 +Compared to [[sql-derivative-sensitivity-analyser|combined sensitivity analyser]], the data objects of a model also have schemas and data tables, but now there are no explicit table norms. The distance measure for differential privacy will be determined in a different way.
 +
 +Clicking on //Analyze// button opens a menu entitled //Analysis settings// on the right side of the page (in sidebar). The emerging slider allows to set desired upper bound on attacker’s advantage, which ranges between 0% and 100%.
 +
 +The user has to specify a particular subset of attributes that the attacker is trying to guess, within given precision range. To characterize the attacker more precisely, the user defines prior knowledge of the attacker.
 +There are now two extra buttons to define bounds for used attributes.
 +
 +=== Sensitive attributes ===
 +This input defines a set of sensitive components, which the attacker is trying to guess. The definition starts from a keyword ''​leak''​. For each sensitive attribute, the guess can either be ''​exact''​ (discrete attributes),​ or ''​approx r''​ (approximated by r > 0 units). The list of attributes is followed by the keyword cost and a number that defines the cost of leaking that attribute.
 +<​code>​
 +leak
 +ship.latitude approx 5;
 +ship.longitude approx 5;
 +cost 100
 +</​code>​
 +In this example, the attacker wins iff he guesses //both// attributes ''​latitude''​ and ''​longitude''​ of some row of the table ''​ship''​ within 5-unit precision. The definition of "​unit"​ depends on the data table, e.g. if the location was defined in miles, then a unit is also a mile.
 +
 +If the attacker wins if he guesses //either// ''​latitude''​ or ''​longitude'',​ we specify it as two distinct sensitive sets, each having its leakage cost.
 +<​code>​
 +leak
 +ship.latitude approx 5;
 +cost 30
 +
 +leak
 +ship.longitude approx 5;
 +cost 70
 +</​code>​
 +
 +=== Attacker settings ===
 +This input defines prior knowledge of the attacker by setting pre-known bounds on attributes, defined either as ''​exact'',​ ''​range a b'',​ or ''​total a''​ (the latter is used only for discrete data).
 +
 +<​code>​
 +ship.latitude range 0 300;
 +ship.longitude range 0 300;
 +</​code>​
 +
 +In this example, the attacker knows that both ''​latitude''​ and ''​longitude''​ range between ''​0''​ and ''​300''​.
 +
 +=== Running analysis ===
 +Click on //Run analysis// button to run analysis. The analyser internally converts these values to a suitable ε for differential privacy, and computes the noise required to achieve the bound on attacker’s advantage. The results (entitled //Analysis results//) appear in the sidebar as well. The result is given for each of the input tables, and it consists of the following components.
 +Click on //Run analysis// button to run analysis. The results (entitled //Analysis results//) appear in the sidebar as well. The result is given for each of the input tables, and it consists of the following components.
 +
 +  * **Relative error (additive noise / query output)** is the quotient of the additive noise and the query output. It shows how far the differentially private result gets from the actual result.
 +  * **Expected cost** tells how much we lose in average if we let the attacker observe the output, in addition to what we had lost if the attacker has not observed the output.
 +
 +To see more precise values of prior and posterior guessing probabities,​ click //View more//. This can be useful for choosing appropriate value on the guessing advantage slider. For example, if the prior guessing probability was already 75%, then any value above 25% makes no sense since it would mean that the attacker is allowed to learn everything.
sql-guessing-advantage-analyser.txt · Last modified: 2021/06/14 11:46 by alisa