NTRUSign

  • 什么是NTRUSign1

NTRUSIGN [15] is a special instantiation of GGH with the compact lattices from the NTRU encryption scheme [12], which we briefly recall: we refer to [4,15] for more details. In the NTRU standards [4] being considered by IEEE P1363.1 [19], one selects N=251,q=128N = 251, q = 128. Let RR be the ring Z[X]/(XN1)Z[X]/(XN − 1) whose multiplication is denoted by .∗. Using resultants, one computes a quadruplet (f,g,F,G)R4(f,g,F,G) ∈ R^4 such that fGgF=qf ∗ G −g ∗ F = q in RR and ff is invertible mod qq, where ff and gg have 010–1 coefficients (with a prescribed number of 1), while FF and GG have slightly larger coefficients, yet much smaller than qq. This quadruplet is the NTRU secret key. Then the secret basis is the
following (2N)×(2N)(2N) × (2N) matrix:
NTRUSign
where fif_i denotes the coefficient of XiX^i of the polynomial ff . Thus, the lattice dimension is n=2Nn = 2N. Due to the special structure of RR, it turns out that a single row of RR is sufficient to recover the whole secret key. Because ff is chosen invertible mod qq, the polynomial h=g/f(mod  q)h = g/f (\mod q) is well defined in RR: this is the NTRU public key. Its fundamental property is that fhg(mod  q)f ∗ h ≡ g (\mod q) in RR. The polynomial hh defines the following (natural) public basis of the lattice:
NTRUSign
which implies that the lattice volume is qNq^N .
The messages are assumed to be hashed in {0,...,q1}2N\{0,...,q −1\}^{2N}. Let m{0,...,q1}2Nm ∈ \{0,...,q −1\}^{2N}
be such a hash. We write m=(m1,m2)\bold m = (\bold m_1,\bold m_2) with mi{0,...,q1}N\bold m_i ∈ \{0,...,q − 1\}^N . It is shown in [15] that the vector (s,t)Z2N(\bold {s,t}) ∈ Z^{2N} which we would obtain by applying Babai’s round-off CVP approximation algorithm to m\bold m using the secret basis RR can be alternatively computed using convolution products involving m1,m2\bold {m_1, m_2} and the NTRU secret key (f,g,F,G)(f,g,F,G). In practice, the signature is simply s and not (s,t)(\bold {s,t}), as t\bold t can be recovered from s\bold s thanks to hh.Besides, s\bold s might be further reduced mod qq, but its initial value can still be recovered because it is such that sm1\bold {s − m_1} ranges over a small interval (this is the same trick used in NTRU decryption). This gives rise for standard parameter choices to a signature
length of 251×7=1757251 × 7 = 1757 bits. While this signature length is much smaller than other 格上签名方案,例如GGH,但比起传统DSA方案,其签名还是太大。

  • NTRUSign的优势2
    NTRUSign 是Hofstein 等人针对R-NSS 签名算法的缺点而改进的一种新型数字签名算法,该算法的签名值是两个私钥的线性组合,这样就能抵抗Gentry 和Szydlo 的攻击。NTRUSign的安全性是基于格上的近似最近向量问题( app-CVP) 的困难问题。

1.**生成
a) 随机选择fgZNf,g∈ZN,并且满足系数分别有dfdgd_f、d_g个1,其余均为0。另外要求ffZqNZ^N_q
中可逆,逆元记做FqF_qNormboundNormbound为验证时使用的限。ZNZ^N表示最高次数为N1N - 1的多项式,ZqNZ^N_q表示最高次数为N1N - 1、系数模qq的多项式。
b) 计算: hFq×g(modq)h≡Fq × g( mod q)
c) 计算FGZNF,G∈Z^N,并且满足系数f×GF×g=qf × G - F × g = q,且
FfN/12‖F‖≈‖f‖\sqrt {N/12}GgN/12‖G‖≈‖g‖ \sqrt {N/12}
2.签名
a) 用hashhash函数作用于消息DD,得到ZqNZ^N_q上的多项式mm
b) 计算 B = [F×mq]{\text{B = }}\left[ {\frac{{ - F \times m}}{q}} \right],b = [f×mq]{\text{b = }}\left[ {\frac{{ - f \times m}}{q}} \right]
c) 计算签名值sf×B+F×b(mod  q)s≡f × B + F × b( \mod q)
3.验签
a) 与签名一样用hashhash 函数对消息DD 进行变换得到mm
b) 计算ts×h(modq)t≡s × h( mod q)
c) 验证s+tmNormbound‖s‖ + ‖t - m‖≤Normbound,若成立,则ss 是消息DD 的签名。

  • 运用
    Todo

  1. Nguyen, P. Q., & Regev, O. (2008). Learning a Parallelepiped: Cryptanalysis of GGH and NTRU Signatures. Journal of Cryptology, 22(2), 139–160. doi:10.1007/s00145-008-9031-0 ↩︎

  2. 李子臣,梁斓,孙亚飞,杨亚涛.基于NTRUSign的新型公钥基础设施的设计[J].计算机应用研究,2018,35(08):2421-2424. ↩︎