A mechanism \(M\) is \(\rho\)-zCDP when \(D_\alpha(M(x) \| M(x')) \le \rho\alpha\) for every \(\alpha \in (1, \infty)\) and every pair of adjacent inputs (Bun & Steinke 2016, Definition 1.1, in the \(\xi = 0\) case).
Arguments
- mech
Numeric vector of per-mechanism zCDP parameters \(\rho_i\). A scalar is treated as a single mechanism.
- rho
Total zCDP privacy budget,
rho > 0.- delta
The \(\delta\) at which the Proposition 1.3 \((\varepsilon, \delta)\)-DP statement is reported, in (0, 1).
- sensitivity
Query sensitivity \(\Delta\) used to size the Gaussian noise.
Value
Named list with rho_total, rho_budget,
within_budget, epsilon, delta, sigma,
rho_from_eps, n_mechanisms, method.
Details
mech gives the per-mechanism parameters \(\rho_i\) of the
mechanisms being composed. Composition is additive (Lemma 1.7), so the
composed mechanism is \(\sum_i \rho_i\)-zCDP. rho is the budget
the composition is checked against and the budget used to size the
Gaussian noise.
The reported quantities are
Proposition 1.3 — \(\rho\)-zCDP implies \((\rho + 2\sqrt{\rho \log(1/\delta)}, \delta)\)-differential privacy for every \(\delta > 0\).
Proposition 1.4 — \(\varepsilon\)-differential privacy implies \((\varepsilon^2/2)\)-zCDP; reported as
rho_from_eps.Proposition 1.6 / Lemma 2.4 — the Gaussian mechanism that answers a sensitivity-\(\Delta\) query with \(N(0, \sigma^2)\) noise is \(\Delta^2/(2\sigma^2)\)-zCDP; inverted at the budget this gives \(\sigma = \Delta/\sqrt{2\rho}\).
Mirrors morie.fn.zcdp on the Python side.
References
Bun M & Steinke T (2016). Concentrated differential privacy: simplifications, extensions, and lower bounds. Theory of Cryptography (TCC 2016-B), 635–658. arXiv:1605.02065.
Examples
Zcdp(c(0.1, 0.2, 0.3), rho = 1)$epsilon
#> [1] 6.358231
