mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-11 03:26:17 +08:00
Updated 实现Kyber所需的多项式和线性代数知识 (markdown)
parent
3d9b02fca8
commit
062377d5fd
@ -13,7 +13,7 @@
|
||||
# 多项式
|
||||
一个多项式是环 $R_q$ 的一个元素[[3](#user-content-anchor-ref3)],看起来像这样:
|
||||
|
||||
$$f = f_0 + f_1 X + f_2 X^2 + \ldots + f_{255} X^{255}$$
|
||||
$$f = f_0 + f_1 X + f_2 X^2 + \cdots + f_{255} X^{255}$$
|
||||
|
||||
但你甚至不需要知道这些。对你作为一个实施者来说,一个ML-KEM多项式就是一个有256个系数的数组。每个系数都是一个整数模 $q$,其中 $q = 3329$。一个系数数组被称为在 $\mathbb{Z}_q^{256}$ 中,因为它由 256 个系数组成,每个系数都在 $\mathbb{Z}_q$,即整数模 $q$。
|
||||
|
||||
@ -46,7 +46,7 @@ ML-KEM规范中听起来最令人害怕的部分之一是数论变换。好消
|
||||
$T_q$ 中的元素看起来象这样:
|
||||
|
||||
```math
|
||||
\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
|
||||
\hat{g} = (\hat{g}_{0,0} + \hat{g}_{0,1}X, \hat{g}_{1,0} + \hat{g}_{1,1}X, \cdots, \hat{g}_{127,0} + \hat{g}_{127,1}X) \in T_q
|
||||
```
|
||||
|
||||
从技术上来说,NTT(数论变换)代表的是一个由128个多项式组成的序列,每个多项式有两个系数。但您不需要深入考虑这一点,您可以使用同样的数据结构,例如 `[256]uint16`,来表示
|
||||
|
Loading…
x
Reference in New Issue
Block a user