参考文献:
- [LS19] Lyubashevsky V, Seiler G. NTTRU: Truly Fast NTRU Using NTT[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2019: 180-201.
- [DHK+23] Duman J, Hövelmanns K, Kiltz E, et al. A thorough treatment of highly-efficient NTRU instantiations[C]//IACR International Conference on Public-Key Cryptography. Cham: Springer Nature Switzerland, 2023: 65-94.
- [KP23] Kim J, Park J H. NTRU+: compact construction of NTRU using simple encoding method[J]. IEEE Transactions on Information Forensics and Security, 2023.
- NTRU 加密方案
- NTTRU:兼容 NTT 算法
- FO-like Transformation in QROM
文章目录
- Worst-Case to Average-Case Decryption Error
- ACWC0
- GOTP
- ACWC
- NTRU
- Semi-generalized One-time Pad
- SOLP
- ACWC2
- FO-Equivalent Transform Without Re-encryption
- NTRU+
自从 [LS19] 提出了 NTT-friendly NTRU-based KEM,其计算效率终于可以和 MLWE/RLWE-based KEM 相竞争,并且 NTRU 具有更紧凑的密文(但是使用模切换之后并不明显)。但是其 Worst-Case Decryption Error 远远大于 Average-Case Decryption Error,这可能被 decryption-error attacks 所利用,导致私钥信息的泄露。
多项式环 R q = Z q [ X ] / ( F ( X ) ) R_q=\mathbb Z_q[X]/(F(X)) Rq=Zq[X]/(F(X)),NTRU 的私钥形如 f = p f ′ + 1 f=pf'+1 f=pf′+1,公钥形如 h = p g / f h=pg/f h=pg/f,其中 p p p 是明文模数。加密是 c = h r + m ∈ R q c=hr+m \in R_q c=hr+m∈Rq,其中 r ← η r \gets \eta r←η 是短的随机多项式, m ∈ R p m \in R_p m∈Rp 是消息。解密是 [ f c ] p ∈ R p [fc]_p \in R_p [fc]p∈Rp,只要满足 ∥ p ( g r + f ′ m ) + m ∥ ∞ < q / 2 \|p(gr+f'm)+m\|_\infty < q/2 ∥p(gr+f′m)+m∥∞<q/2 即可解密正确。
PKE 最基本的要求是 Average-Case Decryption Error 可忽略。为了抵御 decryption-error attacks,还需要保证 Worst-Case Decryption Error 也是可忽略的。
- 在 third-round NTRU 中,设置 m , r ← ψ k m,r \gets \psi_k m,r←ψk 并选取相对较大的 q q q,获得了 perfect correctness error,从而 Worst-Case Decryption Error 也是零。
- 在 NTTRU 中,使用更小空间中的消息 m ′ ∈ M m' \in M m′∈M 生成 m = H ( m ′ ) ∈ R p m=H(m') \in R_p m=H(m′)∈Rp,然后使用 NTRU 加密 m m m,使用 G ( m ) G(m) G(m) 对消息 m ′ m' m′ 做一次一密。由于明文空间缩小了,于是随机的 ( s k , p k ) (sk,pk) (sk,pk) 存在某些 m ′ m' m′ 使得解密失败的概率可忽略。
Worst-Case to Average-Case Decryption Error
[DHK+23] 提出了两种转换方法,它们都将 Average-Case OW-CPA PKE 转换到 Worst-Case OW-CPA PKE,在 ROM 以及 QROM 都工作,安全归约请看论文。
ACWC0
这个方法类似于 [LS19] 或者 [FO99],先将随机数用 PKE 加密,然后再把消息用随机数加密,这两部分组成了最终的密文。
好处:没有解密失败率的损失,支持任意分布的消息。
坏处:密文携带的一些冗余(比如 256-bit 的协商密钥)。
GOTP
[DHK+23] 定义了 on-time pad 的一般化:
最简单的 GOTP 就是:设置 X , U , Y = { 0 , 1 } n X,U,Y = \{0,1\}^n X,U,Y={0,1}n,以及 ψ X , ψ Y , ψ U = U ( { 0 , 1 } n ) \psi_X,\psi_Y,\psi_U = \mathcal U(\{0,1\}^n) ψX,ψY,ψU=U({0,1}n),这就是 on-time pad 本身。
ACWC
这个转换把 PKE 的明文空间分为 M = M 1 × M 2 M=M_1 \times M_2 M=M1×M2,对应的分布是 ψ M = ψ M 1 × ψ M 2 \psi_M = \psi_{M_1} \times \psi_{M_2} ψM=ψM1×ψM2。假设消息空间是 M ′ M' M′,给定 G O T P : M ′ × U → M 2 GOTP: M' \times U \to M_2 GOTP:M′×U→M2 以及随机神谕 F : M 1 → U F: M_1 \to U F:M1→U。转换过程是:
好处:密文长度不变。
坏处:解密失败率有损失,消息必须服从 GOTP 所要求的分布。
NTRU
基于 R N T R U η RNTRU_{\eta} RNTRUη(KeyGen 中的 ( f , h = p g / f ) (f,h=pg/f) (f,h=pg/f) 实例)和 R L W E η RLWE_{\eta} RLWEη(Enc 中的 ( h , c = h r + m ) (h,c=hr+m) (h,c=hr+m) 实例),
- 设置 p = 2 p=2 p=2 以及 η = ψ 2 \eta=\psi_2 η=ψ2,利用 ACWC 把对应的 OW-CPA NTRU 转换成 OW-CPA NTRU-A,然后使用 FO 把它转换成 IND-CCA KEM
- 设置 p = 3 p=3 p=3 以及 η = U ( { − 1 , 0 , 1 } ) \eta=\mathcal U(\{-1,0,1\}) η=U({−1,0,1}),利用 ACWC 把对应的 OW-CPA NTRU 转换成 OW-CPA NTRU-B,然后使用 FO 把它转换成 IND-CCA KEM
- 设置 p = 3 p=3 p=3 以及 ψ 2 m o d ± 3 \psi_2 \bmod^\pm{3} ψ2mod±3,利用 ACWC 把对应的 OW-CPA NTRU 转换成 OW-CPA NTRU-C,然后使用 FO 把它转换成 IND-CCA KEM
Semi-generalized One-time Pad
[KP23] 针对 NTRU 天然具有的 Randomness Recoverability(不需要 f f f,只给定 m m m,则 r = ( c − m ) h − 1 r=(c-m)h^{-1} r=(c−m)h−1)、Message Recoverability(不需要 f f f,只给定 r r r,则 m = c − h r m=c-hr m=c−hr)、Injectivity 性质,提出了更简单的 GOLP,并且移除了 FO 中的 Re-encryption 步骤。
SOLP
[KP23] 提出了 GOTP 的一种简单变体:
它只需要保证消息的隐藏性,对于随机性的要求从隐藏性替换为了刚性。
ACWC2
[KP23] 利用 SOTP 给出了新的 ACWC 转换:
它把 Average-Case OW-CPA PKE 转换到 Worst-Case IND-CPA PKE,在 ROM 和 QROM 都工作,并且比 ACWC 更紧。安全归约请看论文。
FO-Equivalent Transform Without Re-encryption
进一步的,利用 PKE 的 MR 和 RR 性质,可以消除 FO 中的 Re-encryption 步骤,直接比较 RO 产生的加密随机带即可。
在原始的 FO 转换中,强制敌手的解密查询的输入是 well-formed 密文(用 Enc Orcale 获得),从而不泄露额外的知识。即使 m ′ = m m'=m m′=m,对于不同的 r ′ ′ ≠ r r'' \neq r r′′=r,也不能保证 c = E n c ( p k , m ′ ; r ′ ′ ) c=Enc(pk,m';r'') c=Enc(pk,m′;r′′),因此 Re-encryption 是不可缺少的。但是因为 NTRU 具有 RR(实际构造中用到)和 MR(归约中用到)性质,那么 ( m ′ , r ′ ) (m',r') (m′,r′) 都可以从密文中恢复,从而只需测试 r ′ = r ′ ′ r'=r'' r′=r′′ 即可。
NTRU+
SOTP 实例化:
使用 p = 3 p=3 p=3 和 η = ψ 1 \eta=\psi_1 η=ψ1, 利用 ACWC2 将对应的 OW-CPA NTRU转化为 INC-CPA NTRU+,最后使用 F O ‾ ⊥ \overline{FO}^\perp FO⊥ 转化为 IND-CCA KEM