mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-11 03:26:17 +08:00
Updated 实现Kyber所需的多项式和线性代数知识 (markdown)
parent
e2606c7969
commit
09ee862f7b
@ -43,6 +43,10 @@ ML-KEM规范中听起来最令人害怕的部分之一是数论变换。好消
|
||||
|
||||
你需要知道的是,数论变换(NTT)是表示多项式的一种不同方式。每个多项式,或者说是 $R_q$ 中的一个元素,都可以映射到 $T_q$ (NTT域)中的一个元素,并且可以反向映射回去。执行这种映射的函数称为NTT,而执行反向映射的函数称为逆NTT(或 $NTT^{-1}$ )。 $T_q$ 中的一个元素被称为“NTT代表”,用带帽子的字母表示,比如 $\hat{f}$,并且像多项式一样存储:作为256个模 $q$ 的整数。
|
||||
|
||||
$T_q$ 中的元素看起来象这样:
|
||||
|
||||
$$\hat{g} = (\hat{g}_{0,0} + \hat{g}_{0,1}X, \hat{g}_{1,0} + \hat{g}_{1,1}X, ..., \hat{g}_{127,0} + \hat{g}_{127,1}X) \in T_q$$
|
||||
|
||||
从技术上来说,NTT(数论变换)代表的是一个由128个多项式组成的序列,每个多项式有两个系数。但您不需要深入考虑这一点,您可以使用同样的数据结构,例如 `[256]uint16`,来表示
|
||||
$R_q$ 和 $T_q$ 中的元素。不过,在你的类型系统中为它们分配不同的类型是个好主意,这样可以避免混淆。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user