Skip to content

feat(Protocols): Sigma protocols and Schnorr identification#472

Open
ChristianoBraga wants to merge 2 commits intoleanprover:mainfrom
Beneficial-AI-Foundation:sigma_protocols_pr
Open

feat(Protocols): Sigma protocols and Schnorr identification#472
ChristianoBraga wants to merge 2 commits intoleanprover:mainfrom
Beneficial-AI-Foundation:sigma_protocols_pr

Conversation

@ChristianoBraga
Copy link
Copy Markdown

Summary

  • Add a SigmaProtocol class capturing the three-move structure of Sigma protocols, with completeness, special soundness, and special honest-verifier zero-knowledge (SHVZK) as class fields.
  • Add Schnorr's identification protocol as an instance of SigmaProtocol, over a cyclic group of prime order, with proofs of all three properties.

New files

  • Cslib/Systems/Distributed/Protocols/Cryptographic/Sigma/Basic.lean — Sigma protocol class
  • Cslib/Systems/Distributed/Protocols/Cryptographic/Sigma/SchnorrId.lean — Schnorr instance

References

  • Boneh & Shoup, A Graduate Course in Applied Cryptography, Sections 19.1 and 19.4

Test plan

  • lake build passes with no errors
  • CI workflow succeeds

Add Sigma protocol class (completeness, special soundness, SHVZK)
and Schnorr's identification protocol as an instance.
Comment thread Cslib/Systems/Distributed/Protocols/Cryptographic/Sigma/Basic.lean Outdated
Comment thread Cslib/Systems/Distributed/Protocols/Cryptographic/Sigma/Basic.lean
- Promote `simulate` from existential to class field in SigmaProtocol
- Add `nonDegenerate` field to prevent vacuous completeness proofs
- Add TODO to move SchnorrHelpers near ZMod
Copy link
Copy Markdown
Collaborator

@chenson2018 chenson2018 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to my comment on the other PR, can you please add a description of AI use? We don't have a hard-line stance against it, but it is helpful for us in reviewing, especially for a PR adding new definitions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants