Skip to contents

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).

Usage

Zcdp(mech, rho, delta = 1e-06, sensitivity = 1)

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