Project design

This commit is contained in:
infidel 2022-04-15 14:48:08 +07:00
parent c702fa9dd3
commit e098f57a87
6 changed files with 37 additions and 1 deletions

Binary file not shown.

View File

@ -6,12 +6,39 @@ C polynomial library for ECC based cryptography.
- **Libntru** : Polynomial multiplication and inversion [commit](https://github.com/tbuktu/libntru/commit/15423e7f5f44d5ef69cb4aa50eaa03c07a7ecad0)
- **Sanfoundry** : [C Program to Evaluate given polynomial equation](https://www.sanfoundry.com/c-program-polynomial-equation/)
## Libntru Notes
Libntru use some custom data types declared in `types.h`.
`NtruIntPoly` : Polynomial with 16-bit integer coefficients
```c
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.
```c
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

BIN
src/.poly.c.swp Normal file

Binary file not shown.

BIN
src/.types.h.swp Normal file

Binary file not shown.

4
src/poly.c Normal file
View File

@ -0,0 +1,4 @@
#include <stdio.h>
#include <stdlib.h>

5
src/types.h Normal file
View File

@ -0,0 +1,5 @@
/* Here we Declared our custom data types */
struct infPoly {
}