In NTRUEncryption, I seen the trucated polynimials, but I cannot understand the trunacated polynomial calculation.
So, could tell me anyone How we calculate the truncated polynomial?
Asked
Active
Viewed 2,631 times
2

sravan nagiri
- 95
- 3
- 10
-
2I'm voting to close this question as off-topic because this is not directly related to programming. [crypto.se] or [math.se] are better suited for questions like this. – Artjom B. Jan 31 '16 at 10:36
-
Stack Overflow is a site for programming and development questions. This question appears to be off-topic because it is not about programming or development. See [What topics can I ask about here](http://stackoverflow.com/help/on-topic) in the Help Center. Perhaps [Mathematics Stack Exchange](http://math.stackexchange.com/) would be a better place to ask. – jww Jul 06 '18 at 02:17
-
Also see OnBoard Security's [NTRU Resources](https://www.onboardsecurity.com/products/ntru-crypto/ntru-resources). – jww Jul 06 '18 at 02:19
1 Answers
2
The polynomials are truncated in the sense that they only have coefficients up to a certain degree.
Here is how you truncate the product of two truncated polynomials (the sum is trivial):
Assume you have two truncated polynomials, i.e. two polynomials of degree no greater than n-1
a = a[0] + a[1]X + ... + a[n-1]X^(n-1)
b = b[0] + b[1]X + ... + b[n-1]X^(n-1)
Then their "truncated" product is defined as the polynomial
a * b = c[0] + c[1]X + ... +c[n-1]X^(n-1)
where the c[k]
coefficients are computed as follow:
- Reverse
b[0]..b[n-1]
to getb[n-1]..b[0]
. - Rotate the result of step 1 above
k+1
times to the right and getb[k]..b[0]b[n-1]..b[k+1]
- Denote with
b_k[0]..b_k[n-1]
the array calculated in 2.
Now define
c[k] = a[0]b_k[0] + a[1]b_k[1] + ... + a[n-1]b_k[n-1].
This operation can also be made by multiplying the polynomials a
and b
in the usual way and then truncating the result to the degree n-1
. The reason for the algorithm above is to avoid computing coefficients that will not be used in the final result.

Leandro Caniglia
- 14,495
- 4
- 29
- 51