Prio: Private, Robust, and Efficient Computation of Aggregate - - PowerPoint PPT Presentation

prio private robust and efficient computation of
SMART_READER_LITE
LIVE PREVIEW

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:


slide-1
SLIDE 1

Prio: Private, Robust, and Efficient Computation of Aggregate Statistics

Henry Corrigan-Gibbs and Dan Boneh
 Stanford University

Appeared at NSDI 2017

slide-2
SLIDE 2

Twitter usage Blood pressure

Today: Non-private
 aggregation

StressTracker

slide-3
SLIDE 3

Twitter usage Blood pressure

Today: Non-private
 aggregation

Each user has a
 private data point StressTracker

slide-4
SLIDE 4

StressTracker

Blood pressure

Today: Non-private
 aggregation

Twitter usage

slide-5
SLIDE 5

StressTracker

Blood pressure

Today: Non-private
 aggregation

Twitter usage

slide-6
SLIDE 6

StressTracker

Blood pressure

B(T) = c

1

· T + c

Today: Non-private
 aggregation

Twitter usage

slide-7
SLIDE 7

StressTracker

Blood pressure

B(T) = c

1

· T + c

Today: Non-private
 aggregation

The app provider learned more than it needed

Twitter usage

slide-8
SLIDE 8

StressTracker

Blood pressure

Today: Non-private
 aggregation

Twitter usage

slide-9
SLIDE 9

StressTracker

App store

Blood pressure

This work:
 Private aggregation

Twitter usage

slide-10
SLIDE 10

StressTracker

App store

Blood pressure

This work:
 Private aggregation

Clients send an
 encrypted share of their data to each aggregator

Twitter usage

slide-11
SLIDE 11

StressTracker

App store

Blood pressure

This work:
 Private aggregation

Clients send an
 encrypted share of their data to each aggregator

Twitter usage

slide-12
SLIDE 12

StressTracker

App store

Blood pressure

This work:
 Private aggregation

Clients send an
 encrypted share of their data to each aggregator

Twitter usage

slide-13
SLIDE 13

Blood pressure

The aggregators
 learn no private client data

This work:
 Private aggregation

B(T) = c

1

· T + c

StressTracker

App store

Twitter usage

slide-14
SLIDE 14

Private aggregation

f(x1, …, xN)

x1 x3 xN x2

  • 1. Exact correctness

If all servers are honest, servers learn f(·)

  • 2. Privacy

If one server is honest, servers learn only* f(·)

  • 3. Robustness

Malicious clients have bounded influence

  • 4. Efficiency

No public-key crypto (apart from TLS)
 1000s of submissions per second

slide-15
SLIDE 15

Blood pressure

200 100,000,000

StressTracker

App store

Twitter usage

slide-16
SLIDE 16

Blood pressure

200 100,000,000

StressTracker

App store

Twitter usage

slide-17
SLIDE 17

Private aggregation

f(x1, …, xN)

x1 xN x2

  • 1. Exact correctness

If all servers are honest, servers learn f(·)

  • 2. Privacy

If one server is honest, servers learn only* f(·)

  • 3. Robustness

Malicious clients have bounded influence

  • 4. Efficiency

No public-key crypto (apart from TLS)


Prio is the first system to achieve all four.

x3

slide-18
SLIDE 18

Private aggregation

f(x1, …, xN)

x1 xN x2

  • 1. Exact correctness

If all servers are honest, servers learn f(·)

  • 2. Privacy

If one server is honest, servers learn only* f(·)

  • 3. Robustness

Malicious clients have bounded influence

  • 4. Efficiency

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

slide-19
SLIDE 19

Private aggregation

f(x1, …, xN)

x1 xN x2

  • 1. Exact correctness

If all servers are honest, servers learn f(·)

  • 2. Privacy

If one server is honest, servers learn only* f(·)

  • 3. Robustness

Malicious clients have bounded influence

  • 4. Efficiency

No public-key crypto (apart from TLS)


Prio is the first system to achieve all four.

x3

slide-20
SLIDE 20

Contributions

  • 1. Secret-shared non-interactive proofs (SNIPs)


– Client proves that its encoded submission is well-formed
 – We do not need the power of traditional “heavy” crypto tools
 


  • 2. Aggregatable encodings


Can compute sums privately ⟹ Can compute f(·) privately


…for many f’s of interest


slide-21
SLIDE 21

Contributions

  • 1. Secret-shared non-interactive proofs (SNIPs)


