From 01d745d068e96a00dc48fb5281bc009b83730bb4 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Fri, 18 Apr 2025 02:13:56 +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, 2 insertions(+), 2 deletions(-) diff --git a/实现Kyber所需的多项式和线性代数知识.md b/实现Kyber所需的多项式和线性代数知识.md index 7fde0ce..50b17e0 100644 --- a/实现Kyber所需的多项式和线性代数知识.md +++ b/实现Kyber所需的多项式和线性代数知识.md @@ -59,11 +59,11 @@ $$ \downarrow $$ 如果你之前使用过蒙哥马利约简(Montgomery reduction)和蒙哥马利域(Montgomery domain),那么你应该已经熟悉将值映射到不同的域(在这里也是乘法运算更快)的概念。与蒙哥马利域类似,你用来表示元素的数据结构在域内和域外是相同的,但它们在语义上有不同的类型。 -你可以在不理解 NTT(数论变换)和 NTT⁻¹(数论变换的逆)背后的数学原理的情况下实现它们。需要注意的是,在 NTT 和 NTT⁻¹ 中有一个复杂的术语叫做 zeta。你需要预先计算它的128个可能的值。 +你可以在不理解 NTT(数论变换)和 NTT⁻¹(数论变换的逆)背后的数学原理的情况下实现它们。需要注意的是,在 NTT 和 NTT⁻¹ 中有一个复杂的术语叫做 $\zeta$ 。你需要预先计算它的128个可能的值。 NTT(数论变换)代表的加法和减法操作与多项式的加法和减法相同。只是不能混合匹配它们。(如果你有一个弱的类型系统或泛型,你甚至可以使用相同的函数。) -使用 NTT(数论变换)的整个原因是因为在 NTT 域中乘法运算更快。实际上,有一个叫做 `MultiplyNTTs` 的算法,你可以直接实现它。这个算法中有一个叫做 γ 的项,你需要像 NTT 中的 zeta 一样预先计算它。 +使用 NTT(数论变换)的整个原因是因为在 NTT 域中乘法运算更快。实际上,有一个叫做 `MultiplyNTTs` 的算法,你可以直接实现它。这个算法中有一个叫做 γ 的项,你需要像 NTT 中的 $\zeta$ 一样预先计算它。 ML-KEM(基于模块化学习误差问题的密钥封装机制)的特殊之处在于,NTT(数论变换)是网络传输格式的一部分,而不仅仅是一个幕后优化。因为加密和解密密钥是直接以它们的 NTT 表示形式进行序列化和反序列化的。[[5](#user-content-anchor-ref5)]