2024 CS783 Lecture15 A
2024 CS783 Lecture15 A
Lecture 15 (01/Oct/24)
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
1 / 16
Recall from Last Lecture...
T'
2 / 16
(ZK)IPs are Useful!
T'
Applications of ZKP:
Cryptocurrency: prove validity of a transaction without
revealing information
2 / 16
(ZK)IPs are Useful!
T'
Applications of ZKP:
Cryptocurrency: prove validity of a transaction without
revealing information
2 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
3 / 16
Plan for Today’s Lecture...
Commitment scheme
Digital analogues of lockers
OWP → (non-interactive) commitment scheme
3 / 16
Plan for Today’s Lecture
3 Commitment Scheme
3 / 16
Plan for Today’s Lecture
3 Commitment Scheme
3 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼
= � then �� ∼
=�
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼= � then �� ∼
=�
Protocol 1 (�� = (�, � ): IP for GI)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼= � then �� ∼
=�
Protocol 1 (�� = (�, � ): IP for GI)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼= � then �� ∼
=�
Protocol 1 (�� = (�, � ): IP for GI)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼= � then �� ∼
=�
Protocol 1 (�� = (�, � ): IP for GI)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼= � then �� ∼
=�
Protocol 1 (�� = (�, � ): IP for GI)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼= � then �� ∼
=�
Protocol 1 (�� = (�, � ): IP for GI)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Observation: transitivity of isomorphism
�� ∼
= �� ⇒ if �� ∼= � then �� ∼
=�
Protocol 1 (�� = (�, � ): IP for GI)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Theorem 1
�� is a honest-verifier perfect zero-knowledge IP for L��
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Theorem 1
�� is a honest-verifier perfect zero-knowledge IP for L��
Proof.
Completeness: �� ∼
= �� ⇒ � can reveal on either challenge ⇒
� always accepts ⇒ ε� = �
Soundness: � ∼
�̸ � ⇒ for any � , � ∼
= � = � and � ∼
� =�
�
cannot both hold ⇒ best �∗ can do is guess � ⇒ ε� = �/�
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Theorem 1
�� is a honest-verifier perfect zero-knowledge IP for L��
Proof.
Completeness: �� ∼
= �� ⇒ � can reveal on either challenge ⇒
� always accepts ⇒ ε� = �
Soundness: � ∼
�̸ � ⇒ for any � , � ∼
= � = � and � ∼
� =�
�
cannot both hold ⇒ best �∗ can do is guess � ⇒ ε� = �/�
Zero knowledge: sample out of order (info. vs knowledge)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Theorem 1
�� is a honest-verifier perfect zero-knowledge IP for L��
Proof.
Completeness: �� ∼
= �� ⇒ � can reveal on either challenge ⇒
� always accepts ⇒ ε� = �
Soundness: � ∼
�̸ � ⇒ for any � , � ∼
= � = � and � ∼
� =�
�
cannot both hold ⇒ best �∗ can do is guess � ⇒ ε� = �/�
Zero knowledge: sample out of order (info. vs knowledge)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Theorem 1
�� is a honest-verifier perfect zero-knowledge IP for L��
Proof.
Completeness: �� ∼
= �� ⇒ � can reveal on either challenge ⇒
� always accepts ⇒ ε� = �
Soundness: � ∼
�̸ � ⇒ for any � , � ∼
= � = � and � ∼
� =�
�
cannot both hold ⇒ best �∗ can do is guess � ⇒ ε� = �/�
Zero knowledge: sample out of order (info. vs knowledge)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Theorem 1
�� is a honest-verifier perfect zero-knowledge IP for L��
Proof.
Completeness: �� ∼
= �� ⇒ � can reveal on either challenge ⇒
� always accepts ⇒ ε� = �
Soundness: � ∼
�̸ � ⇒ for any � , � ∼
= � = � and � ∼
� =�
�
cannot both hold ⇒ best �∗ can do is guess � ⇒ ε� = �/�
Zero knowledge: sample out of order (info. vs knowledge)
4 / 16
Recall ��: Honest-Verifier ZK for ��...
Theorem 1
�� is a honest-verifier perfect zero-knowledge IP for L��
Proof.
Completeness: �� ∼
= �� ⇒ � can reveal on either challenge ⇒
� always accepts ⇒ ε� = �
Soundness: � ∼
�̸ � ⇒ for any � , � ∼
= � = � and � ∼
� =�
�
cannot both hold ⇒ best �∗ can do is guess � ⇒ ε� = �/�
Zero knowledge: sample out of order (info. vs knowledge)
4 / 16
What about Malicious Verifiers?
5 / 16
What about Malicious Verifiers?
5 / 16
What about Malicious Verifiers?
5 / 16
What about Malicious Verifiers?
5 / 16
What about Malicious Verifiers?
5 / 16
�� Works Also For Malicious Verifiers!...
Theorem 2
�� is a malicious-verifier perfect ZKP for L��
6 / 16
�� Works Also For Malicious Verifiers!...
Theorem 2
�� is a malicious-verifier perfect ZKP for L��
6 / 16
�� Works Also For Malicious Verifiers!...
Theorem 2
�� is a malicious-verifier perfect ZKP for L��
6 / 16
�� Works Also For Malicious Verifiers!...
Theorem 2
�� is a malicious-verifier perfect ZKP for L��
6 / 16
�� Works Also For Malicious Verifiers!...
Theorem 2
�� is a malicious-verifier perfect ZKP for L��
6 / 16
�� Works Also For Malicious Verifiers!...
Theorem 2
�� is a malicious-verifier perfect ZKP for L��
6 / 16
�� Works Also For Malicious Verifiers!...
Theorem 2
�� is a malicious-verifier perfect ZKP for L��
6 / 16
�� Works Also For Malicious Verifiers!...
Why is � independent of �∗ ?
6 / 16
�� Works Also For Malicious Verifiers!...
6 / 16
�� Works Also For Malicious Verifiers!...
6 / 16
�� Works Also For Malicious Verifiers!...
Exercise 2
1 Design malicious-verifier perfect ZKP for L��
2 Think about malicious-verifier perfect ZKP for L���
Hint: you need to somehow use �� as sub-routine
6 / 16
Plan for Today’s Lecture
3 Commitment Scheme
6 / 16
ZKP for Any Problem in ��
Claim 1
ZKP for an ��-complete language L� implies ZKP for any L ∈ ��
7 / 16
ZKP for Any Problem in ��
Claim 1
ZKP for an ��-complete language L� implies ZKP for any L ∈ ��
1 Encode� ∈ L by Karp-reducing to �� ∈ L�
2 Use ZKP for L� on ��
7 / 16
ZKP for Any Problem in ��
Claim 1
ZKP for an ��-complete language L� implies ZKP for any L ∈ ��
1 Encode� ∈ L by Karp-reducing to �� ∈ L�
2 Use ZKP for L� on ��
7 / 16
ZKP for Any Problem in ��
Claim 1
ZKP for an ��-complete language L� implies ZKP for any L ∈ ��
1 Encode� ∈ L by Karp-reducing to �� ∈ L�
2 Use ZKP for L� on ��
7 / 16
ZKP for Any Problem in ��
Claim 1
ZKP for an ��-complete language L� implies ZKP for any L ∈ ��
1 Encode� ∈ L by Karp-reducing to �� ∈ L�
2 Use ZKP for L� on ��
7 / 16
ZKP for Any Problem in ��
Claim 1
ZKP for an ��-complete language L� implies ZKP for any L ∈ ��
1 Encode� ∈ L by Karp-reducing to �� ∈ L�
2 Use ZKP for L� on ��
Exercise 3
Show that if Π� is a ZKP for L� then Π is a ZKP for L
7 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Let’s recall/rephrase Π�� :
Honest � “commits” to �� and �� by sending � = σ (��)
8 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Let’s recall/rephrase Π�� :
Honest � “commits” to �� and �� by sending � = σ (�� )
Soundness: commitment � is “perfectly binding” if �� ≁= �� ⇒
malicious � ∗ can commit to only one of �� or �� in advance
8 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Let’s recall/rephrase Π�� :
Honest � “commits” to �� and �� by sending � = σ (�� )
Soundness: commitment � is “perfectly binding” if �� ≁= �� ⇒
malicious � ∗ can commit to only one of �� or �� in advance
ZK: commitment is “perfectly hiding” if �� ∼
= �� ⇒ � hides
information about �� /��
8 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Let’s recall/rephrase Π�� :
Honest � “commits” to �� and �� by sending � = σ (�� )
Soundness: commitment � is “perfectly binding” if �� ∼ ̸= �� ⇒
malicious � ∗ can commit to only one of �� or �� in advance
ZK: commitment is “perfectly hiding” if �� ∼
= �� ⇒ � hides
information about �� /��
Possible because of ��’s structure: isomorphisms are transitive
8 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Let’s recall/rephrase Π�� :
Honest � “commits” to �� and �� by sending � = σ (�� )
Soundness: commitment � is “perfectly binding” if �� ∼ ̸= �� ⇒
malicious � ∗ can commit to only one of �� or �� in advance
ZK: commitment is “perfectly hiding” if �� ∼
= �� ⇒ � hides
information about �� /��
Possible because of ��’s structure: isomorphisms are transitive
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
9 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Observation: � Hamiltonian and �∼
= � then � Hamiltonian
Protocol 2 (�� = (�, � ): First attempt at ZKP for ��)
10 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Protocol 3 (Π′�� = (�, � ): Blum’s IP for ��)
10 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Protocol 3 (Π′�� = (�, � ): Blum’s IP for ��)
10 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Protocol 3 (Π′�� = (�, � ): Blum’s IP for ��)
10 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Protocol 3 (Π′�� = (�, � ): Blum’s IP for ��)
10 / 16
Let’s Construct ZKP for Graph Hamiltonicity...
Protocol 3 (Π′�� = (�, � ): Blum’s IP for ��)
11 / 16
Π′�� is Computational ZKP for Graph Hamiltonicity...
Soundness: locker binding ⇒ Π′�� is sound
Zero-knowledge: locker “computationally” hides its content ⇒
Π′�� is honest-verifier computational zero-knowledge for L��
11 / 16
Π′�� is Computational ZKP for Graph Hamiltonicity...
Soundness: locker binding ⇒ Π′�� is sound
Zero-knowledge: locker “computationally” hides its content ⇒
Π′�� is honest-verifier computational zero-knowledge for L��
Exercise 4
Describe the simulator for malicious-verifier ZK for Π′��
Exercise 5
Think of ZKP for other ��-complete problems like � × � Sudoku
and graph three-colouring
11 / 16
Plan for Today’s Lecture
3 Commitment Scheme
11 / 16
Commitment Schemes are Digital Lockers
Defintion 2
A (non-interactive) commitment scheme is a pair of algorithms (�, �)
with the following syntax:
12 / 16
Commitment Schemes are Digital Lockers
Defintion 2
A (non-interactive) commitment scheme is a pair of algorithms (�, �)
with the following syntax:
12 / 16
Commitment Schemes are Digital Lockers
Defintion 2
A (non-interactive) commitment scheme is a pair of algorithms (�, �)
with the following syntax:
12 / 16
Commitment Schemes are Digital Lockers
Defintion 2
A (non-interactive) commitment scheme is a pair of algorithms (�, �)
with the following syntax:
12 / 16
Commitment Schemes are Digital Lockers
Defintion 2
A (non-interactive) commitment scheme is a pair of algorithms (�, �)
with the following syntax:
12 / 16
Commitment Schemes are Digital Lockers
Defintion 2
A (non-interactive) commitment scheme is a pair of algorithms (�, �)
with the following syntax:
12 / 16
Commitment Schemes are Digital Lockers
Defintion 2
A (non-interactive) commitment scheme is a pair of algorithms (�, �)
with the following syntax:
13 / 16
How to Construct Commitment Schemes?...
Construction 2 (PKE Π = (���, ���, ���) → commitment scheme Σ)
13 / 16
How to Construct Commitment Schemes?...
Construction 2 (PKE Π = (���, ���, ���) → commitment scheme Σ)
13 / 16
How to Construct Commitment Schemes?...
Construction 2 (PKE Π = (���, ���, ���) → commitment scheme Σ)
Exercise 6
Which of the PKEs we have seen satisfy the above properties?
13 / 16
How to Construct Commitment Schemes?...
Construction 3 (OWP f� : {� , � }� → {� , � }� → bit-commitment Σ)
14 / 16
How to Construct Commitment Schemes?...
Construction 3 (OWP f� : {� , � }� → {� , � }� → bit-commitment Σ)
14 / 16
How to Construct Commitment Schemes?...
Construction 3 (OWP f� : {� , � }� → {� , � }� → bit-commitment Σ)
14 / 16
How to Construct Commitment Schemes?...
Construction 3 (OWP f� : {� , � }� → {� , � }� → bit-commitment Σ)
15 / 16
To Recap Today’s Lecture
15 / 16
To Recap Today’s Lecture
Commitment schemes
Non-interactive constructions from PKE and OWP
Two-message construction from PRG ← OWF
15 / 16
Next Lecture
16 / 16
References
16 / 16