From 1d8fb8e6bd60f20b21d592d78117842cb253214b Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Wed, 16 Apr 2025 08:24:31 +0000 Subject: [PATCH] =?UTF-8?q?Updated=20=E5=AE=9E=E7=8E=B0Kyber=E6=89=80?= =?UTF-8?q?=E9=9C=80=E7=9A=84=E5=A4=9A=E9=A1=B9=E5=BC=8F=E5=92=8C=E7=BA=BF?= =?UTF-8?q?=E6=80=A7=E4=BB=A3=E6=95=B0=E7=9F=A5=E8=AF=86=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 实现Kyber所需的多项式和线性代数知识.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/实现Kyber所需的多项式和线性代数知识.md b/实现Kyber所需的多项式和线性代数知识.md index 6564a3a..8981cc9 100644 --- a/实现Kyber所需的多项式和线性代数知识.md +++ b/实现Kyber所需的多项式和线性代数知识.md @@ -45,7 +45,9 @@ ML-KEM规范中听起来最令人害怕的部分之一是数论变换。好消 $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$$ +```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 +``` 从技术上来说,NTT(数论变换)代表的是一个由128个多项式组成的序列,每个多项式有两个系数。但您不需要深入考虑这一点,您可以使用同样的数据结构,例如 `[256]uint16`,来表示 $R_q$ 和 $T_q$ 中的元素。不过,在你的类型系统中为它们分配不同的类型是个好主意,这样可以避免混淆。