C polynomial library for ECC based cryptography.
Go to file
2022-04-15 14:56:07 +07:00
src vim swp files patter .*.swp/swo 2022-04-15 14:54:53 +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 Readme update 2022-04-15 14:20:51 +07:00
README.md Project design 2022-04-15 14:48:08 +07:00

infidel_poly

C polynomial library for ECC based cryptography.

References

Libntru Notes

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

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