定义参数
( N , p , q ) (N,p,q) (N,p,q), L f , L g , L ϕ , L m \mathcal{L}_f,\mathcal{L}_g,\mathcal{L}_\phi,\mathcal{L}_m Lf,Lg,Lϕ,Lm为 N − 1 N-1 N−1阶多项式,系数为整数。 p , q p,q p,q并不一定需要是质数,但要满足 g c d ( p , q ) = 1 , q > p gcd(p,q)=1,q>p gcd(p,q)=1,q>p,工作在环 R = Z [ X ] / ( X N − 1 ) R=\mathbb{Z}[X]/(X^N-1) R=Z[X]/(XN−1),对于 F ∈ R F\in R F∈R,可记为 F = ∑ i = 0 N − 1 F i x i = [ F 0 , F 1 , . . . , F N − 1 ] F=\sum\limits_{i=0}^{N-1}F_ix^i=[F_0,F_1,...,F_{N-1}] F=i=0∑N−1Fixi=[F0,F1,...,FN−1]
秘钥生成
随机选择两个
f
,
g
∈
L
g
f,g\in \mathcal{L}_g
f,g∈Lg,满足
F
q
∗
f
≡
1
m
o
d
q
,
F
p
∗
f
≡
1
m
o
d
p
.
F_q*f\equiv1 \mod q,F_p* f\equiv 1 \mod p.
Fq∗f≡1modq,Fp∗f≡1modp.
公钥为:
h
≡
F
q
∗
g
m
o
d
q
h\equiv F_q*g \mod q
h≡Fq∗gmodq,私钥为
f
f
f。
加密
m
∈
L
m
m\in \mathcal{L}_m
m∈Lm
e
≡
p
ϕ
∗
h
+
m
m
o
d
q
e\equiv p\phi*h+m \mod q
e≡pϕ∗h+mmodq
解密
m
=
F
p
∗
(
f
∗
e
m
o
d
q
)
m
o
d
p
=
F
p
∗
(
f
∗
p
ϕ
∗
h
+
f
∗
m
m
o
d
q
)
m
o
d
p
=
F
p
∗
(
f
∗
p
ϕ
∗
F
q
∗
g
+
f
∗
m
m
o
d
q
)
m
o
d
p
=
F
p
∗
(
p
ϕ
∗
g
+
f
∗
m
m
o
d
q
)
m
o
d
p
=
m
m
o
d
p
\begin{align} m&=F_p*(f*e \mod q) \mod p\\ &=F_p*(f*p\phi*h+f*m \mod q)\mod p\\ &=F_p*(f*p\phi*F_q*g+f*m \mod q)\mod p\\ &=F_p*(p\phi*g+f*m \mod q)\mod p\\ &=m \mod p \end{align}
m=Fp∗(f∗emodq)modp=Fp∗(f∗pϕ∗h+f∗mmodq)modp=Fp∗(f∗pϕ∗Fq∗g+f∗mmodq)modp=Fp∗(pϕ∗g+f∗mmodq)modp=mmodp
注意,合理的参数选择会使得极大概率
a
=
p
ϕ
∗
g
+
f
∗
m
a=p\phi*g+f*m
a=pϕ∗g+f∗m的所有系数都在
[
−
q
/
2
,
q
/
2
]
[-q/2,q/2]
[−q/2,q/2]之间,即可以省去取模。
L
m
=
{
m
∈
R
,
系数
[
−
1
2
(
p
−
1
)
,
1
2
(
p
−
1
)
]
}
\mathcal{L}_m=\{m\in R,系数[-\frac{1}{2}(p-1),\frac{1}{2}(p-1)]\}
Lm={m∈R,系数[−21(p−1),21(p−1)]}。
定义
L
(
d
1
,
d
2
)
=
{
F
∈
R
:
有
d
1
个
1
,
d
2
个
−
1
,
剩余为
0
}
\mathcal{L}(d_1,d_2)=\{F\in R:有d_1个1,d_2个-1,剩余为0\}
L(d1,d2)={F∈R:有d1个1,d2个−1,剩余为0}
L
f
=
L
(
d
f
,
d
f
−
1
)
,
L
g
=
L
(
d
g
,
d
g
)
,
L
ϕ
=
L
(
d
,
d
)
\mathcal{L}_f=\mathcal{L}(d_f,d_f-1),\mathcal{L}_g=\mathcal{L}(d_g,d_g),\mathcal{L}_\phi=L(d,d)
Lf=L(df,df−1),Lg=L(dg,dg),Lϕ=L(d,d).
∣
f
∣
2
=
2
d
f
−
1
−
N
−
1
,
∣
g
∣
2
=
2
d
g
,
∣
ϕ
∣
2
=
2
d
.
|f|_2=\sqrt{2d_f-1-N^{-1}},|g|_2=\sqrt{2d_g},|\phi|_2=\sqrt{2d}.
∣f∣2=2df−1−N−1,∣g∣2=2dg,∣ϕ∣2=2d.
则令
f
∈
L
f
,
g
∈
L
g
,
ϕ
∈
L
ϕ
f\in \mathcal{L}_f,g\in \mathcal{L}_g,\phi\in \mathcal{L}_\phi
f∈Lf,g∈Lg,ϕ∈Lϕ
定义 ∣ F ∣ ∞ = max 1 ≤ i ≤ N F i − min 1 ≤ i ≤ N F i |F|_\infty=\max\limits_{1\le i\le N}{F_i}-\min\limits_{1\le i\le N}{F_i} ∣F∣∞=1≤i≤NmaxFi−1≤i≤NminFi, ∣ F ∣ 2 = ( ∑ i = 1 N ( F i − F ‾ ) 2 ) 1 / 2 |F|_2=(\sum\limits_{i=1}^{N}(F_i-\overline{F})^2)^{1/2} ∣F∣2=(i=1∑N(Fi−F)2)1/2, F ‾ 为平均值 \overline{F}为平均值 F为平均值.
为了解密成功,需要满足如下条件:
∣
f
∗
m
+
p
ϕ
∗
g
∣
∞
<
q
.
为满足上述条件,令
∣
f
∗
m
∣
∞
≤
q
/
4
a
n
d
∣
p
ϕ
∗
g
∣
∞
≤
q
/
4.
|f*m+p\phi*g|_\infty<q.\\ 为满足上述条件,令|f*m|_\infty\le q/4 \ and |p\phi*g|_\infty\le q/4.
∣f∗m+pϕ∗g∣∞<q.为满足上述条件,令∣f∗m∣∞≤q/4 and∣pϕ∗g∣∞≤q/4.
NIST
round 1
三元多项式 是指系数在
{
−
1
,
0
,
1
}
\{-1,0,1\}
{−1,0,1}中的多项式
T
\mathcal{T}
T是一个度最大为
n
−
2
n-2
n−2的非0三元多项式
非负相关属性 ,
∑
i
v
i
v
i
+
1
≥
0
\sum_iv_iv_{i+1}\ge0
∑ivivi+1≥0,即所有相临系数的积之和为非负数
T
+
\mathcal{T}_+
T+表示满足非负相关属性的
T
\mathcal{T}
T
T
(
d
)
\mathcal{T}(d)
T(d)表示有
d
2
个
1
和
d
2
个
−
1
\frac{d}{2}个1和\frac{d}{2}个-1
2d个1和2d个−1.
NTRU参数集
{
n
,
p
,
q
,
L
f
,
L
g
,
L
r
,
L
m
,
L
i
f
t
}
\{n,p,q,\mathcal{L}_f,\mathcal{L}_g,\mathcal{L}_r,\mathcal{L}_m,Lift\}
{n,p,q,Lf,Lg,Lr,Lm,Lift},
n
,
p
,
q
n,p,q
n,p,q为互质的正整数,
L
f
,
L
g
,
L
r
,
L
m
\mathcal{L}_f,\mathcal{L}_g,\mathcal{L}_r,\mathcal{L}_m
Lf,Lg,Lr,Lm为满足特定条件的多项式集合,
S
3
‾
(
L
i
f
t
(
m
)
)
=
m
\underline{S3}(Lift(m))=m
S3(Lift(m))=m,其中,
S
3
S3
S3表示多项式环的系数在
m
o
d
3
mod 3
mod3域上。
(
p
⋅
r
⋅
g
+
f
⋅
L
i
f
t
(
m
)
)
m
o
d
(
x
n
−
1
)
(p\cdot\mathbf{r}\cdot\mathbf{g}+\mathbf{f}\cdot Lift(\mathbf{m})) mod \ (x^n-1)
(p⋅r⋅g+f⋅Lift(m))mod (xn−1)
上式的系数要在
[
−
q
/
2
,
q
/
2
−
1
]
[-q/2,q/2-1]
[−q/2,q/2−1]之间。