Skip to content

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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
- 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 <[email protected]>
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