基于NTRU的零知识协议与服务器控制的基于身份的认证密钥交换
1. NTRU密码系统基础
NTRU是一种基于格的公钥密码系统,在NTRU - 2008中,密钥生成过程如下:
- 私钥$f$从集合${1 + 3F : F \in T (d_F, d_F)}^*$中选取。
- 多项式$g$从$T (d_g, d_g)$中随机选取。
- 公钥$h$通过公式$h = 3g \otimes(1 + 3F)^{-1}$计算得出。
同时,定义了关系$R_{2008}^{KEY}$:
$R_{2008}^{KEY} = {((-h, 1, h), (3F, 3g)) \in R_q^3 \times R_q^2 : (-h \otimes3F + 3g = h) \land(3F \in3T (d_F, d_F)) \land(3g \in3T (d_g, d_g))}$
需要注意的是,这些关系并不意味着$f$和$g$在$R_q$中可逆,对于NTRU - 1998,也不能保证$f$在$R_p$中可逆,但能保证$f$和$g$的$\ell_{\infty}$范数相对较短,除NTRU - 1998外,可使用多项式$f$和$g$解密密文。
2. 明文知识关系
NTRU的加密过程为:设$m$为明文,$r$为随机数,密文$c = m + h \otimes r$。对于NTRU - 1998和NTRU - 2008,$L_r$设为$T (d_r, d_r)$,定义关系$R_{1998}^{ENC} = R_{2008}^{ENC}$:
$R_{1998}^{ENC} = R_{2008}^{ENC} = {((h,
超级会员免费看
订阅专栏 解锁全文
702

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



