\documentclass{article}\usepackage{../style}\begin{document}\section*{Handout 6 (Zero-Knowledge Proofs)}Zero-knowledge proofs (short ZKP) solve a paradoxical puzzle:How to convince somebody else that one knows a secret without,revealing what the secret is? This sounds like a problem theMad Hatter from Alice in Wonderland would occupy himself with,but actually there some serious and not so seriousapplications of it. For example, if you solve crosswords withyour friend, say Bob, you might want to convince him that youfound a solution for one question, but of course you do notwant to reveal the solution, as this might give Bob anadvantage somewhere else in the crossword. So how to convinceBob that you know the answer (secret)? One way would be tocome up with the following protocol: suppose the answer is\textit{folio}. Then look up the definition of that word in adictionary. Say you find\begin{quote}``an \textit{individual} leaf of paper or parchment, eitherloose as one of a series or forming part of a bound volume,which is numbered on the recto or front side only.''\end{quote}\noindentTake the first non-article word in this definition,in this case \textit{individual}, and look up the definitionof this word, say\begin{quote}``a single \textit{human} being as distinct from a group''\end{quote}\noindent In this definition take the second non-article word, thatis \textit{human}, and again look up the definition of this word. This will yield\begin{quote}``relating to \textit{or} characteristic of humankind''\end{quote}\noindent You could now go on to look up the definition of the thirdnon-article in this definition and so on. But let us assumeyou agreed with Bob to stop after three iterations with thethird non-article word in the last definition, that is\textbf{or}. Now, instead of sending to Bob the solution\textit{folio}, you send to him \textit{or}. How canBob verify that you know the solution? Well, once he solvedit himself, he can use the dictionary and follow the same``trail'' as you did. It the final word agrees with what you send him, he must infer you know the solution earlierthan him. This protocol works like a one-way hash function because \textit{or} does not give any hint as to what wasthe first word was. I leave you to think why thisprotocol avoids article words. After Bob found his solution and verified that according tothe protocol it ``maps'' also to \textit{or}, can he beentirely sure no cheating is going on. Not with 100\%certainty. It could have been entirely possible thathe was given \textit{or} as the word but it derivedfrom an entirely different word---this seems very unlikely,but is at least theoretical a possibility. Protocolsbased on zero-knowledge proofs will produce a similarresult---they give an answer that might be erroneous in a very small number of cases. The point is to itteratethem long enough so that the theoretical possibility ofcheating is negligibly small. By the way, the authors of the paper ``Dismantling MegamosCrypto: Wirelessly Lockpicking a Vehicle Immobilizer'' whowere barred from publishing their results used also a hash toprove they did the work and (presumably) managed to get intocars without a key. See Figure~\ref{paper}. This is very similar to the method about crosswords. They like to provethat they did the work, but not giving out the ``solution''. But this also shows what the problem with such methodsare: yes, we can hide the secret temporarily, but ifsomebody else wants to verify it, then the secret has to be made public. Bob needs to know that \textit{folio}is the solution before he can verify the claim that somebodyelse had the solution first. Similarly with the paper:we need to wait until the authors are finally allowed to publish their finding in order to verify the hash. Thismight happen at some point, but equally it might neverhappen (what for example happens if the authors loosetheir copy of the paper because of a disk failure?).Zero-knowledge proofs, in contrast, can be immediatelybe checked, even if the secret is not public yet.\begin{figure}\begin{center}\fbox{\includegraphics[scale=0.4]{../pics/Dismantling_Megamos_Crypto.png}}\end{center}\caption{The authors of this paper used a hash in order to provelater that they have managed to break into cars.\label{paper}}\end{figure}\subsubsection*{ZKP: An Illustrative Example}The idea behind zero-knowledge proofs is not very obvious andwill surely take some time for you to digest. Thereforelets start with an illustrative example. The example willnot be perfect, but hopefully explain the gist of the ideas.The example is called Alibaba's cave:\begin{center}\begin{tabular}{c@{\hspace{8mm}}c@{\hspace{8mm}}c}\includegraphics[scale=0.1]{../pics/alibaba1.png} &\includegraphics[scale=0.1]{../pics/alibaba2.png} &\includegraphics[scale=0.1]{../pics/alibaba3.png} \\Step 1 & Step 2 & Step 3\end{tabular}\end{center}\noindent Lets have a look at the picture in Step 1:The cave is a loop where at the end is a magic wand.The point of the magic wand is that Alice knows thesecret word for how to open it. She wants to keep hereword secret, but wants to convince Bob that she knows it.\end{document}%%% Local Variables: %%% mode: latex%%% TeX-master: t%%% End: