Prio: Private, Robust, and Efficient Computation of Aggregate Statistics
Henry Corrigan-Gibbs and Dan Boneh Stanford University
Appeared at NSDI 2017
Prio: Private, Robust, and Efficient Computation of Aggregate - - PowerPoint PPT Presentation
Prio: Private, Robust, and Efficient Computation of Aggregate Statistics Henry Corrigan-Gibbs and Dan Boneh Stanford University Appeared at NSDI 2017 Today: Non-private aggregation StressTracker Blood pressure Twitter usage Today:
Prio: Private, Robust, and Efficient Computation of Aggregate Statistics
Henry Corrigan-Gibbs and Dan Boneh Stanford University
Appeared at NSDI 2017
Twitter usage Blood pressure
Today: Non-private aggregation
StressTracker
Twitter usage Blood pressure
Today: Non-private aggregation
Each user has a private data point StressTracker
StressTracker
Blood pressure
Today: Non-private aggregation
Twitter usage
StressTracker
Blood pressure
Today: Non-private aggregation
Twitter usage
StressTracker
Blood pressure
B(T) = c
1
· T + c
Today: Non-private aggregation
Twitter usage
StressTracker
Blood pressure
B(T) = c
1
· T + c
Today: Non-private aggregation
The app provider learned more than it needed
Twitter usage
StressTracker
Blood pressure
Today: Non-private aggregation
Twitter usage
StressTracker
App store
Blood pressure
This work: Private aggregation
Twitter usage
StressTracker
App store
Blood pressure
This work: Private aggregation
Clients send an encrypted share of their data to each aggregator
Twitter usage
StressTracker
App store
Blood pressure
This work: Private aggregation
Clients send an encrypted share of their data to each aggregator
Twitter usage
StressTracker
App store
Blood pressure
This work: Private aggregation
Clients send an encrypted share of their data to each aggregator
Twitter usage
Blood pressure
The aggregators learn no private client data
This work: Private aggregation
B(T) = c
1
· T + c
StressTracker
App store
Twitter usage
Private aggregation
f(x1, …, xN)
x1 x3 xN x2
If all servers are honest, servers learn f(·)
If one server is honest, servers learn only* f(·)
Malicious clients have bounded influence
No public-key crypto (apart from TLS) 1000s of submissions per second
Blood pressure
200 100,000,000
StressTracker
App store
Twitter usage
Blood pressure
200 100,000,000
StressTracker
App store
Twitter usage
Private aggregation
f(x1, …, xN)
x1 xN x2
If all servers are honest, servers learn f(·)
If one server is honest, servers learn only* f(·)
Malicious clients have bounded influence
No public-key crypto (apart from TLS)
Prio is the first system to achieve all four.
x3
Private aggregation
f(x1, …, xN)
x1 xN x2
If all servers are honest, servers learn f(·)
If one server is honest, servers learn only* f(·)
Malicious clients have bounded influence
No public-key crypto (apart from TLS)
Prio is the first system to achieve all four.
…and Prio supports a wide range of aggregation functions f(·)
x3
Private aggregation
f(x1, …, xN)
x1 xN x2
If all servers are honest, servers learn f(·)
If one server is honest, servers learn only* f(·)
Malicious clients have bounded influence
No public-key crypto (apart from TLS)
Prio is the first system to achieve all four.
x3
Contributions
– Client proves that its encoded submission is well-formed – We do not need the power of traditional “heavy” crypto tools
Can compute sums privately ⟹ Can compute f(·) privately
…for many f’s of interest
Contributions
– Client proves that its encoded submission is well-formed – We do not need the power of traditional “heavy” crypto tools
Can compute sums privately ⟹ Can compute f(·) privately
…for many f’s of interest
See the paper
Related systems
P4P (2010), Private stream aggregation (2011), Grid aggregation (2011), PDDP (2012), SplitX (2013), PrivEx (2014), PrivCount (2016), Succinct sketches (2016), …
FairPlay (2004), Brickell-Shmatikov (2006), FairplayMP (2008), SEPIA (2010), Private matrix factorization (2013), JustGarble (2013), …
VPriv (2009), PrivStats (2011), ANONIZE (2014), …
RAPPOR (2014, 2016), …
Prio is the first system to achieve exact correctness, privacy, robustness, efficiency.
Outline
Outline
Warm-up: Computing private sums
Warm-up: Computing private sums
f(x1, …, xN) = x1 + … + xN without learning any users’ private value xi.
Warm-up: Computing private sums
f(x1, …, xN) = x1 + … + xN without learning any users’ private value xi. Example: Privately measuring traffic congestion. xi = 1 if user i is on the Bay Bridge = 0
The sum x1 + … + xN yields the number of app users
Private sums: A “straw-man” scheme
Server A Server B Server C
[Chaum88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …
Private sums: A “straw-man” scheme
Server A Server B Server C
Assume that the servers are non-colluding. Equivalently: that at least one server is honest.
[Chaum88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …
Private sums: A “straw-man” scheme
Server A Server B Server C
Assume that the servers are non-colluding. Equivalently: that at least one server is honest.
[Chaum88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …
Imagine: app store and app
StressTracker App store App
Private sums: A “straw-man” scheme
Server A Server B Server C
Assume that the servers are non-colluding. Equivalently: that at least one server is honest.
[Chaum88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …
Imagine: app store and app
StressTracker App store App
Imagine: app store and app
Private sums: A “straw-man” scheme
Server A Server B Server C
Assume that the servers are non-colluding. Equivalently: that at least one server is honest.
[Chaum88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …
Imagine: app store and app
StressTracker App store App
Imagine: app store and app
Spain Germany Iceland
Private sums: A “straw-man” scheme
Server A Server B Server C
[Chaum88], [BGW88], … [KDK11] [DFKZ13] [PrivEx14] …
Server A Server B Server C
1
Secret sharing Pick three random “shares” that sum to 1. 1 = 15 + (-12) + (- 2) (mod 31)
Private sums: A “straw-man” scheme
Need all three shares to recover the shared value.
Server A Server B Server C
1
Secret sharing Pick three random “shares” that sum to 1. 1 = 15 + (-12) + (- 2) (mod 31)
Private sums: A “straw-man” scheme
Need all three shares to recover the shared value.
Server A Server B Server C
1
Secret sharing Pick three random “shares” that sum to 1. 1 = 15 + (-12) + (- 2) (mod 31)
Private sums: A “straw-man” scheme
15
Need all three shares to recover the shared value.
Server A Server B Server C
Private sums: A “straw-man” scheme
15
1
Server A Server B Server C
15
Private sums: A “straw-man” scheme
1
Server A Server B Server C
Private sums: A “straw-man” scheme
15
Server A Server B Server C
Private sums: A “straw-man” scheme
15
= (-10) + 7 + 3
Server A Server B Server C
Private sums: A “straw-man” scheme
15
= (-10) + 7 + 3
Server A Server B Server C
Private sums: A “straw-man” scheme
15
7 3 = (-10) + 7 + 3
Server A Server B Server C
Private sums: A “straw-man” scheme
15
7 3
Server A Server B Server C
Private sums: A “straw-man” scheme
15
7 3
Server A Server B Server C
Private sums: A “straw-man” scheme
15-10
Server A Server B Server C
Private sums: A “straw-man” scheme
15-10+…
Server A Server B Server C
SB SC SA
Private sums: A “straw-man” scheme
Server A Server B Server C
SB SC SA
Private sums: A “straw-man” scheme
SA + SB + SC = 15 + -10 + …
Server A Server B Server C
SB SC SA
Private sums: A “straw-man” scheme
SA + SB + SC = 15 + -10 + …
Server A Server B Server C
SB SC SA SA + SB + SC = 1 + 0 + … + 1
Private sums: A “straw-man” scheme
SA + SB + SC = 15 + -10 + …
Server A Server B Server C
SB SC SA SA + SB + SC = 1 + 0 + … + 1 Servers learn the sum of client values and learn nothing else.
Private sums: A “straw-man” scheme
SA + SB + SC = 15 + -10 + …
Server A Server B Server C
SB SC SA SA + SB + SC = 1 + 0 + … + 1 Servers learn the sum of client values and learn nothing else.
Private sums: A “straw-man” scheme
SA + SB + SC = 15 + -10 + …
Server A Server B Server C
SB SC SA SA + SB + SC = 1 + 0 + … + 1 Servers learn the sum of client values and learn nothing else.
Private sums: A “straw-man” scheme
SA + SB + SC = 15 + -10 + …
Learn that three phones are on the Bay Bridge— don’t know which three
Computing private sums
Computing private sums
Exact correctness: If everyone follows the protocol, servers compute the sum of all xis. Privacy: Any proper subset of the servers learns nothing but the sum of the xis. Efficiency: Follows by inspection.
Computing private sums
Exact correctness: If everyone follows the protocol, servers compute the sum of all xis. Privacy: Any proper subset of the servers learns nothing but the sum of the xis. Efficiency: Follows by inspection. Robustness: ???
Server A Server B Server C
F
Private sums: A “straw-man” scheme
x
15-10
Server A Server B Server C
F
Private sums: A “straw-man” scheme
x
x is supposed to be a 0/1 value
15-10
Server A Server B Server C
F
Private sums: A “straw-man” scheme
x
15-10
Server A Server B Server C
Private sums: A “straw-man” scheme
15-10
Server A Server B Server C
Private sums: A “straw-man” scheme
An evil client needn’t follow the rules!
15-10
+ + = 21
Server A Server B Server C
Private sums: A “straw-man” scheme
An evil client needn’t follow the rules!
10 4 7
15-10
Server A Server B Server C
Private sums: A “straw-man” scheme
10 4 7
15-10
Server A Server B Server C
F
Private sums: A “straw-man” scheme
garbage garbage garbage
Server A Server B Server C
F
Private sums: A “straw-man” scheme
garbage garbage garbage
Users have incentives to cheat Typical defenses (NIZKs) are costly A single bad client can undetectably corrupt the sum
Outline
Outline
Server A Server B Server C
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
Server A Server B Server C
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
+ ( ) + ( ) = 1
Server A Server B Server C
15
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
Server A Server B Server C
15
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
Server A Server B Server C
15
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
Server A Server B Server C
15
Contribution 1 Secret-shared non-interactive proofs (SNIPs)
In this example, the servers want to ensure that their shares sum to 0 or 1 …without learning x.
x = 1
Server A Server B Server C
– expressed as an arithmetic circuit
Contribution 1 Secret-shared non-interactive proofs (SNIPs)
More generally, servers
x = 1 xa xb xc
Server A Server B Server C
– expressed as an arithmetic circuit
Contribution 1 Secret-shared non-interactive proofs (SNIPs)
More generally, servers
x = 1 xa xb xc
For our running example: Valid(x) = “x ∈ {0,1}”
Server A Server B Server C
– expressed as an arithmetic circuit
Contribution 1 Secret-shared non-interactive proofs (SNIPs)
More generally, servers
x = 1 xa xb xc
Server A Server B Server C
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1 xa xb xc
Server A Server B Server C
πa Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1 xa xb xc
Server A Server B Server C
πb πa Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1 xa xb xc
Server A Server B Server C
πb πa πc Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1 xa xb xc
xa xb xc
Server A Server B Server C
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
πa, πb, πc, Servers gossip Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
Ok.
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
Ok. Ok.
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
Ok. Ok. Ok.
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
Server A Server B Server C
xa xb xc
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
Fail
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
Fail Fail
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
Fail Fail Fail
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
πa, πb, πc, Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
xa xb xc
Server A Server B Server C
client submissions
the aggregate statistic by +/- 1, at most
Contribution 1 Secret-shared non-interactive proofs (SNIPs) x = 1
We need a proof system
A “valid” x
xa xb xc
Prover Verifiers
πa, πb, πc
We need a proof system
A “valid” x
xa xb xc
Prover Verifiers
πa, πb, πc
Valid(x) holds?
We need a proof system
A “valid” x
xa xb xc
Prover Verifiers
πa, πb, πc
We need a proof system
A “valid” x
xa xb xc
Prover Verifiers
πa, πb, πc
Completeness. Honest prover convinces honest verifiers. Soundness. Dishonest prover rarely convinces honest verifiers. Zero knowledge. Any proper subset of the verifiers learns nothing about x, except that x is valid.
Traditional techniques
[FS86], [BFM88], [BDMP91], [CP92], [CS97], [M00], …
[G10], [L12], [GGPR13], [BCGTV13], [PGHR13], …
[Y82], [GMW87], [BGW88], [CCD88], [CLOS02], [DPSZ12], [DKLPSS13], …
In our setting, SNIPs are a more efficient solution.
Traditional techniques
[FS86], [BFM88], [BDMP91], [CP92], [CS97], [M00], …
[G10], [L12], [GGPR13], [BCGTV13], [PGHR13], …
[Y82], [GMW87], [BGW88], [CCD88], [CLOS02], [DPSZ12], [DKLPSS13], …
In our setting, SNIPs are a more efficient solution.
xa xb xc
Server A Server B Server C
How SNIPs work
xa xb xc
Server A Server B Server C
How SNIPs work
Could run secure multiparty computation to check that Valid(x) = 1.
[GMW87], [BGW88]
xa xb xc
Server A Server B Server C
How SNIPs work
Could run secure multiparty computation to check that Valid(x) = 1.
[GMW87], [BGW88]
xa xb xc
Server A Server B Server C
How SNIPs work
Server A Server B Server C
How SNIPs work x xa xb xc
Server A Server B Server C
How SNIPs work x
Idea: Client generates the transcripts that servers would have observed in a multi-party computation
See also [IKOS07]
xa xb xc
xa xb xc
Server A Server B Server C
How SNIPs work x
Idea: Client generates the transcripts that servers would have observed in a multi-party computation
See also [IKOS07]
xa xb xc
xa xb xc
Server A Server B Server C
How SNIPs work x
xa xb xc
xa xb xc
Server A Server B Server C
How SNIPs work x xa xb xc
Server A Server B Server C
How SNIPs work x
Servers check that the transcripts are valid and consistent.
xa xb xc
Server A Server B Server C
How SNIPs work x
Servers check that the transcripts are valid and consistent.
πa πb πc xa xb xc
Server A Server B Server C
How SNIPs work x
Servers check that the transcripts are valid and consistent. Checking a transcript is much easier than generating it!
πa πb πc xa xb xc
Server A Server B Server C
How SNIPs work πa πb πc xa xb xc
Server A Server B Server C
How SNIPs work πa πb πc Da Db Dc xa xb xc
Server A Server B Server C
How SNIPs work πa πb πc Da Db Dc xa xb xc
“Randomized digest”
Server A Server B Server C
How SNIPs work πa πb πc Da Db Dc xa xb xc
Server A Server B Server C
How SNIPs work Da Db Dc
[BFO12]
Server A Server B Server C
How SNIPs work Da Db Dc
[BFO12]
Da + Db + Dc = 0
Da + Db + Dc ≠ 0 with high probability Servers run lightweight multi-party computation to check that Da + Db + Dc = 0 If so, servers accept x is valid.
Server A Server B Server C
How SNIPs work Da Db Dc
[BFO12]
Da + Db + Dc = 0
Da + Db + Dc ≠ 0 with high probability Servers run lightweight multi-party computation to check that Da + Db + Dc = 0 If so, servers accept x is valid.
Server A Server B Server C
How SNIPs work Da Db Dc
O(1) O(1) O(1)
[BFO12]
M = # of multiplication gates in Valid(·) circuit
Public-key ops. Communication Slow- down Client Server C-to-S S-to-S
M = # of multiplication gates in Valid(·) circuit
Public-key ops. Communication Slow- down Client Server C-to-S S-to-S
Dishonest-maj. MPC
Θ(M) Θ(M) 5,000x
at server
[CLOS02], [DPSZ12], …
M = # of multiplication gates in Valid(·) circuit
Public-key ops. Communication Slow- down Client Server C-to-S S-to-S
Dishonest-maj. MPC
Θ(M) Θ(M) 5,000x
at server
Commits + NIZKs
Θ(M) Θ(M) Θ(M) Θ(M) 50x
at server
[FS86], [CP92], [CS97], … [CLOS02], [DPSZ12], …
M = # of multiplication gates in Valid(·) circuit
Public-key ops. Communication Slow- down Client Server C-to-S S-to-S
Dishonest-maj. MPC
Θ(M) Θ(M) 5,000x
at server
Commits + NIZKs
Θ(M) Θ(M) Θ(M) Θ(M) 50x
at server
Commits + SNARKs
Θ(M) O(1) O(1) O(1) 500x
at client
[FS86], [CP92], [CS97], … [GGPR13], [BCGTV13], … [CLOS02], [DPSZ12], …
M = # of multiplication gates in Valid(·) circuit
Public-key ops. Communication Slow- down Client Server C-to-S S-to-S
Dishonest-maj. MPC
Θ(M) Θ(M) 5,000x
at server
Commits + NIZKs
Θ(M) Θ(M) Θ(M) Θ(M) 50x
at server
Commits + SNARKs
Θ(M) O(1) O(1) O(1) 500x
at client
This work: SNIPs
Θ(M) O(1) 1x
[FS86], [CP92], [CS97], … [GGPR13], [BCGTV13], … [CLOS02], [DPSZ12], …
M = # of multiplication gates in Valid(·) circuit
Public-key ops. Communication Slow- down Client Server C-to-S S-to-S
Dishonest-maj. MPC
Θ(M) Θ(M) 5,000x
at server
Commits + NIZKs
Θ(M) Θ(M) Θ(M) Θ(M) 50x
at server
Commits + SNARKs
Θ(M) O(1) O(1) O(1) 500x
at client
This work: SNIPs
Θ(M) O(1) 1x
[FS86], [CP92], [CS97], … [GGPR13], [BCGTV13], …
For specific Valid() circuits, it is possible to eliminate this cost [BGI16]
[CLOS02], [DPSZ12], …
M = # of multiplication gates in Valid(·) circuit
Public-key ops. Communication Slow- down Client Server C-to-S S-to-S
Dishonest-maj. MPC
Θ(M) Θ(M) 5,000x
at server
Commits + NIZKs
Θ(M) Θ(M) Θ(M) Θ(M) 50x
at server
Commits + SNARKs
Θ(M) O(1) O(1) O(1) 500x
at client
This work: SNIPs
Θ(M) O(1) 1x
[FS86], [CP92], [CS97], … [GGPR13], [BCGTV13], … [CLOS02], [DPSZ12], …
From sums to more complex aggregates
If you can compute private sums, you can compute many
[PrivStats11], [KDK11], [DFKZ13], [PrivEx14], [MDD16], …
Outline
Outline
Evaluation
(see optimizations described in paper)
Four variants
(privacy + robustness)
(privacy + robustness)
Evaluation
(see optimizations described in paper)
Four variants
(privacy + robustness)
(privacy + robustness)
E.g., for privately measuring telemetry data.
Evaluation
(see optimizations described in paper)
Four variants
(privacy + robustness)
(privacy + robustness)
Evaluation
(see optimizations described in paper)
Four variants
(privacy + robustness)
(privacy + robustness)
Evaluation
(see optimizations described in paper)
Four variants
(privacy + robustness)
(privacy + robustness)
five servers
Five-server cluster in five Amazon data centers
24 26 28 210 212 214 216 Submission length (0/1 integers) 1 10 100 1000 10000 Submissions processed/s NIZK
Five-server cluster in five Amazon data centers
24 26 28 210 212 214 216 Submission length (0/1 integers) 1 10 100 1000 10000 Submissions processed/s Prio NIZK
Five-server cluster in five Amazon data centers
24 26 28 210 212 214 216 Submission length (0/1 integers) 1 10 100 1000 10000 Submissions processed/s Prio NIZK
Five-server cluster in five Amazon data centers
24 26 28 210 212 214 216 Submission length (0/1 integers) 1 10 100 1000 10000 Submissions processed/s Prio NIZK
50x performance improvement
Five-server cluster in five Amazon data centers
24 26 28 210 212 214 216 Submission length (0/1 integers) 1 10 100 1000 10000 Submissions processed/s No robustness Prio NIZK
24 26 28 210 212 214 216 Submission length (0/1 integers) 1 10 100 1000 10000 Submissions processed/s No robustness Prio NIZK No privacy
Five-server cluster in five Amazon data centers
24 26 28 210 212 214 216 Submission length (0/1 integers) 1 10 100 1000 10000 Submissions processed/s No robustness Prio NIZK No privacy
Five-server cluster in five Amazon data centers
Within 10x of no privacy
Outline
Outline
Real-world considerations: Technical
Every company we spoke with said:
– Existing solutions are good, but not great
Areas of vehement disagreement between companies:
Real-world considerations: Technical
Every company we spoke with said:
– Existing solutions are good, but not great
Areas of vehement disagreement between companies:
Real-world considerations: Non-technical
Real-world considerations: Non-technical
“If we’re already collecting _________ without privacy protections, why bother adding privacy protections?”
– Pitch: Collect new statistics that you couldn’t collect before
“We don’t yet know what aggregates we want to collect.”
– Pitch: It’s possible to retain some flexibility
(e.g., can later break out statistics by geographic area)
Real-world considerations: Non-technical
“If we’re already collecting _________ without privacy protections, why bother adding privacy protections?”
– Pitch: Collect new statistics that you couldn’t collect before
“We don’t yet know what aggregates we want to collect.”
– Pitch: It’s possible to retain some flexibility
(e.g., can later break out statistics by geographic area)
Real-world considerations: Non-technical
“If we’re already collecting _________ without privacy protections, why bother adding privacy protections?”
– Pitch: Collect new statistics that you couldn’t collect before
“We don’t yet know what aggregates we want to collect.”
– Pitch: It’s possible to retain some flexibility
(e.g., can later break out statistics by geographic area) “Please sign this stack of non-disclosure agreements…
Real-world considerations: Non-technical
“If we’re already collecting _________ without privacy protections, why bother adding privacy protections?”
– Pitch: Collect new statistics that you couldn’t collect before
“We don’t yet know what aggregates we want to collect.”
– Pitch: It’s possible to retain some flexibility
(e.g., can later break out statistics by geographic area) “Please sign this stack of non-disclosure agreements… and before we show you the non-disclosure agreements…
Real-world considerations: Non-technical
“If we’re already collecting _________ without privacy protections, why bother adding privacy protections?”
– Pitch: Collect new statistics that you couldn’t collect before
“We don’t yet know what aggregates we want to collect.”
– Pitch: It’s possible to retain some flexibility
(e.g., can later break out statistics by geographic area) “Please sign this stack of non-disclosure agreements… and before we show you the non-disclosure agreements… you have to sign a preliminary non-disclosure agreement.”
Real-world considerations: Non-technical
“If we’re already collecting _________ without privacy protections, why bother adding privacy protections?”
– Pitch: Collect new statistics that you couldn’t collect before
“We don’t yet know what aggregates we want to collect.”
– Pitch: It’s possible to retain some flexibility
(e.g., can later break out statistics by geographic area) “Please sign this stack of non-disclosure agreements… and before we show you the non-disclosure agreements… you have to sign a preliminary non-disclosure agreement.”
– ???
StressTracker
Blood pressure
Today
Twitter usage
StressTracker
Blood pressure
Today
Twitter usage
StressTracker
App store
Blood pressure
With Prio…
Twitter usage
StressTracker
App store
Blood pressure
With Prio…
Twitter usage
StressTracker
App store
Blood pressure
With Prio…
Twitter usage
Blood pressure
With Prio…
B(T) = c
1
· T + c
StressTracker
App store
Twitter usage
Conclusions
security at risk.
– exact correctness, – privacy, – robustness, and – efficiency.
closer to practical.
Thank you!
Henry Corrigan-Gibbs henrycg@cs.stanford.edu https://crypto.stanford.edu/prio/