Skip to content

Add Paillier-Blum modulus and small-factor proofs#15

Open
tob-joe wants to merge 5 commits intotrailofbits:mainfrom
tob-joe:add-small-factor-proof
Open

Add Paillier-Blum modulus and small-factor proofs#15
tob-joe wants to merge 5 commits intotrailofbits:mainfrom
tob-joe:add-small-factor-proof

Conversation

@tob-joe
Copy link

@tob-joe tob-joe commented Nov 26, 2025

Summary

Implements Paillier-Blum modulus proof (Figure 12) and small-factor proof (Figure 26) from Canetti et al. (2024) "UC Non-Interactive, Proactive, Threshold ECDSA with Identifiable Aborts" (CGGMP21).

Implementation

  • Paillier-Blum modulus proof with safe prime generation (p = 2q+1 where both prime)
  • Small-factor proof demonstrating RSA modulus has factors above threshold 2^ℓ
  • Shared crypto helpers module (is_probably_prime, extended_gcd, jacobi_symbol, generate_prime)
  • Comprehensive verifier checks (Jacobi symbol, compositeness, p ≠ q)
  • Optimized dev profile (opt-level = 2) for faster test execution

Testing

  • Paillier-Blum: 28 tests covering completeness, soundness, and edge cases
  • Small-factor: 8 tests covering protocol requirements and verification

Resolves #14

🤖 Generated with Claude Code

tob-joe and others added 5 commits November 25, 2025 17:04
Changes:
- Updated trait definition to use const MARK
- Modified derive macro to generate constants instead of methods
- Updated documentation to reflect the new API
- Adapted test to use constant reference for custom marks

Resolves trailofbits#6

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

Co-Authored-By: Claude <noreply@anthropic.com>
Add deny(warnings) and deny(clippy::pedantic), fix all warnings.

Resolves trailofbits#12

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

Co-Authored-By: Claude <noreply@anthropic.com>
Implements Small-Factor Proof from Figure 26 (Canetti et al. 2024). Proves
RSA modulus N₀ = pq has factors p, q > 2^ℓ using Pedersen commitments.

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

Co-Authored-By: Claude <noreply@anthropic.com>
- Implement Paillier-Blum modulus proof (Figure 12) with safe prime generation
- Add Jacobi symbol verification, compositeness check, and p ≠ q validation
- Extract shared crypto helpers (is_probably_prime, extended_gcd, jacobi_symbol, generate_prime) to examples/crypto_helpers.rs
- Add opt-level = 2 to dev profile for faster test execution
- All 28 Paillier-Blum tests and 8 small-factor tests pass

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

Co-Authored-By: Claude <noreply@anthropic.com>
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.

Add small-factor proof from CGGMP21

1 participant