Verification whether someone is who he claims to be.
Parties
Security
Types of Cryptographic Identification Schemes
Notation
A pair of algorithms \((P, V)\) is a proof system if it satisfies
Encryption Scheme
Proving the ability to decrypt a ciphertext
Proof of Knowledge of Discrete Logarithm
Properties
A proof system is a Proof of Knowledge if for all \(s \in L_R\), \(V_{P^*}(s) = 1\) and there exists an extractor \(E(x; P^*) \in w(x)\) with probability \(1 - \epsilon\).
Question
Implication
\[ \mathrm{ZK} \Rightarrow \mathrm{WI} \Rightarrow \mathrm{WH} \]
Along this lecture we focus on ZK
Proof system \((P, V)\) is zero knowledge over the relation \(R\) if there exists a simulator \(M\) which such that for any probabilistic polynomial time \(V'\), for any \((s, w) \in R\), and any auxiliary input \(y\) to \(V'\) the two ensembles \(V_P(s, w)'(s, y)\) and \(M(s, y; V')\) are indistinguishale.
Proof of Knowledge of Discrete Logarithm
Prover wants to prover the knowedlge of \(Log_{g}(Y)\).
Correctness
If \(Y = g^x\), then \(g^{\sigma}Y^{-c} = g^{t}\cdot g^{c \cdot x} \cdot g^{-c \cdot x} = g^t = T\).
Proof of Knowledge (existence of an extractor)
Soundness
Suppose a prover wants to prove a false statement (i.e. the prover don't knows \(Log_{g}(Y)\)). In case he is successful, we run the extractor and extract \(Log_{g}(Y)\) while interacting with him. Thus, the prover has to know \(Log_{g}(Y)\) and the statement couldn't be false. Moreover, a prover having an algorithm which produces a convincing proof, could use the extractor by himself.
Honest verifier, public coin Zero Knowledge
Simulation
\(\Sigma\)-Protocols
\(\Sigma\)-protocols are a generalization of proof systems as Schnorr or Okamoto protocols. We call a \(\Sigma\)-protocol, a protocol between a prover \(P\) and a verifier \(V\) of the form:
Properties
A \(\Sigma\)-protocol satisfies the following properties:
Types of composition
AND composition
Prover wants to prove the knowledge of \(Log_g(Y_1)\) AND \(Log_g(Y_2)\).
EQ composition
Prover wants to prove the knowledge of \(x = Log_{g_1}(Y_1) = Log_{g_2}(Y_2)\).
OR composition
Prover wants to prove the knowledge of \(x = Log_{g_1}(Y_1) = Log_{g_2}(Y_2)\).
NOT composition
Prover wants to prove the knowledge of \(x_1 = Log_{g_1}(Y_1) \neq x_2 = Log_{g_2}(Y_2)\).
Simplified notation - example
\[PoK\{(\alpha, \beta): g^{\alpha} = y \land \hat{g}^{\alpha}g^{\beta} = z\}\] This denotes a proof of knowledge protocol for the knowledge of \(\alpha\) and \(\beta\) s.t. the relations \(g^{\alpha} = y\) and \(\hat{g}^{\alpha}g^{\beta} = z\) hold.