– Client proves that its encoded submission is well-formed
 – We do not need the power of traditional “heavy” crypto tools
 


  • 2. Aggregatable encodings


Can compute sums privately ⟹ Can compute f(·) privately


…for many f’s of interest


See the paper

slide-22
SLIDE 22

Related systems

  • Additively homomorphic encryption


P4P (2010), Private stream aggregation (2011), Grid aggregation (2011),
 PDDP (2012), SplitX (2013), PrivEx (2014), PrivCount (2016),
 Succinct sketches (2016), …

  • Multi-party computation [GMW87], [BGW88]


FairPlay (2004), Brickell-Shmatikov (2006), FairplayMP (2008), SEPIA (2010),
 Private matrix factorization (2013), JustGarble (2013), …

  • Anonymous credentials/tokens


VPriv (2009), PrivStats (2011), ANONIZE (2014), …

  • Randomized response [W65], [DMNS06], [D06]


RAPPOR (2014, 2016), …

Prio is the first system to achieve
 exact correctness, privacy, robustness, efficiency.

slide-23
SLIDE 23

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-24
SLIDE 24

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-25
SLIDE 25

Warm-up: Computing private sums

slide-26
SLIDE 26

Warm-up: Computing private sums

  • Every device i holds a value xi
  • We want to compute


f(x1, …, xN) = x1 + … + xN 
 without learning any users’ private value xi.

slide-27
SLIDE 27

Warm-up: Computing private sums

  • Every device i holds a value xi
  • We want to compute


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

  • therwise

The sum x1 + … + xN yields the number of app users


  • n the Bay Bridge.
slide-28
SLIDE 28

Private sums:
 A “straw-man” scheme

Server A Server B Server C

[Chaum88], [BGW88], …
 [KDK11] [DFKZ13] [PrivEx14] …

slide-29
SLIDE 29

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] …

slide-30
SLIDE 30

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

slide-31
SLIDE 31

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

slide-32
SLIDE 32

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

slide-33
SLIDE 33

Private sums:
 A “straw-man” scheme

Server A Server B Server C

[Chaum88], [BGW88], …
 [KDK11] [DFKZ13] [PrivEx14] …

slide-34
SLIDE 34

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.

slide-35
SLIDE 35

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.

slide-36
SLIDE 36

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

  • 12
  • 2

Need all three shares to recover the shared value.

slide-37
SLIDE 37

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15

  • 12
  • 2

1

slide-38
SLIDE 38

Server A Server B Server C

15

  • 12
  • 2

Private sums:
 A “straw-man” scheme

1

slide-39
SLIDE 39

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15

  • 12
  • 2
slide-40
SLIDE 40

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15

  • 12
  • 2

= (-10) + 7 + 3

slide-41
SLIDE 41

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15

  • 12
  • 2

= (-10) + 7 + 3

slide-42
SLIDE 42

Server A Server B Server C

  • 10

Private sums:
 A “straw-man” scheme

15

  • 12
  • 2

7 3 = (-10) + 7 + 3

slide-43
SLIDE 43

Server A Server B Server C

  • 10

Private sums:
 A “straw-man” scheme

15

  • 12
  • 2

7 3

slide-44
SLIDE 44

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15

  • 12
  • 2

7 3

  • 10
slide-45
SLIDE 45

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15-10

  • 12+7
  • 2+3
slide-46
SLIDE 46

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15-10+…

  • 12+7+…
  • 2+3+…
slide-47
SLIDE 47

Server A Server B Server C

SB SC SA

Private sums:
 A “straw-man” scheme

slide-48
SLIDE 48

Server A Server B Server C

SB SC SA

Private sums:
 A “straw-man” scheme

SA + SB + SC = 15 + -10 + …

slide-49
SLIDE 49

Server A Server B Server C

SB SC SA

Private sums:
 A “straw-man” scheme

SA + SB + SC = 15 + -10 + …

slide-50
SLIDE 50

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 + …

slide-51
SLIDE 51

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 + …

slide-52
SLIDE 52

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 + …

slide-53
SLIDE 53

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

slide-54
SLIDE 54

Computing private sums

slide-55
SLIDE 55

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.

slide-56
SLIDE 56

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: ???

slide-57
SLIDE 57

Server A Server B Server C

F

Private sums:
 A “straw-man” scheme

x

15-10

  • 12+7
  • 2+3
slide-58
SLIDE 58

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

  • 12+7
  • 2+3
slide-59
SLIDE 59

