From 8173c1033d459c99cee3304b652f6372d3c8f9a6 Mon Sep 17 00:00:00 2001 From: Sungchan Yi Date: Wed, 17 Jan 2024 18:15:11 +0900 Subject: [PATCH] [PUBLISHER] upload files #137 * PUSH NOTE : 12. Zero-Knowledge Proofs (Introduction).md * PUSH ATTACHMENT : mc-12-id-protocol.png --- .../2023-11-02-zkp-intro.md | 113 ++++++++++++++++++ .../Modern Cryptography/mc-12-id-protocol.png | Bin 0 -> 69455 bytes 2 files changed, 113 insertions(+) create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md b/_posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md new file mode 100644 index 0000000..fd0421e --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md @@ -0,0 +1,113 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 12. Zero-Knowledge Proof Introduction +date: 2023-11-02 +github_title: 2023-11-02-zkp-intro +image: + path: assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png +attachment: + folder: assets/img/posts/Lecture Notes/Modern Cryptography +--- + + +- In 1980s, the notion of *zero knowledge* was proposed by Shafi Goldwasser, Silvio micali and Charles Rackoff. +- **Interactive proof systems**: a **prover** tries to convince the **verifier** that some statement is true, by exchanging messages. + - What if the prover is trying to trick the verifier? + - What if the verifier is an adversary that tries to obtain more information? +- These proof systems are harder to build in the digital world. + - This is because it is easy to copy data in the digital world. + +## Identification Protocol + +![mc-12-id-protocol.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-12-id-protocol.png) + +> **Definition.** An **identification protocol** is a triple of algorithms $\mc{I} = (G, P, V)$ satisfying the following. +> +> - $G$ is a probabilistic **key generation** algorithm that outputs $(vk, sk) \leftarrow G()$. $vk$ is the **verification key** and $sk$ is the **secret key**. +> - $P$ is an interactive protocol algorithm called the **prover**, which takes the secret key $sk$ as an input. +> - $V$ is an interactive protocol algorithm called the **verifier**, which takes the verification key $vk$ as an input and outputs $\texttt{accept}$ or $\texttt{reject}$. +> +> For all possible outputs $(vk, sk)$ of $G$, at the end of the interaction between $P(sk)$ and $V(vk)$, $V$ outputs $\texttt{accept}$ with probability $1$. + +### Password Authentication + +A client is trying to log in, must prove its identity to the server. But the client cannot trust the server (verifier), so the client must prove itself without revealing the secret. The password is the secret in this case. The login is a *proof* that the client is who it claims to be. What should be the verification key? Setting $vk = sk$ certainly works, but the server learns the password, so this should not be used. + +Instead, we could set $vk = H(sk)$ by using a hash function $H$. Then the client sends the password, server computes the hash and checks if it is equal. This method still reveals the plaintext password to the server. + +## Example: 3-Coloring + +Suppose we are given a graph $G = (V, E)$, which we want to color the vertices with at most $3$ colors, so that no two adjacent vertices have the same color. This is an NP-complete problem. + +Bob has a graph $G$ and he is trying to $3$-color the graph. Alice shows up and claims that there is a way to $3$-color $G$. If the coloring is valid, Bob is willing to buy the solution, but he cannot trust Alice. Bob won't pay until he is convinced that Alice has a solution, and Alice won't give the solution until she receives the money. How can Alice and Bob settle this problem? + +### Protocol + +> 1. Bob gives Alice the graph $G = (V, E)$. +> 2. Alice shuffles the colors and colors the graph. The coloring is hidden to Bob. +> 3. Bob randomly picks a single edge $(u, v) \in E$ of this graph. +> 4. Alice reveals the colors of $u$ and $v$. + +- If $u$ and $v$ have the same color, Alice is lying to Bob. +- If they have different colors, Alice *might be* telling the truth. +- What if Alice just sends two random colors in step $4$? + - We can use **commitment schemes** so that Alice cannot manipulate the colors after Bob's query. + - Specifically, send the colors of each $v$ using a commitment scheme. + - For Bob's query $(u, v)$, send the opening strings of $u$ and $v$. +- What if Alice doesn't have a solution, but Bob picks an edge with different colors just by luck? + - We can repeat the protocol many times. + - For each protocol instance, an invalid solution can pass with probability $p = \frac{1}{\abs{E}}$. + - Repeat this many times, then $p^n \rightarrow 0$, so invalid solutions will pass with negligible probability. +- Does Bob's query reveal anything about the solution? + - No, Alice randomizes colors for every protocol instance. + - Need formal definition and proof for this.[^1] + +## Zero Knowledge Proof (ZKP) + +We need three properties for a **zero-knowledge proof** (ZKP). + +- (**Completeness**) If the statement is true, an honest verifier must accept the fact by an honest prover. +- (**Soundness**) If the statement is false, no cheating prover can convince an honest verifier, except with some small probability. +- (**Zero Knowledge**) If the statement is true, no verifier (including honest and cheating) learns anything other than the truth of the statement. The statement does not reveal anything about the prover's secret. + +We define these formally. + +> **Definition.** Let $\mc{R} \subset \mc{X} \times \mc{Y}$ be a relation. A statement $y \in \mc{Y}$ is **true** if $(x, y) \in \mc{R}$ for some $x \in \mc{X}$. The set of true statements +> +> $$ +> L_\mc{R} = \braces{y \in \mc{Y} : \exists x \in \mc{X},\; (x, y) \in \mc{R}} +> $$ +> +> is called the **language** defined by $\mc{R}$. + +> **Definition.** A **zero-knowledge proof** is a protocol between a prover $P(x, y)$ and a verifier $V(x)$. At the end of the protocol, the verifier either accepts or rejects. + +In the above definition, $y$ is the statement to prove, and $x$ is the proof of that statement, which the prover wants to hide. The prover and the verifier exchanges messages for the protocol, and this collection of interactions is called the **view** (or conversation, transcript). + +> **Definition.** +> +> - (**Completeness**) If $(x, y) \in R$, then an honest verifier accepts with very high probability. +> - (**Soundness**) If $y \notin L$, an honest verifier accepts with a negligible probability. + +But how do we define *zero knowledge*? What is *knowledge*? If the verifier learns something, the verifier obtains something that he couldn't have computed without interacting with the prover. Thus, we define zero knowledge as the following. + +> **Definition.** We say that a protocol is **honest verifier zero knowledge** (HVZK) if there exists an efficient algorithm $\rm{Sim}$ (simulator) on input $x$ such that the output distribution of $\rm{Sim}(x)$ is indistinguishable from the distribution of the verifier's view. +> +> $$ +> \rm{Sim}(x) \approx \rm{View}_V[P(x, y) \lra V(x)] +> $$ + +For every verifier $V^{\ast}$, possibly dishonest, there exists a simulator $\rm{Sim}$ such that $\rm{Sim}(x)$ is indistinguishable from the verifier's view $\rm{View}_{V^{\ast}}[P(x, y) \leftrightarrow V^{\ast}(x)]$. + +If the proof is *zero knowledge*, the adversary can simulate conversations on his own without knowing the secret. Meaning that the adversary learns nothing from the conversation. + +[^1]: How to give a formal proof for HVZK...? diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..d536b703cca0be12e5470be14295f7cc5bd8e161 GIT binary patch literal 69455 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 H%=P~QIi#yV literal 0 HcmV?d00001