SlideShare a Scribd company logo
SPB Crypto Devs Meetup
Sigma Protocols and
Efficient Zero-Knowledge Proofs
Alexander Chepurnoy
IOHK Research
Motivating Example
● Alice publishes a commitment of a secret
● Alice passes a secret to Bob
● Bob wants to convince Carol he knows a secret
Motivating Example
● Anonymous voting
● Every vote is whether 0 or 1 encrypted
● To calculate a sum, additively homomorphic encryption
could be used
● But how to be sure only 0 or 1 is encrypted?
● Solution: a proof for each vote it is whether 0 or 1(without
revealing a value!)
ZKPoKs: What For
● Identification schemes
● Signatures
● Building block in many protocols(voting, anonymous
transactions etc)
ZKPoK
● Zero-Knowledge Proof of Knowledge
● Prover P, Verifier V, relation R
● Common input x
● P proves it knows a witness w for which (x,w) R∈
● Without revealing anything about it
● In practice, often inefficient and so avoided
Properties
● Completeness: a correct statement could be proven
● Soundness: it's not possible to prove incorrect statements
(with a non-negligible probability)
Σ-protocol, Generically
● P sends V a message a
● V sends P a random t-bit string e
● P sends a reply z, and V decides to accept or reject based
solely on the data it has seen; i.e., based only on the
values (x, a, e, z).
Theory Behind
● Ivan Damgard „On Sigma Protocols“
● Yehuda Lindell, Carmit Hazay „Efficient Secure Two-Party
Protocols: Techniques and Constructions“ (Book)
● Yehuda Lindell „Sigma Protocols and Zero Knowledge“
http://www.youtube.com/watch?v=nwsmG3S9wIc
Implementation
● ScAPI(Java/JVM) - The Secure Computation API
https://github.com/cryptobiu/scapi
● Protocols pseudocode
http://cryptobiu.github.io/scapi/SDK_Pseudocode.pdf
Example: Schnorr’s protocol
●
Σ-protocol for DLOG
● h = gw
● (p, q ,g, h) is common input
● First msg(P): a = gr
● Second msg(V): challenge c = random({0, 1}, t)
● Third message(P): z = r + ew mod q
● V checks if gz
= a * he
● Completeness: gz
= g(r+ew)
= gr
* (gw
)e
= a * he
Schnorr’s protocol
● Very efficient: just 3 exponentiations
● Proof-of-Knowledge protocol
● Not provably Zero-Knowledge
● but Honest Verifier Zero-Knowledge
● error 2-t
Proof of Membership
● (x;w) ∈ L
● x is set
Example: Diffie-Hellman tuple
● Common input: (G,q,g,h,u,v,t)
● P knows w such as u = gw
, v = hw
● P sends out a = gr
, b = hr
● V sends out a challenge c = random({0, 1}, t)
● P sends out z = r + ew mod q
● V checks if gz
= a*ue
, hz
= b * ve
Run Properties
● Parallel execution: l parallel runs with challenge of size t is
equivalent to run protocols with challenge of size l*t
● Challenge could be of arbitrary size
Compound Statements
● AND
● OR
AND Statement
● Just run two protocols in parallel for (a1, a2) and the same
e
OR Statement
● Prove one of two statements is true without revealing
which
● Based on simulation for a statement witness isn't known
for
Compound Statements
● OR of many statements (k out of n) is possible
● Any monotone formula, so any combination of ANDs and
ORs without a negation, is possible
Commitment Scheme
● Commit phase
● Reveal phase
● hash (secret ++ blinding factor)
● Pedersen commitment: c = gx
* hr
Zero Knowledge From Σ-protocol
● Verifier needs to commit a challenge in prior to a fist
message from a Prover
●
With the commitment being added, a Σ-protocol becomes
provably Zero-Knowledge (details in the book of Lindell /
Hazay)
Zero Knowledge From Σ-protocol
●
Σ-protocol π
● V chooses a random t-bit challenge e and interacts with P via
the commitment protocol in order to commit to e
● P computes the first message a in π, using (x, w) as input, and
sends it to V
● V reveals e to P by decommitting
● P verifies the decommitment, computes the answer z in π, and
sends z to V
● V accepts if and only if transcript (a, e, z) is accepting in π on
input x
Commitment From Σ-protocol
● Verifier = receiver
● Prover = sender
● Set-up: V generates (x; w), sends x to P
● Commit: to commit to a t-bit string e. P runs simulator on
(x, e) to get (a, e, z) and sends a to V
● Open: to reveal the commitment, P sends (e, z) to V, V
checks (a, e, z)
Non-Interactive Σ-protocol
● No interaction, no Verifier
● w. public Random Oracle
● e = R(a)
● not provably secure
Signature From Σ-protocol
● (x; w)
● public key x
● private key w
● message m
● e = R(a++m)
● (a, z) is a signature
● as hard to break as to compute w from x (in ROM)
Conclusion
● One template for many protocols
● Highly efficient
● Composable
● Provably secure
● Makes things easier
● Crypto is HARD anyway...
Questions?
Twitter: @chepurnoy
Mail: kushti@protonmail.ch

More Related Content

PPTX
x.509-Directory Authentication Service
PPTX
Cryptography 101 for Java Developers - Devoxx 2019
PPTX
Cryptography
PPT
Network security cryptographic hash function
PPTX
Digital signature(Cryptography)
PPTX
Public Key Cryptography
PPTX
MD5 ALGORITHM.pptx
PPTX
Diffie Hellman Key Exchange
x.509-Directory Authentication Service
Cryptography 101 for Java Developers - Devoxx 2019
Cryptography
Network security cryptographic hash function
Digital signature(Cryptography)
Public Key Cryptography
MD5 ALGORITHM.pptx
Diffie Hellman Key Exchange

What's hot (20)

PPT
Cryptography
PPTX
cryptography
PPTX
Cryptography and Information Security
PPT
block ciphers
PPT
6. cryptography
PPTX
Secure Socket Layer (SSL)
PPTX
Elliptic Curve Cryptography
PPTX
PPTX
public key infrastructure
PPTX
OWASP AppSecCali 2015 - Marshalling Pickles
PPTX
Cryptography
PPTX
Elgamal & schnorr digital signature scheme copy
PPTX
Message digest 5
PDF
Zero-Knowledge Proofs: Privacy-Preserving Digital Identity with Clare Nelson
DOCX
S/MIME
PPTX
Basic cryptography
PPT
Message authentication and hash function
PDF
2. Stream Ciphers
PPTX
Cryptography.ppt
Cryptography
cryptography
Cryptography and Information Security
block ciphers
6. cryptography
Secure Socket Layer (SSL)
Elliptic Curve Cryptography
public key infrastructure
OWASP AppSecCali 2015 - Marshalling Pickles
Cryptography
Elgamal & schnorr digital signature scheme copy
Message digest 5
Zero-Knowledge Proofs: Privacy-Preserving Digital Identity with Clare Nelson
S/MIME
Basic cryptography
Message authentication and hash function
2. Stream Ciphers
Cryptography.ppt
Ad

Viewers also liked (10)

PPT
Zero knowledge proofsii
PDF
Elliptic Curve Cryptography and Zero Knowledge Proof
PPTX
Digital Signatures
PDF
Bitcoin
PDF
Cryptography and Voting
PPT
Wireless sensor Network using Zero Knowledge Protocol ppt
PPTX
Public Key Algorithms
PPT
Basic Encryption Decryption Chapter 2
PPT
Spm unit 3
PPTX
wireless sensor network my seminar ppt
Zero knowledge proofsii
Elliptic Curve Cryptography and Zero Knowledge Proof
Digital Signatures
Bitcoin
Cryptography and Voting
Wireless sensor Network using Zero Knowledge Protocol ppt
Public Key Algorithms
Basic Encryption Decryption Chapter 2
Spm unit 3
wireless sensor network my seminar ppt
Ad

More from Alex Chepurnoy (15)

PDF
Ergo Presentation - Tokyo
PDF
Berlin sigma-2017
PDF
Ethereum and Its Challenges
PDF
Improving Authenticated Dynamic Dictionaries, with Applications to Cryptocurr...
PDF
Масштабируемость блокчейн-систем: проблемы и решения
ODP
Blockchan For Developers
PDF
Blockchain For Developers
ODP
Blockchain Properties
PDF
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
ODP
Scorex, the Modular Blockchain Framework
ODP
Some Open Problems in Blockchains
PDF
On Private Blockchains, Technically
ODP
Scorex meetup-aug-2015
ODP
Proof-of-Stake & Its Improvements (San Francisco Bitcoin Devs Hackathon)
ODP
A New Business World Within A Blockchain
Ergo Presentation - Tokyo
Berlin sigma-2017
Ethereum and Its Challenges
Improving Authenticated Dynamic Dictionaries, with Applications to Cryptocurr...
Масштабируемость блокчейн-систем: проблемы и решения
Blockchan For Developers
Blockchain For Developers
Blockchain Properties
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
Scorex, the Modular Blockchain Framework
Some Open Problems in Blockchains
On Private Blockchains, Technically
Scorex meetup-aug-2015
Proof-of-Stake & Its Improvements (San Francisco Bitcoin Devs Hackathon)
A New Business World Within A Blockchain

Recently uploaded (20)

PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Encapsulation theory and applications.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Programs and apps: productivity, graphics, security and other tools
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Electronic commerce courselecture one. Pdf
Encapsulation_ Review paper, used for researhc scholars
Empathic Computing: Creating Shared Understanding
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Encapsulation theory and applications.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Programs and apps: productivity, graphics, security and other tools
The AUB Centre for AI in Media Proposal.docx
Chapter 3 Spatial Domain Image Processing.pdf
Review of recent advances in non-invasive hemoglobin estimation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Per capita expenditure prediction using model stacking based on satellite ima...
Big Data Technologies - Introduction.pptx
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Sigma Protocols and Zero Knowledge

  • 1. SPB Crypto Devs Meetup Sigma Protocols and Efficient Zero-Knowledge Proofs Alexander Chepurnoy IOHK Research
  • 2. Motivating Example ● Alice publishes a commitment of a secret ● Alice passes a secret to Bob ● Bob wants to convince Carol he knows a secret
  • 3. Motivating Example ● Anonymous voting ● Every vote is whether 0 or 1 encrypted ● To calculate a sum, additively homomorphic encryption could be used ● But how to be sure only 0 or 1 is encrypted? ● Solution: a proof for each vote it is whether 0 or 1(without revealing a value!)
  • 4. ZKPoKs: What For ● Identification schemes ● Signatures ● Building block in many protocols(voting, anonymous transactions etc)
  • 5. ZKPoK ● Zero-Knowledge Proof of Knowledge ● Prover P, Verifier V, relation R ● Common input x ● P proves it knows a witness w for which (x,w) R∈ ● Without revealing anything about it ● In practice, often inefficient and so avoided
  • 6. Properties ● Completeness: a correct statement could be proven ● Soundness: it's not possible to prove incorrect statements (with a non-negligible probability)
  • 7. Σ-protocol, Generically ● P sends V a message a ● V sends P a random t-bit string e ● P sends a reply z, and V decides to accept or reject based solely on the data it has seen; i.e., based only on the values (x, a, e, z).
  • 8. Theory Behind ● Ivan Damgard „On Sigma Protocols“ ● Yehuda Lindell, Carmit Hazay „Efficient Secure Two-Party Protocols: Techniques and Constructions“ (Book) ● Yehuda Lindell „Sigma Protocols and Zero Knowledge“ http://www.youtube.com/watch?v=nwsmG3S9wIc
  • 9. Implementation ● ScAPI(Java/JVM) - The Secure Computation API https://github.com/cryptobiu/scapi ● Protocols pseudocode http://cryptobiu.github.io/scapi/SDK_Pseudocode.pdf
  • 10. Example: Schnorr’s protocol ● Σ-protocol for DLOG ● h = gw ● (p, q ,g, h) is common input ● First msg(P): a = gr ● Second msg(V): challenge c = random({0, 1}, t) ● Third message(P): z = r + ew mod q ● V checks if gz = a * he ● Completeness: gz = g(r+ew) = gr * (gw )e = a * he
  • 11. Schnorr’s protocol ● Very efficient: just 3 exponentiations ● Proof-of-Knowledge protocol ● Not provably Zero-Knowledge ● but Honest Verifier Zero-Knowledge ● error 2-t
  • 12. Proof of Membership ● (x;w) ∈ L ● x is set
  • 13. Example: Diffie-Hellman tuple ● Common input: (G,q,g,h,u,v,t) ● P knows w such as u = gw , v = hw ● P sends out a = gr , b = hr ● V sends out a challenge c = random({0, 1}, t) ● P sends out z = r + ew mod q ● V checks if gz = a*ue , hz = b * ve
  • 14. Run Properties ● Parallel execution: l parallel runs with challenge of size t is equivalent to run protocols with challenge of size l*t ● Challenge could be of arbitrary size
  • 16. AND Statement ● Just run two protocols in parallel for (a1, a2) and the same e
  • 17. OR Statement ● Prove one of two statements is true without revealing which ● Based on simulation for a statement witness isn't known for
  • 18. Compound Statements ● OR of many statements (k out of n) is possible ● Any monotone formula, so any combination of ANDs and ORs without a negation, is possible
  • 19. Commitment Scheme ● Commit phase ● Reveal phase ● hash (secret ++ blinding factor) ● Pedersen commitment: c = gx * hr
  • 20. Zero Knowledge From Σ-protocol ● Verifier needs to commit a challenge in prior to a fist message from a Prover ● With the commitment being added, a Σ-protocol becomes provably Zero-Knowledge (details in the book of Lindell / Hazay)
  • 21. Zero Knowledge From Σ-protocol ● Σ-protocol π ● V chooses a random t-bit challenge e and interacts with P via the commitment protocol in order to commit to e ● P computes the first message a in π, using (x, w) as input, and sends it to V ● V reveals e to P by decommitting ● P verifies the decommitment, computes the answer z in π, and sends z to V ● V accepts if and only if transcript (a, e, z) is accepting in π on input x
  • 22. Commitment From Σ-protocol ● Verifier = receiver ● Prover = sender ● Set-up: V generates (x; w), sends x to P ● Commit: to commit to a t-bit string e. P runs simulator on (x, e) to get (a, e, z) and sends a to V ● Open: to reveal the commitment, P sends (e, z) to V, V checks (a, e, z)
  • 23. Non-Interactive Σ-protocol ● No interaction, no Verifier ● w. public Random Oracle ● e = R(a) ● not provably secure
  • 24. Signature From Σ-protocol ● (x; w) ● public key x ● private key w ● message m ● e = R(a++m) ● (a, z) is a signature ● as hard to break as to compute w from x (in ROM)
  • 25. Conclusion ● One template for many protocols ● Highly efficient ● Composable ● Provably secure ● Makes things easier ● Crypto is HARD anyway...