Server A Server B Server C

F

Private sums:
 A “straw-man” scheme

x

15-10

  • 12+7
  • 2+3
slide-60
SLIDE 60

Server A Server B Server C

Private sums:
 A “straw-man” scheme

15-10

  • 12+7
  • 2+3
slide-61
SLIDE 61

Server A Server B Server C

Private sums:
 A “straw-man” scheme

An evil client needn’t follow the rules!

15-10

  • 12+7
  • 2+3
slide-62
SLIDE 62

+ + = 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

  • 12+7
  • 2+3
slide-63
SLIDE 63

Server A Server B Server C

Private sums:
 A “straw-man” scheme

10 4 7

15-10

  • 12+7
  • 2+3
slide-64
SLIDE 64

Server A Server B Server C

F

Private sums:
 A “straw-man” scheme

garbage garbage garbage

slide-65
SLIDE 65

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

slide-66
SLIDE 66

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-67
SLIDE 67

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-68
SLIDE 68

Server A Server B Server C

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-69
SLIDE 69

Server A Server B Server C

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-70
SLIDE 70

+ ( ) + ( ) = 1

Server A Server B Server C

15

  • 12
  • 2

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-71
SLIDE 71

Server A Server B Server C

15

  • 12
  • 2

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-72
SLIDE 72

Server A Server B Server C

15

  • 12
  • 2

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-73
SLIDE 73

Server A Server B Server C

15

  • 12
  • 2

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

slide-74
SLIDE 74

Server A Server B Server C

  • hold shares of the client’s private value x
  • hold an arbitrary public predicate Valid(·) 


– expressed as an arithmetic circuit

  • want to test if “Valid(x)” holds, without leaking x

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs)

More generally, servers

x = 1 xa xb xc

slide-75
SLIDE 75

Server A Server B Server C

  • hold shares of the client’s private value x
  • hold an arbitrary public predicate Valid(·) 


– expressed as an arithmetic circuit

  • want to test if “Valid(x)” holds, without leaking x

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}”

slide-76
SLIDE 76

Server A Server B Server C

  • hold shares of the client’s private value x
  • hold an arbitrary public predicate Valid(·) 


– expressed as an arithmetic circuit

  • want to test if “Valid(x)” holds, without leaking x

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs)

More generally, servers

x = 1 xa xb xc

slide-77
SLIDE 77

Server A Server B Server C

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1 xa xb xc

slide-78
SLIDE 78

Server A Server B Server C

πa Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1 xa xb xc

slide-79
SLIDE 79

Server A Server B Server C

πb πa Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1 xa xb xc

slide-80
SLIDE 80

Server A Server B Server C

πb πa πc Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1 xa xb xc

slide-81
SLIDE 81

xa xb xc

Server A Server B Server C

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-82
SLIDE 82

xa xb xc

Server A Server B Server C

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-83
SLIDE 83

xa xb xc

Server A Server B Server C

πa, πb, πc, Servers gossip Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-84
SLIDE 84

xa xb xc

Server A Server B Server C

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-85
SLIDE 85

xa xb xc

Server A Server B Server C

Ok.

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-86
SLIDE 86

xa xb xc

Server A Server B Server C

Ok. Ok.

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-87
SLIDE 87

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

slide-88
SLIDE 88

xa xb xc

Server A Server B Server C

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-89
SLIDE 89

Server A Server B Server C

xa xb xc

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-90
SLIDE 90

xa xb xc

Server A Server B Server C

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-91
SLIDE 91

xa xb xc

Server A Server B Server C

Fail

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-92
SLIDE 92

xa xb xc

Server A Server B Server C

Fail Fail

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-93
SLIDE 93

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

slide-94
SLIDE 94

xa xb xc

Server A Server B Server C

πa, πb, πc, Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-95
SLIDE 95

xa xb xc

Server A Server B Server C

X X X

  • Prio servers detect and reject malformed

client submissions

  • In this example, each client can influence

the aggregate statistic by +/- 1, at most

Contribution 1
 Secret-shared
 non-interactive
 proofs (SNIPs) x = 1

slide-96
SLIDE 96

We need a proof system

A “valid” x

xa xb xc

Prover Verifiers

πa, πb, πc

slide-97
SLIDE 97

We need a proof system

A “valid” x

xa xb xc

Prover Verifiers

πa, πb, πc

Valid(x) holds?

slide-98
SLIDE 98

We need a proof system

A “valid” x

xa xb xc

