Zeebra implements a subset of computational algebra and number theory for zero-knowledge cryptography.
As the saying goes, you can either make software so simple that it obviously has no bugs, or so complicated that it has no obvious bugs. Zeebra emphasizes clear documentation, published references for algorithmic implementations, interoperability with Sage, and property-based testing for exhaustive test coverage.
- Big Integers
- Integer Factoring
- Finite Field Arithmetic for Large Finite Fields
- Univariate and Multivariate Polynomials over Finite Fields
- Linear Algebra over Finite Fields
- Number-Theoretic Transform (FFT over Finite Fields)
- Grobner Bases
- Polynomial System Solving via Grobner Basis Algorithms
I wrote Zeebra as an educational exercise. It is not yet complete or mature. It is not necessarily correct. For something more production-ready, please consider:
- arkworks-rs/algebra - Algebraic structures and operations for zkSNARKs
- dimforge/nalgebra - Linear Algebra library for the Rust programming language
- tspiteri/rug - Arbitrary-precision numbers
- axect/peroxide - Linear algebra library for machine learning