Botan 3.7.1
Crypto and TLS for C&
|
Represents the polynomial ring GF(q)[y]/F(y) where F(y) is the modulus polynomial in GF(q)[y] of degree t. More...
#include <cmce_poly.h>
Classes | |
struct | Big_F_Coefficient |
Represents a non-zero coefficient of the modulus F(y) (which is in GF(q)[y]). More... | |
Public Member Functions | |
Classic_McEliece_Polynomial_Ring (std::vector< Big_F_Coefficient > poly_big_f_coef, CmceGfMod poly_f, size_t t) | |
Construct a polynomial ring GF(q)[y]/F(y) by defining the polynomial modulus F(y), the GF(q) modulus f(z) and the degree of F(y). | |
std::optional< Classic_McEliece_Minimal_Polynomial > | compute_minimal_polynomial (StrongSpan< const CmceIrreducibleBits > seed) const |
Compute the minimal polynomial g of polynomial created from a seed . | |
size_t | degree () const |
The degree of polynomials in this ring (and of F(y)). | |
Classic_McEliece_Polynomial | multiply (const Classic_McEliece_Polynomial &a, const Classic_McEliece_Polynomial &b) const |
CmceGfMod | poly_f () const |
Represents the polynomial ring GF(q)[y]/F(y) where F(y) is the modulus polynomial in GF(q)[y] of degree t.
This class contains a modulus polynomial F(y) and the GF(q) modulus f(z). It is used to create and operate with Classic_McEliece_Polynomials.
Definition at line 104 of file cmce_poly.h.
|
inline |
Construct a polynomial ring GF(q)[y]/F(y) by defining the polynomial modulus F(y), the GF(q) modulus f(z) and the degree of F(y).
F(y) is given by a vector of Big_F_Coefficients, where each one represents a monomial of F(y). However, the highest monomial must not be specified, since it is always 1.
poly_big_f_coef | The non-zero coefficients of F(y) in GF(q)[y] WITHOUT the highest monomial. |
poly_f | The modulus f(z) of GF(q). |
t | The polynomial degree of the ring (and of F(y)). |
Definition at line 127 of file cmce_poly.h.
std::optional< Classic_McEliece_Minimal_Polynomial > Botan::Classic_McEliece_Polynomial_Ring::compute_minimal_polynomial | ( | StrongSpan< const CmceIrreducibleBits > | seed | ) | const |
Compute the minimal polynomial g of polynomial created from a seed
.
seed | over the ring GF(q)[y] according to ISO Section 8.1 Step 3. |
Definition at line 72 of file cmce_poly.cpp.
References Botan::concat(), degree(), Botan::GF_Mask::is_zero(), multiply(), poly_f(), and Botan::CT::unpoison().
Referenced by Botan::Classic_McEliece_PrivateKeyInternal::check_key().
|
inline |
The degree of polynomials in this ring (and of F(y)).
Definition at line 135 of file cmce_poly.h.
Referenced by compute_minimal_polynomial().
Classic_McEliece_Polynomial Botan::Classic_McEliece_Polynomial_Ring::multiply | ( | const Classic_McEliece_Polynomial & | a, |
const Classic_McEliece_Polynomial & | b ) const |
Definition at line 30 of file cmce_poly.cpp.
References Botan::b, and Botan::Classic_McEliece_Polynomial::coef_at().
Referenced by compute_minimal_polynomial().
|
inline |
Definition at line 130 of file cmce_poly.h.
Referenced by compute_minimal_polynomial().