Prover Verifiers

πa, πb, πc

slide-99
SLIDE 99

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.

slide-100
SLIDE 100

Traditional techniques

  • Non-interactive proofs in ROM


[FS86], [BFM88], [BDMP91], [CP92], [CS97], [M00], …

  • zkSNARKs and KOE-based proofs


[G10], [L12], [GGPR13], [BCGTV13], [PGHR13], …

  • Multi-party computation


[Y82], [GMW87], [BGW88], [CCD88], [CLOS02], [DPSZ12], [DKLPSS13], …


 
 In our setting, SNIPs are a more efficient solution.

slide-101
SLIDE 101

Traditional techniques

  • Non-interactive proofs in ROM


[FS86], [BFM88], [BDMP91], [CP92], [CS97], [M00], …

  • zkSNARKs and KOE-based proofs


[G10], [L12], [GGPR13], [BCGTV13], [PGHR13], …

  • Multi-party computation


[Y82], [GMW87], [BGW88], [CCD88], [CLOS02], [DPSZ12], [DKLPSS13], …


 
 In our setting, SNIPs are a more efficient solution.

slide-102
SLIDE 102

xa xb xc

Server A Server B Server C

How SNIPs work

slide-103
SLIDE 103

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]

slide-104
SLIDE 104

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]

slide-105
SLIDE 105

xa xb xc

Server A Server B Server C

How SNIPs work

slide-106
SLIDE 106

Server A Server B Server C

How SNIPs work x xa xb xc

slide-107
SLIDE 107

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

slide-108
SLIDE 108

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

slide-109
SLIDE 109

Server A Server B Server C

How SNIPs work x

xa xb xc

xa xb xc

slide-110
SLIDE 110

Server A Server B Server C

How SNIPs work x xa xb xc

slide-111
SLIDE 111

Server A Server B Server C

How SNIPs work x

Servers check that the transcripts are valid and consistent.

xa xb xc

slide-112
SLIDE 112

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

slide-113
SLIDE 113

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

slide-114
SLIDE 114

Server A Server B Server C

How SNIPs work πa πb πc xa xb xc

slide-115
SLIDE 115

Server A Server B Server C

How SNIPs work πa πb πc Da Db Dc xa xb xc

slide-116
SLIDE 116

Server A Server B Server C

How SNIPs work πa πb πc Da Db Dc xa xb xc

“Randomized digest”


  • f the transcript
slide-117
SLIDE 117

Server A Server B Server C

How SNIPs work πa πb πc Da Db Dc xa xb xc

slide-118
SLIDE 118

Server A Server B Server C

How SNIPs work Da Db Dc

[BFO12]

slide-119
SLIDE 119

Server A Server B Server C

How SNIPs work Da Db Dc

[BFO12]

slide-120
SLIDE 120
  • If x is valid,

Da + Db + Dc = 0

  • If x is invalid,

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]

slide-121
SLIDE 121
  • If x is valid,

Da + Db + Dc = 0

  • If x is invalid,

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]

slide-122
SLIDE 122
slide-123
SLIDE 123

M = # of multiplication gates in Valid(·) circuit

Public-key ops. Communication Slow- down Client Server C-to-S S-to-S

slide-124
SLIDE 124

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], …

slide-125
SLIDE 125

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], …

slide-126
SLIDE 126

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], …

slide-127
SLIDE 127

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], …

slide-128
SLIDE 128

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], …

slide-129
SLIDE 129

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], …

slide-130
SLIDE 130

From sums to more complex aggregates

If you can compute private sums, you can compute many

  • ther interesting aggregates
  • Average
  • Variance
  • Standard deviation
  • Most popular (approx)
  • “Heavy hitters” (approx)
  • Min and max (approx)
  • Quality of arbitrary regression model (R2)
  • Least-squares regression
  • Stochastic gradient descent [Bonawitz et al. 2016]

[PrivStats11], [KDK11], [DFKZ13], [PrivEx14], [MDD16], …

slide-131
SLIDE 131

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-132
SLIDE 132

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-133
SLIDE 133

Evaluation

  • Implemented Prio in Go


(see optimizations described in paper)

  • Five-server cluster in EC2
  • System collects the sum

  • f “N” 0/1 values


Four variants

  • 1. No privacy
  • 2. No robustness (“straw man”)
  • 3. Prio

(privacy + robustness)

  • 4. NIZK

(privacy + robustness)

slide-134
SLIDE 134

Evaluation

  • Implemented Prio in Go


