Skip to content

Add enhanced NIZK proof context binding (2026/01 datatype)#468

Draft
benadida wants to merge 1 commit intomasterfrom
enhanced-nizk-context-binding
Draft

Add enhanced NIZK proof context binding (2026/01 datatype)#468
benadida wants to merge 1 commit intomasterfrom
enhanced-nizk-context-binding

Conversation

@benadida
Copy link
Owner

THIS IS A DRAFT

This enhancement cryptographically binds NIZK proofs to their specific context within an election, preventing proof transplantation attacks where proofs could theoretically be reused across different elections, questions, or voters.

Key changes:

  • Upgrade from SHA-1 to SHA-256 for challenge generation
  • Add ProofContext class to bind proofs to election/question/answer/voter
  • New datatype version: 2026/01/Election
  • Challenge reduced mod q (required since SHA-256 can exceed q)
  • Full backward compatibility with legacy elections (SHA-1)

Context binding format:
election:{hash}|question:{index}|answer:{index}|voter:{alias}

Files:

  • helios/crypto/algs.py: ProofContext class, SHA-256 generators
  • helios/workflows/homomorphic.py: Context-aware proof gen/verify
  • helios/datatypes/2026/01.py: New datatype definitions
  • helios/media/helios/jscrypto/*.js: JavaScript implementation
  • docs/crypto/context-binding.md: Technical documentation

🤖 Generated with Claude Code

This enhancement cryptographically binds NIZK proofs to their specific
context within an election, preventing proof transplantation attacks
where proofs could theoretically be reused across different elections,
questions, or voters.

Key changes:
- Upgrade from SHA-1 to SHA-256 for challenge generation
- Add ProofContext class to bind proofs to election/question/answer/voter
- New datatype version: 2026/01/Election
- Challenge reduced mod q (required since SHA-256 can exceed q)
- Full backward compatibility with legacy elections (SHA-1)

Context binding format:
  election:{hash}|question:{index}|answer:{index}|voter:{alias}

Files:
- helios/crypto/algs.py: ProofContext class, SHA-256 generators
- helios/workflows/homomorphic.py: Context-aware proof gen/verify
- helios/datatypes/2026/01.py: New datatype definitions
- helios/media/helios/jscrypto/*.js: JavaScript implementation
- docs/crypto/context-binding.md: Technical documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@benadida benadida marked this pull request as draft January 18, 2026 16:28
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.

1 participant