C polynomial library for ECC based cryptography.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
infidel 98a5ac0535 remove bin remnants 2 years ago
src rand_poly initial setup 2 years ago
tests rand_poly initial setup 2 years ago
.gitignore remove bin remnants 2 years ago
LICENSE Initial commit 2 years ago
Makefile rand_poly initial setup 2 years ago
README.md rand_poly initial setup 2 years ago
test.o rand_poly initial setup 2 years ago
test_util.o rand_poly initial setup 2 years ago

README.md

infidel_poly

C polynomial library for ECC based cryptography.

References

Libntru Notes

Libntru use some custom data types declared in types.h.

uint8_t : Unsigned 8-bit integer uint16_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