(see optimizations described in paper)

  • Five-server cluster in EC2
  • System collects the sum

  • f “N” 0/1 values


Four variants

  • 1. No privacy
  • 2. No robustness (“straw man”)
  • 3. Prio

(privacy + robustness)

  • 4. NIZK

(privacy + robustness)

E.g., for privately measuring telemetry data.

slide-135
SLIDE 135

Evaluation

  • Implemented Prio in Go


(see optimizations described in paper)

  • Five-server cluster in EC2
  • System collects the sum

  • f “N” 0/1 values


Four variants

  • 1. No privacy
  • 2. No robustness (“straw man”)
  • 3. Prio

(privacy + robustness)

  • 4. NIZK

(privacy + robustness)

slide-136
SLIDE 136

Evaluation

  • Implemented Prio in Go


(see optimizations described in paper)

  • Five-server cluster in EC2
  • System collects the sum

  • f “N” 0/1 values


Four variants

  • 1. No privacy
  • 2. No robustness (“straw man”)
  • 3. Prio

(privacy + robustness)

  • 4. NIZK

(privacy + robustness)

  • ne server
slide-137
SLIDE 137

Evaluation

  • Implemented Prio in Go


(see optimizations described in paper)

  • Five-server cluster in EC2
  • System collects the sum

  • f “N” 0/1 values


Four variants

  • 1. No privacy
  • 2. No robustness (“straw man”)
  • 3. Prio

(privacy + robustness)

  • 4. NIZK

(privacy + robustness)

  • ne server

five servers

slide-138
SLIDE 138

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

slide-139
SLIDE 139

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

slide-140
SLIDE 140

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

slide-141
SLIDE 141

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

slide-142
SLIDE 142

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

slide-143
SLIDE 143

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

slide-144
SLIDE 144

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

slide-145
SLIDE 145

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-146
SLIDE 146

Outline

  • Background: The private aggregation problem
  • A straw-man solution for private sums
  • Providing robustness with SNIPs
  • Evaluation
  • Discussion: Real-world considerations
slide-147
SLIDE 147

Real-world considerations: Technical

Every company we spoke with said:

  • Server resources are cheap, client resources are not
  • Client bandwidth usage is the important quantity to minimize
  • Need some defense against faulty/disruptive clients
  • Privately collecting popular URLs is the interesting application


– Existing solutions are good, but not great

Areas of vehement disagreement between companies:

  • Non-colluding servers—realistic?
  • Does SGX obviate the need for these cryptographic protocols?

slide-148
SLIDE 148

Real-world considerations: Technical

Every company we spoke with said:

  • Server resources are cheap, client resources are not
  • Client bandwidth usage is the important quantity to minimize
  • Need some defense against faulty/disruptive clients
  • Privately collecting popular URLs is the interesting application


– Existing solutions are good, but not great

Areas of vehement disagreement between companies:

  • Non-colluding servers—realistic?
  • Does SGX obviate the need for these cryptographic protocols?

slide-149
SLIDE 149

Real-world considerations: Non-technical

slide-150
SLIDE 150

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)


slide-151
SLIDE 151

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)


slide-152
SLIDE 152

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…

slide-153
SLIDE 153

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…

slide-154
SLIDE 154

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

slide-155
SLIDE 155

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

– ???

slide-156
SLIDE 156

StressTracker

Blood pressure

Today

Twitter usage

slide-157
SLIDE 157

StressTracker

Blood pressure

Today

Twitter usage

slide-158
SLIDE 158

StressTracker

App store

Blood pressure

With Prio…

Twitter usage

slide-159
SLIDE 159

StressTracker

App store

Blood pressure

With Prio…

Twitter usage

slide-160
SLIDE 160

StressTracker

App store

Blood pressure

With Prio…

Twitter usage

slide-161
SLIDE 161

Blood pressure

With Prio…

B(T) = c

1

· T + c

StressTracker

App store

Twitter usage

slide-162
SLIDE 162

Conclusions

  • Wholesale collection of sensitive user data puts our

security at risk.

  • Prio is the first system for aggregation that provides:

– exact correctness, – privacy, – robustness, and – efficiency.

  • To do so, Prio uses SNIPs and aggregatable encodings.
  • These techniques together bring private aggregation

closer to practical.

Thank you!

Henry Corrigan-Gibbs henrycg@cs.stanford.edu 
 https://crypto.stanford.edu/prio/

slide-163
SLIDE 163