d-privacy

qif.measure.d_privacy

For a metric \(d\) on secrets, a channel \(C\) satisfies \(d\)-privacy if \(C_{x,y} \le e^{d(x,x')} C_{x',y}\) for all secrets \(x,x'\) and observations \(y\). When the secrets are databases and \(d = \varepsilon d_H\), with \(d_H\) the Hamming distance, this is standard \(\varepsilon\)-differential privacy. Only double is supported.

Functions

prior(pi: ndarray, d: Metric[int, float]) → float

A prior vulnerability, \(\max_{x,x'} |\ln \pi_x - \ln \pi_{x'}| / d(x,x')\). Its additive max-case capacity (the maximum over all priors of \(\max_y V(p_{X|y}) - V(\pi)\)) equals smallest_epsilon() [CFP19].

is_private(C: ndarray, d: Metric[int, float]) → bool

Whether C satisfies d-privacy.

smallest_epsilon(C: ndarray, d: Metric[int, float]) → float

The smallest \(\varepsilon\) such that C satisfies \(\varepsilon d\)-privacy.

References

[CFP19]

K. Chatzikokolakis, N. Fernandes, C. Palamidessi. Comparing systems: max-case refinement orders and application to differential privacy. CSF 2019.