Riposte: an Anonymous Messaging System that 'Hides the Metadata'
Charles River Crypto Day 20 February 2015
Henry Corrigan-Gibbs
Joint work with Dan Boneh and David Mazières To appear at IEEE Security and Privacy 2015
1
Riposte: an Anonymous Messaging System that 'Hides the Metadata' - - PowerPoint PPT Presentation
Riposte: an Anonymous Messaging System that 'Hides the Metadata' Henry Corrigan-Gibbs Joint work with Dan Boneh and David Mazires To appear at IEEE Security and Privacy 2015 Charles River Crypto Day 20 February 2015 1 With PKE, we can
Charles River Crypto Day 20 February 2015
Henry Corrigan-Gibbs
Joint work with Dan Boneh and David Mazières To appear at IEEE Security and Privacy 2015
1
0VUIC9zZW5zaXRpdmU
2
Time From To Size 10:12 Alice Bob 2543 B 10:27 Carol Alice 567 B 10:32 Alice Bob 450 B 10:35 Bob Alice 9382 B
3
Time From To Size 10:12 Alice taxfraud@stanford.edu 2543 B 10:27 Carol Alice 567 B 10:32 Alice Bob 450 B 10:35 Bob Alice 9382 B
[cf. Ed Felten’s testimony before the House Judiciary Committee, 2 Oct 2013]
4
! E-voting ! Anonymous surveys ! Private messaging, etc.
5
[Dingledine, Mathewson, Syverson 2004]
6
[Murdoch and Danezis 2005] [Bauer et al. 2007]
7
[Murdoch and Zieliński 2007]
8
We design an anonymous messaging system that: 1) satisfies clear security goals, 2) handles millions of users in an “anonymous Twitter” system.
9
10
11
12
13
14
15
To: taxfraud@stanford.edu Protest will be held tomo… See my cat photos at w…
[Gen query to write m into row l of DB] [Apply query to state of server i] [Combine server states to reveal plaintext DB]
16
17
18
n
i=1
19
20
Challenger Adversary Let n = number of clients total
For :
Choose on elements of H
i ∈ H
21
Challenger Adversary Let n = number of clients total
For :
Choose perm
i ∈ H
22
Challenger Adversary Let n = number of clients total
For :
Choose perm
i ∈ H
23
For :
date(ˆ q1, . . . , ˆ qn)
Choose perm
i ∈ H
24
For :
date(ˆ q1, . . . , ˆ qn)
Choose perm
i ∈ H
Queries in H updated according to permutation π
25
For :
date(ˆ q1, . . . , ˆ qn)
Choose perm
i ∈ H
Adv should not be able to distinguish between real π and random π*
Choose perm
Intuition: The scheme hides “who wrote what” (which query corresponds to which message)
26
– CPU(s) writing to RAM
– Client reading from DB shared across servers
– Client writing to DB shared across servers
27
Ideally: for all k, tolerate compromise
[Chaum ‘88]
28
29
30
Write msg mA into DB row 3
31
mA
32
mA r1 r2 r3 r4 r5
33
mA r1 r2 r3 r4 r5
mA -r3
34
r1 r2 r3 r4 r5
mA -r3
35
r1 r2 r3 r4 r5
mA -r3
36
r1 r2 r3 r4 r5
37
r1 r2 r3 r4 r5
mB
38
r1 r2 r3 r4 r5
mB s1 s2 s3 s4 s5
mB -s5
39
r1 r2 r3 r4 r5
s1 s2 s3 s4 s5
mB -s5
40
r1 r2 r3 r4 r5
s1 s2 s3 s4 s5
mB -s5
41
r1 + s1 r2 + s2 r3 + s3 r4 + s4 r5 + s5
42
r1 + s1 r2 + s2 r3 + s3 r4 + s4 r5 + s5
43
r1 + s1 r2 + s2 r3 + s3 r4 + s4 r5 + s5
44
r1 + s1 r2 + s2 r3 + s3 r4 + s4 r5 + s5
45
r1 + s1 r2 + s2 r3 + s3 r4 + s4 r5 + s5
mA mB
Correctness — By construction Write-Anonymity — Given output vector, servers can simulate their view of the protocol run
Practical Efficiency — Almost no “heavy” computation involved
46
47
48
49
50
In “straw man” design, client sends DB-sized vector to each server Idea: run PIR protocol in reverse to write into DB while sending fewer bits PIR-in-reverse used in Ostrovsky-Shoup ’97 in single-client context We extend their results to a many- client context (with malicious clients)
51
m ∈ F ; ` ∈ [L]
Goal:
52
53
Sum of the Eval()
everywhere, except at position l
54
55
56
57
r1 r2 r3 r4 r5
mA -r3
58
59
60
61
62
63
k1 k2 k3 k4 k5
v
1 1 1
√ L)
k1 k2* k3 k4 k5
v
1 1
k1 k2 k3 k4 k5
v
1 1 1 k1 k2* k3 k4 k5
v
1 1 G(k1) G(k2) G(k3) G(k4) G(k5) G(k1) G(k2*) G(k3) G(k4) G(k5)
64
G() is a PRG mapping keys k to L1/2 bits
65
k1 k2 k3 k4 k5
v
1 1 1 k1 k2* k3 k4 k5
v
1 1 G(k1) G(k2) + v G(k3) + v G(k4) G(k5) + v G(k1) G(k2*) G(k3) + v G(k4) G(k5) + v
k1 k2 k3 k4 k5
v
1 1 1 k1 k2* k3 k4 k5
v
1 1 G(k1) G(k2) + v G(k3) + v G(k4) G(k5) + v G(k1) G(k2*) G(k3) + v G(k4) G(k5) + v
Outputs are equal everywhere except at row 2
66
k1 k2 k3 k4 k5
v
1 1 1 k1 k2* k3 k4 k5
v
1 1 G(k1) G(k3) + v G(k4) G(k5) + v G(k1) G(k3) + v G(k4) G(k5) + v
Outputs sum to zero everywhere except at row 2
G(k2) + v G(k2*)
67
k1 k2 k3 k4 k5
v
1 1 1 k1 k2* k3 k4 k5
v
1 1 G(k1) G(k3) + v G(k4) G(k5) + v G(k1) G(k3) + v G(k4) G(k5) + v G(k2) + v G(k2*)
68
G(k1) G(k2) + v G(k3) + v G(k4) G(k5) + v G(k1) G(k2*) G(k3) + v G(k4) G(k5) + v
00000…00000 0000000m000 00000…00000 00000…00000 00000…00000
69
– Just requires PRG — fast!
– Key size down to polylog(L) [GI’14]
k1 k2 k3 k4 k5
v
1 1 1
70
G(s1) + G(s2) = G(s1 + s2)
[NPR’99] [BLMR’13] [BP’14] [BV’15]
71
72
73
74
mA
75
mA + mB
76
mA + mB
77
[Let ]
1 + m2 2
78
79
80
81
r1 r2 r3 r4 r5
b1 b2 b3 b4 b5 a1 a2 a3 a4 a5
– Expensive public-key crypto [Golle Juels ‘04]
– Add a third non-colluding “audit” server to get honest majority – Fast, info-theoretic MPC techniques
[GMW’87], [CCD’88], [FNW’96]
82
83
84
85
k1 k2 k3 k4 k5
v
1 1 1 k1 k2* k3 k4 k5
v
1 1
86
k1 k2 k3 k4 k5 1 1 1 k1 k2* k3 k4 k5 1 1
87
0 | k1 1 | k2 1 | k3 0 | k4 1 | k5 0 | k1 0 | k2* 1 | k3 0 | k4 1 | k5
88
a1 a2 a3 b1 b2 b3
89
a1
a2 a3 b1 b2 b3
90
a1 a2 a3 b2 b3 b1
91
h1, h2, h3
a1 a2 a3 b2 b3 b1
92
h1(a1) h2(a2) h3(a3) h2(b2) h3(b3) h1(b1)
h1, h2, h3
93
h1(a1) h2(a2) h3(a3) h2(b2) h3(b3) h1(b1)
94
h1(a1) h2(a2) h3(a3) h2(b2) h3(b3) h1(b1)
95
r3 r1 r2 r1 r2 r3
Equal almost everywhere?
96
97
98
– 2 DB servers + 1 audit server
99
100
(anonymous Twitter)
101
102
– Using multiple rounds per write?
– Another way to reduce cost at server
– Possible without seed-hom PRGs?
103
– Stillbarriers to practicality (+ open problems)
104
105
106