Falcon算法:Chapter 2 设计原理 (入门级讲解)(2)FALCON的NTRU简介与快速傅里叶采样

前文内容提过不再赘述,如术语未解释的一部分可以查看:
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,qN。NTRU秘密集包含四个多项式 f , g , F , G ∈ Z [ x ] / ( ϕ ) f,g,F,G\in \mathbb{Z}[x]/(\phi) f,g,F,GZ[x]/(ϕ),他们满足等式: f G − g F = q   m o d ϕ fG-gF=q \ mod \phi fGgF=q modϕ
f f f可逆时,给出 h = g ⋅ f − 1   m o d   q h=g\cdot f^{-1}\ mod \ q h=gf1 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=gf1 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 ∗
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值