infidel_poly/README.md
2022-04-16 15:38:03 +07:00

1.2 KiB

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