184 about this secret\bigskip |
187 about this secret\bigskip |
185 \item to enforce honest behaviour while maintaining privacy: |
188 \item to enforce honest behaviour while maintaining privacy: |
186 the idea is to force users to prove, using a |
189 the idea is to force users to prove, using a |
187 zero-knowledge proof, that their behaviour is correct |
190 zero-knowledge proof, that their behaviour is correct |
188 according to the protocol |
191 according to the protocol |
189 \end{itemize} |
192 \end{itemize}\bigskip |
|
193 |
|
194 \small |
|
195 digital currencies, smart cards, id cards |
190 \end{frame} |
196 \end{frame} |
191 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
197 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
192 |
198 |
193 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
199 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
194 \mode<presentation>{ |
200 \mode<presentation>{ |
196 \frametitle{Central Properties} |
202 \frametitle{Central Properties} |
197 |
203 |
198 Zero-knowledge proof protocols should satisfy:\bigskip |
204 Zero-knowledge proof protocols should satisfy:\bigskip |
199 |
205 |
200 \begin{itemize} |
206 \begin{itemize} |
201 \item \alert{\bf Completeness} If Alice knows the secret, Bob accepts Alice ``proof'' for sure.\bigskip |
207 \item \alert{\bf Completeness} If Alice knows the secret, Bob |
202 \item \alert{\bf Soundness} If Alice does not know the secret, Bob accepts her ``proof'' with a very |
208 accepts Alice ``proof'' for sure.\bigskip |
203 small probability. |
209 \item \alert{\bf Soundness} If Alice does not know the secret, |
204 \end{itemize} |
210 Bob accepts her ``proof'' with a very small probability. |
|
211 |
|
212 \item \alert{\bf Zero-Knowledge} Even if Bob accepts |
|
213 the proof by Alice, he cannot convince anybody else. |
|
214 |
|
215 \end{itemize} |
205 \end{frame}} |
216 \end{frame}} |
206 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
217 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
207 |
218 |
208 |
219 |
209 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
220 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
210 \mode<presentation>{ |
|
211 \begin{frame}[c] |
221 \begin{frame}[c] |
212 \frametitle{Graph Isomorphism} |
222 \frametitle{Graph Isomorphism} |
213 |
223 |
214 \begin{center} |
224 \begin{center} |
215 \begin{tabular}{l@{\hspace{10mm}}r} |
225 \begin{tabular}{l@{\hspace{10mm}}r} |
216 \includegraphics[scale=0.8]{../pics/graphs.png}\\ |
226 \includegraphics[scale=0.8]{../pics/graphs.png}\\ |
217 \end{tabular} |
227 \end{tabular} |
218 \end{center} |
228 \end{center} |
219 |
229 |
220 Finding an isomorphism between two graphs is an NP complete problem. |
230 Finding an isomorphism between two graphs is an NP-complete |
221 \end{frame}} |
231 problem. |
222 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
232 |
223 |
233 \end{frame} |
224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
234 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
225 \mode<presentation>{ |
235 |
226 \begin{frame}[c] |
236 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
227 \frametitle{Graph Isomorphism Protocol} |
237 \begin{frame}[c] |
|
238 \frametitle{\Large Graph Isomorphism Protocol} |
228 |
239 |
229 Alice starts with knowing an isomorphism \bl{$\sigma$} between graphs \bl{$G_1$} and \bl{$G_2$}\medskip |
240 Alice starts with knowing an isomorphism \bl{$\sigma$} between graphs \bl{$G_1$} and \bl{$G_2$}\medskip |
230 |
241 |
231 \begin{enumerate} |
242 \begin{enumerate} |
232 \item Alice generates an isomorphic graph \bl{$H$} which she sends to Bob |
243 \item Alice generates an isomorphic graph \bl{$H$} which she sends to Bob |
235 \item Alice and Bob repeat this procedure \bl{$n$} times |
246 \item Alice and Bob repeat this procedure \bl{$n$} times |
236 \end{enumerate}\pause |
247 \end{enumerate}\pause |
237 |
248 |
238 these are called commitment algorithms |
249 these are called commitment algorithms |
239 |
250 |
240 \end{frame}} |
251 \end{frame} |
241 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
252 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
242 |
253 |
243 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
254 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
244 \mode<presentation>{ |
255 \begin{frame}[c] |
245 \begin{frame}[c] |
256 \frametitle{\Large Graph Isomorphism Protocol (2)} |
246 \frametitle{Graph Isomorphism Protocol (2)} |
257 |
247 |
258 If Alice knows the isomorphism, she can always calculate |
248 If Alice knows the isomorphism, she can always calculate \bl{$\sigma$}.\bigskip |
259 \bl{$\sigma$}.\bigskip |
249 |
260 |
250 If she doesn't, she can only correctly respond if Bob's |
261 If she doesn't, she can only correctly respond if Bob's choice |
251 choice of index is the same as the one she used to form \bl{$H$}. The probability |
262 of index is the same as the one she used to form \bl{$H$}. The |
252 of this happening is \bl{$\frac{1}{2}$}, so after \bl{$n$} rounds the probability of her |
263 probability of this happening is \bl{$\frac{1}{2}$}, so after |
253 always responding correctly is only \bl{$\frac{1}{2}^n$}. |
264 \bl{$n$} rounds the probability of her always responding |
254 |
265 correctly is only \bl{$\frac{1}{2}^n$}. |
255 \end{frame}} |
266 |
|
267 \end{frame} |
256 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
268 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
257 |
269 |
258 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
270 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
259 \mode<presentation>{ |
271 \begin{frame}[t] |
260 \begin{frame}[c] |
272 \frametitle{Plot of $\frac{1}{2}^n$} |
261 \frametitle{Graph Isomorphism Protocol (3)} |
273 |
|
274 \begin{center} |
|
275 \begin{tikzpicture} |
|
276 \begin{axis}[ |
|
277 enlargelimits=true, |
|
278 xtick={0,1,...,10}, |
|
279 xmax=11, |
|
280 ymax=1.1, |
|
281 ytick={0,0.1,...,1.1}, |
|
282 scaled ticks=false, |
|
283 axis lines=left, |
|
284 width=11cm, |
|
285 height=7cm] |
|
286 \addplot[blue,mark=*, mark options={fill=white}] |
|
287 coordinates { |
|
288 (0, 1) (1, 0.5) (2, 0.25) (3, 0.125) |
|
289 (4, 0.0625) (5, 0.03125) (6, 0.015625) |
|
290 (7, 0.0078125) (8, 0.00390625) |
|
291 (9, 0.001953125) (10, 0.0009765625) |
|
292 }; |
|
293 \end{axis} |
|
294 \end{tikzpicture} |
|
295 \end{center} |
|
296 |
|
297 \end{frame} |
|
298 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
299 |
|
300 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
301 \begin{frame}[c] |
|
302 \frametitle{\Large Graph Isomorphism Protocol (3)} |
262 |
303 |
263 Why is the GI-protocol zero-knowledge?\bigskip\pause |
304 Why is the GI-protocol zero-knowledge?\bigskip\pause |
264 |
305 |
265 A: We can generate a fake transcript of a conversation, which |
306 A: We can generate a fake transcript of a conversation, which |
266 cannot be distinguished from a ``real'' conversation.\bigskip |
307 cannot be distinguished from a ``real'' conversation.\bigskip |
268 Anything Bob can compute using the information obtained from |
309 Anything Bob can compute using the information obtained from |
269 the transcript can be computed using only a forged transcript |
310 the transcript can be computed using only a forged transcript |
270 and therefore participation in such a communication does not |
311 and therefore participation in such a communication does not |
271 increase Bob's capability to perform any computation. |
312 increase Bob's capability to perform any computation. |
272 |
313 |
273 \end{frame}} |
314 \end{frame} |
274 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
315 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
275 |
316 |
276 |
317 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
277 |
|
278 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
279 \mode<presentation>{ |
|
280 \begin{frame}[c] |
318 \begin{frame}[c] |
281 \frametitle{Non-Interactive ZKPs} |
319 \frametitle{Non-Interactive ZKPs} |
282 |
320 |
283 |
321 This is amazing: This can all be done ``offline'': |
284 \bigskip |
322 \bigskip |
285 This is amazing: Alison can publish some data that contains no data about her secret, |
323 |
286 but this data can be used to convince anyone of the secret's existence. |
324 Alice can publish some data that contains no data about her |
287 \end{frame}} |
325 secret, but this data can be used to convince anyone of the |
288 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
326 secret's existence (whether Alice knows it, must be |
289 |
327 established my other means). |
290 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
328 |
291 \mode<presentation>{ |
329 \end{frame} |
|
330 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
331 |
|
332 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
292 \begin{frame}[c] |
333 \begin{frame}[c] |
293 \frametitle{Non-Interactive ZKPs (2)} |
334 \frametitle{Non-Interactive ZKPs (2)} |
294 |
335 |
295 Alice starts with knowing an isomorphism \bl{$\sigma$} between graphs \bl{$G_1$} and \bl{$G_2$}\medskip |
336 Alice starts with knowing an isomorphism \bl{$\sigma$} between |
|
337 graphs \bl{$G_1$} and \bl{$G_2$}\medskip |
296 |
338 |
297 \begin{enumerate} |
339 \begin{enumerate} |
298 \item Alice generates \bl{$n$} isomorphic graphs \bl{$H_{1..n}$} which she makes public |
340 \item Alice generates \bl{$n$} isomorphic graphs |
299 \item she feeds the \bl{$H_{1..n}$} into a hashing function (she has no control over what |
341 \bl{$H_{1..n}$} which she makes public |
300 the output will be) |
342 \item she feeds the \bl{$H_{1..n}$} into a hashing function |
301 \item Alice takes the first \bl{$n$} bits of the output: whenever output is \bl{$0$}, she shows |
343 (she has no control over what the output will be) |
302 an isomorphism with \bl{$G_1$} ; for \bl{$1$} she shows an isomorphism with \bl{$G_2$} |
344 \item Alice takes the first \bl{$n$} bits of the output: |
|
345 whenever output is \bl{$0$}, she shows an isomorphism |
|
346 with \bl{$G_1$} ; for \bl{$1$} she shows an isomorphism |
|
347 with \bl{$G_2$} |
303 \end{enumerate} |
348 \end{enumerate} |
304 |
349 |
305 \end{frame}} |
350 \end{frame} |
306 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
351 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
307 |
352 |
308 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
353 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
309 \mode<presentation>{ |
|
310 \begin{frame}[c] |
354 \begin{frame}[c] |
311 \frametitle{Problems of ZKPs} |
355 \frametitle{Problems of ZKPs} |
312 |
356 |
313 \begin{itemize} |
357 \begin{itemize} |
314 \item ``grand chess master problem''\\ |
358 \item ``grand chess master problem''\\ (person in the |
315 (person in the middle)\bigskip |
359 middle again)\bigskip |
316 |
360 |
317 \item Alice can have multiple identities; once she committed a fraud she stops using one |
361 \item Alice can have multiple identities; once she committed a |
|
362 fraud with one, she stops using one |
318 \end{itemize} |
363 \end{itemize} |
319 |
364 |
320 \end{frame}} |
365 \end{frame}} |
321 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
366 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
322 |
367 |
411 \begin{center} |
455 \begin{center} |
412 \bl{$A^{s_{z+1}} \equiv B * h_j^{-1} \;mod \; p$} |
456 \bl{$A^{s_{z+1}} \equiv B * h_j^{-1} \;mod \; p$} |
413 \end{center} |
457 \end{center} |
414 \end{enumerate}\bigskip\pause |
458 \end{enumerate}\bigskip\pause |
415 |
459 |
416 In order to cheat, Alice has to guess all bits in advance. She has only \bl{$1$} to \bl{$2^z$} |
460 In order to cheat, Alice has to guess all bits in advance. She |
417 chance. \\ |
461 has only \bl{$\frac{1}{2}^z$} chance.\bigskip\\ |
418 \small\hspace{7mm}\textcolor{gray}{(explanation $\rightarrow$ \url{http://goo.gl/irL9GK})} |
462 |
419 |
463 \small\hspace{7mm} |
420 \end{frame}} |
464 \textcolor{gray}{(explanation $\rightarrow$ \url{http://goo.gl/irL9GK})} |
421 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
465 |
422 |
466 \end{frame} |
423 |
467 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
424 |
468 |
425 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
469 |
426 \mode<presentation>{ |
470 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
427 \begin{frame}[c] |
471 \begin{frame}[c] |
428 \frametitle{Random Number Generators} |
472 \frametitle{Take Home Points} |
429 |
473 |
430 \begin{itemize} |
474 \begin{itemize} |
431 \item Computers are deterministic. How do they generate random numbers?\bigskip\pause |
475 \item this is pretty old work (in theory); seems |
432 |
476 little used in practice (surprising) |
433 \item The most popular method to generate random numbers between \bl{$0$} and \bl{$m$} is: choose |
477 |
434 three integers |
478 \item for use in privacy the incentives are |
435 |
479 not yet right |
436 \begin{center} |
480 |
437 \begin{tabular}{ll} |
481 \item digital cash (Bitcoins are not yet good enough) |
438 \bl{$a$} & multiplier\\ |
482 |
439 \bl{$c$} & increment\\ |
|
440 \bl{$X_0$} & start value |
|
441 \end{tabular} |
|
442 \end{center} |
|
443 |
|
444 and calculate |
|
445 |
|
446 \begin{center} |
|
447 \bl{$X_{n+1} = (a * X_n + c) \;mod\; m$} |
|
448 \end{center} |
|
449 \end{itemize} |
483 \end{itemize} |
450 |
484 |
451 \only<3->{ |
485 \end{frame} |
452 \begin{textblock}{7}(10,2) |
486 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
453 \begin{tikzpicture} |
487 |
454 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] |
488 |
455 {\begin{minipage}{3.8cm} |
|
456 \begin{tabular}{ll|l} |
|
457 \bl{$m =$} & \bl{$16$} & \bl{$16$}\\ |
|
458 \bl{$X_0 =$} & \bl{$1$} & \bl{$1$}\\ |
|
459 \bl{$a = $} & \bl{$5$} & \bl{$5$}\\ |
|
460 \bl{$c =$} & \bl{$1$} & \bl{$0$}\\ |
|
461 \end{tabular} |
|
462 \end{minipage}}; |
|
463 \end{tikzpicture} |
|
464 \end{textblock}} |
|
465 |
|
466 \end{frame}} |
|
467 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
468 \end{document} |
489 \end{document} |
469 |
490 |
470 %%% Local Variables: |
491 %%% Local Variables: |
471 %%% mode: latex |
492 %%% mode: latex |
472 %%% TeX-master: t |
493 %%% TeX-master: t |