1
1
\mode *
2
2
3
+ \section {What's the problem? }
4
+
5
+ \begin {frame }
6
+ \centering
7
+ \includegraphics [height=\textheight ]{trump.jpg}
8
+ \end {frame }
9
+
10
+
3
11
\section [Participating ]{Participating in a protest }
4
12
5
13
\subsection {Joining a protest }
@@ -9,13 +17,6 @@ \subsection{Joining a protest}
9
17
\includegraphics [height=0.5\textheight ]{ProtestVerif-join.png}
10
18
\end {frame }
11
19
12
- \begin {frame }
13
- \begin {align* }
14
- cid &\gets H(\text {\enquote {WE MUST STAND UP \dots }}) \\
15
- pid &\gets PRF_{k_P}(cid)
16
- \end {align* }
17
- \end {frame }
18
-
19
20
\subsection {During in a protest }
20
21
21
22
\begin {frame }
@@ -28,60 +29,13 @@ \subsection{During in a protest}
28
29
\includegraphics {proofshare.tikz}
29
30
\end {frame }
30
31
31
- \begin {frame }
32
- \begin {minipage }{\linewidth }
33
- \begin {align* }
34
- P\to W\colon & pid \\
35
- W\leftrightarrow P\colon & \text {perform distance bounding} \\
36
- W\colon & wid\gets PRF_{k_W}(pid), \\
37
- & wsig\gets PRF_{k_W}(wid, t_s, l) \\
38
- W\to P\colon & (wid, t_s, l, wsig) \\
39
- \end {align* }
40
- \end {minipage }
41
- \end {frame }
42
-
43
- \begin {frame }
44
- % XXX Describe distance bounding
45
- \centering
46
- \procedure {Distance-bounding Schnorr}{%
47
- \textbf {Prover }\colon g, q = |\langle g\rangle |, x\in \ZZ _q
48
- \> \>
49
- \textbf {Verifier }\colon g, q, X = g^x \\
50
- \beta _i \sample \bin , y \sample \ZZ _q
51
- \> \> \alpha _i \sample \bin \\
52
- g^y, commit(\beta _1, \dotsc , \beta _n) \> \sendmessageright *{} \> \\
53
- \> \text {Rapid phase} \> \\
54
- \> \sendmessageleft *{\alpha _i} \> \\
55
- \> \sendmessageright *{\beta _i} \> \\
56
- \> \text {Verification phase} \> \\
57
- c\gets \alpha _1|\beta _2|\dotsb |\alpha _n|\beta _n \\
58
- r\gets y + cx \> \sendmessageright *{} \> g^r =^? X^cY\\
59
- }
60
- \end {frame }
61
-
62
32
\subsection {After the protest }
63
33
64
34
\begin {frame }
65
35
\centering
66
36
\includegraphics [height=0.5\textheight ]{ProtestVerif-endprotest.png}
67
37
\end {frame }
68
38
69
- \begin {frame }
70
- \begin {align* }
71
- \{ W, P\} \rightsquigarrow S\colon & H(pid, wid, t_s, l, wsig)
72
- \end {align* }
73
- \end {frame }
74
-
75
- \begin {frame }
76
- \begin {align* }
77
- W\rightsquigarrow S\colon & (pid, wid, t_s, l, wsig),\\
78
- & NIZK(wid = PRF_{k_W}(pid), wsig = PRF_{k_W}(wid, t_s, l),\\
79
- & \exists sign(k_W)) \\
80
- P\rightsquigarrow S\colon & (pid, wid, t_s, l, wsig),\\
81
- & NIZK(pid = PRF_{k_P}(cid), \exists sign(k_P))
82
- \end {align* }
83
- \end {frame }
84
-
85
39
86
40
\section [Verifying ]{Verifying a protest }
87
41
@@ -94,7 +48,7 @@ \subsection{Verifying proof shares}
94
48
95
49
\begin {frame }
96
50
\begin {columns }
97
- \begin {column }{0.5 \linewidth }
51
+ \begin {column }{0.6 \linewidth }
98
52
\tiny
99
53
\includegraphics [width=\linewidth ]{proofshare.tikz}
100
54
\end {column }
@@ -113,11 +67,20 @@ \subsection{Verifying proof shares}
113
67
\subsection {Counting proofs }
114
68
115
69
\begin {frame }
116
- \begin {itemize }
117
- \item Each \( pid\) with more than \( t\) valid proof shares is counted.
118
- \item \( t\) is a threshold set to be higher than expected size of collusion
119
- clusters.
120
- \end {itemize }
70
+ \begin {example }[No trusted witnesses]
71
+ \begin {itemize }
72
+ \item Each \( pid\) with more than \( t\) valid proof shares is counted.
73
+ \item \( t\) is a threshold set to be higher than expected size of collusion
74
+ clusters.
75
+ \end {itemize }
76
+ \end {example }
77
+
78
+ \begin {example }[Trusted witnesses]
79
+ \begin {itemize }
80
+ \item Alternatively, each \( \pid \) with a proof share issued by a trusted
81
+ witness is counted.
82
+ \end {itemize }
83
+ \end {example }
121
84
\end {frame }
122
85
123
86
\begin {frame }
@@ -127,13 +90,88 @@ \subsection{Counting proofs}
127
90
\end {frame }
128
91
129
92
93
+ \begin {figure }
94
+ \centering
95
+ % \footnotesize
96
+ \begin {minipage }{\linewidth }
97
+ \begin {align* }
98
+ O\to \text {all}\colon & \text {manifesto} \\
99
+ P\colon & t_s\gets \TSget \\
100
+ & \cid\gets \Hash [\text {manifesto}], \\
101
+ & \pid\gets \ACprf [_{\sk _P}][\cid ] \\
102
+ W\colon & t_s'\gets \TSget
103
+ \\ [-1em]
104
+ \noalign {\hfill Join}
105
+ \midrule
106
+ \noalign {\hfill Participation}
107
+ \\ [-3em]
108
+ P\to W\colon & \pid \\
109
+ P\leftrightarrow W\colon &
110
+ \PPK\mleft \{ (\sk _P) : \mright . \\
111
+ & \qquad \pid = \ACprf [_{\sk _P}][\cid ], \\
112
+ & \qquad \mleft . \sigma _P' = \ACblind [\ACsign [_{\ssk }][\sk _P]] \mright \}
113
+ \\
114
+ W\colon & \wid\gets \ACprf [_{\sk _W}][\pid ] \\
115
+ W\to P\colon & (\wid , t_s', l)
116
+ \\ [-1em]
117
+ \noalign {\hfill Participation}
118
+ \midrule
119
+ \noalign {\hfill Submission}
120
+ \\ [-2em]
121
+ P\colon & t_e\gets \TSstamp [\Hash [\pid , \wid , t_s, t_s', l]] \\
122
+ W\colon & t_e'\gets \TSstamp [\Hash [\pid , \wid , t_s, t_s', l]] \\
123
+ W\to S\colon & (\pid , \wid , t_s, t_s', t_e, l, \pi _{\wid }),\quad
124
+ \text {where} \\
125
+ & \pi _{\wid } = \SPK\mleft \{ (\sk _W) : \mright . \\
126
+ & \qquad \wid = \ACprf [_{\sk _W}][\pid ], \\
127
+ & \qquad \mleft . \sigma _W' = \ACblind [\ACsign [_{\ssk }][\sk _W]]\mright \}
128
+ \\
129
+ & \qquad\qquad (\pid , \wid , t_s, t_s', l) \\
130
+ P\to S\colon & (\cid , \pid , \wid , t_s, t_s', t_e, l, \pi _{\pid }),\quad
131
+ \text {where}\\
132
+ & \pi _{\pid } = \SPK\mleft \{ (\sk _P) : \mright . \\
133
+ & \qquad \pid = \ACprf [_{\sk _P}][\cid ], \\
134
+ & \qquad \mleft . \sigma _P' = \ACblind [\ACsign [_{\ssk }][\sk _P]] \mright \}
135
+ \\
136
+ & \qquad\qquad (\cid , \pid , \wid , t_s, t_s', l)
137
+ \end {align* }
138
+ \end {minipage }
139
+ \caption {%
140
+ An overview of the Join, Participation and Submission phases of \PRIVO .\@
141
+ The organizer \( O\) broadcasts the manifesto.
142
+ The protester \( P\) , witness \( W\) and their computations are as in \cref {fig:ProofFig }.
143
+ Finally, both \( P\) and \( W\) submits the proof shares to a permanent storage \( S\) .
144
+ }%
145
+ \label {fig:ProtocolOverview }
146
+ \end {figure }
147
+
130
148
\section {Conclusions }
131
149
132
150
\begin {frame }
151
+ \begin {block }{Contributions}
152
+ \begin {itemize }
153
+ \item Distance-bounding Schnorr protocol
154
+ \item \Ie distance-bounding \acs {ZKP} and anonymous credentials
155
+ \item Solves crowd counting in adversarial setting.
156
+ \end {itemize }
157
+ \end {block }
158
+ \end {frame }
159
+
160
+ \begin {frame }
161
+ \begin {greenblock }{Possibilities}
162
+ \begin {itemize }
163
+ \item We can implement this by extending BankID.
164
+ \item There are blockchains (ledgers) with reasonable transaction
165
+ throughput, \eg OmniLedger.
166
+ \end {itemize }
167
+ \end {greenblock }
168
+
133
169
\begin {alertblock }{Limits}
134
170
\begin {itemize }
135
171
\item Cannot trust results that are pro-government if government issues
136
172
credentials (Sybil).
173
+
174
+ \item Requires a chip in smartphones for distance bounding.
137
175
\end {itemize }
138
176
\end {alertblock }
139
177
\end {frame }
0 commit comments