前文内容提过不再赘述,如术语未解释的一部分可以查看:
Falcon算法:Chapter 1 简介 (入门级讲解)
Falcon算法:Chapter 2 设计原理 (入门级讲解)(1)FALCON的GPV框架简介
2.3 NTRU格
为了紧凑型,我们使用NTRU格,且该格经过20年沉淀,安全性很靠谱。
2.3.1 NTRU格简介
给定 ϕ = x n + 1 , n = 2 k , q ∈ N ∗ \phi=x^n+1, n=2^k,q\in \mathbb{N}^* ϕ=xn+1,n=2k,q∈N∗。NTRU秘密集包含四个多项式 f , g , F , G ∈ Z [ x ] / ( ϕ ) f,g,F,G\in \mathbb{Z}[x]/(\phi) f,g,F,G∈Z[x]/(ϕ),他们满足等式: f G − g F = q m o d ϕ fG-gF=q \ mod \phi fG−gF=q modϕ
当 f f f可逆时,给出 h = g ⋅ f − 1 m o d q h=g\cdot f^{-1}\ mod \ q h=g⋅f−1 mod q。(h,f,g,F,G都是整数环上的多项式,但是h是系数还要模q)。
通常 h h h是公钥, f , g , F , G f,g,F,G f,g,F,G是私钥。
我们可以判断矩阵 [ 1 h 0 q ] \left[\begin{array}{c|c} 1&h\\ \hline 0&q \end{array}\right] [10hq]和 [ f g F G ] \left[\begin{array}{c|c} f&g\\ \hline F&G \end{array}\right] [fFgG]生成相同的格(后者化阶梯行矩阵可以得到前者)。前者是大多项式,后者是小多项式(前者是坏格基,后者是好格基,好格基才能求出能用的近向量,也就是前文的GPV中的v向量)。
在实践中,即使f,g都很小,得到的h也很难找到另一对f’和g’满足 h = g ′ ⋅ f ′ − 1 m o d q h=g'\cdot f'^{-1}\ mod \ q h=g′⋅f′−1 mod q。这个困难性构成了NTRU假设。
2.3.2 GPV实例化
- 公共基 A = [ 1 h ∗ ] \textbf{A}=\left[\begin{array}{c|c} 1&h^*\\ \end{array}\right] A=[1h∗](作者理解 h ∗

(2)FALCON的NTRU简介与快速傅里叶采样&spm=1001.2101.3001.5002&articleId=144827389&d=1&t=3&u=f2e4baa3454b4aa480963077ff9c335b)
1083

被折叠的 条评论
为什么被折叠?



