C polynomial library for ECC based cryptography.
Go to file
2022-04-16 15:38:03 +07:00
bin rand_poly initial setup 2022-04-16 15:38:03 +07:00
src rand_poly initial setup 2022-04-16 15:38:03 +07:00
tests rand_poly initial setup 2022-04-16 15:38:03 +07:00
.gitignore parent dir gitignore 2022-04-15 14:55:40 +07:00
LICENSE Initial commit 2022-04-15 02:57:41 -04:00
Makefile rand_poly initial setup 2022-04-16 15:38:03 +07:00
README.md rand_poly initial setup 2022-04-16 15:38:03 +07:00
test_util.o rand_poly initial setup 2022-04-16 15:38:03 +07:00
test.o rand_poly initial setup 2022-04-16 15:38:03 +07:00

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