1.2 KiB
1.2 KiB
infidel_poly
C polynomial library for ECC based cryptography.
References
- Libntru : Polynomial multiplication and inversion commit
- Sanfoundry : C Program to Evaluate given polynomial equation
Libntru Notes
Libntru use some custom data types declared in types.h
.
uint8_t
: Unsigned 8-bit integeruint16_t
: Unsigned 16-bit integer
NtruIntPoly
: Polynomial with 16-bit integer coefficients
typedef struct NtruIntPoly {
uint16_t N;
int16_t coeffs[NTRU_INT_POLY_SIZE];
} NtruIntPoly;
NtruTernPoly
: Ternary polynomial, all coefficients are equal to -1, 0, or 1.
typedef struct NtruTernPoly {
uint16_t N;
uint16_t num_ones;
uint16_t num_neg_ones;
uint16_t ones[NTRU_MAX_ONES];
uint16_t neg_ones[NTRU_MAX_ONES];
} NtruTernPoly;
Key Components
- Basic Evaluation on generated equation
- Basic Operation (Addition, Reduction, Multiplication, Division)
- Advance Operation (Inversion)
- Bitwise for array
- Pointer management for polynomial indexes
Random Generators