cralgebra
A fast crypto algebra library.
Status
The current version is to be considered unstable, and breaking changes are possible. New features and fixes will be added in small incremental releases.
- ✅: complete
- ⚡: partial
- ❌: none
| Feature | Completion | Optimization |
|---|---|---|
| Modular arithmetic | ✅ | ✅ |
| Big integers | ⚡ | ❌ |
| Cyclotomic polynomials | ⚡ | ❌ |
| Primality testing | ⚡ | ⚡ |
| Uniform sampling | ⚡ | ✅ |
| Discrete Gaussian sampling | ⚡ | ✅ |
"Complete" optimization here refers to using optimal algorithms. SIMD and/or inline assembly may also be considered in the future.
Using the API
See the documentation.
Performance
Run this to measure latencies for different operations:
cargo run --example bench --release
This Cargo.toml configuration is recommended for maximum performance:
[]
= 3
= false
= false
= true
= 'unwind'
= false
= 1
= false
Further tips:
- Use the most specific type or method for each task.
- Use
MontgomeryDyninstead ofModularDynif doing multiple operations in series, containing multiplications.
Alternative projects
- feanor-math: more featured, with a different approach to API organization.