一种高安全性和高性能水平的NTRU加密新设计
摘要
多维QTRU公钥密码系统通过使用四元数代数替代NTRU中的原始环结构,从而改进了NTRU。本文提出QMNTR,即通过引入具有两个公钥和五个私钥的新数学结构对QTRU进行的改进。该修改增强了公钥系统的鲁棒性和安全性。
关键词 :NTRU,QMNTR,QTRU,四元数代数。
引言
在我们这个时代计算能力呈指数级增长的背景下,设计高速密码系统的动机日益增强。NTRU 是一种由 Jeffrey 等人于1998年提出的概率性公钥加密系统[1]。它相较于基于经典算术运算的知名且广泛应用的系统(如 RSA、ECC 等)具有显著优势。其计算上的优势使 NTRU 成为多种应用的理想选择,这也促使许多研究人员对其数学结构进行研究、分析和改进。
2008 年,Malekian 等人[2]通过将具有整数系数的截断多项式环替换为结合且非交换的四元数代数,对 NTRU 进行了改进。他们提出的多维密码系统称为 QTRU。该系统每轮可加密四个数据向量,具有安全的核心结构但非常复杂。
2010 年,Malekian 等人[3]提出了一种基于八元数代数的新 NTRU 密码系统,称为 OTRU。
2011 年,Jarvis[4]提出了一种基于艾森斯坦整数的新类 NTRU 密码系统,并将其命名为 ETRU。
2012 年,Pan 和 Deng[5]提出了一种通用的类 NTRU 框架,其思想基于隐藏 NTRU 加密的陷门技术。
2015 年,Al-Saidi 等人[6]提出了一种基于交换四元数的新型多维 NTRU 变体系统,称为 CQTRU。此外,他们还通过引入一些变体多项式环改进了 NTRU,例如十六元数、二元数、双笛卡尔代数和卡特尼昂代数,分别称为 HXDTRU、BITRU、BCTRU 和 QOBTRU[7–13]。
本文中,我们引入四元数代数,基于一种新的数学结构——我们称之为 QMNTR,对 QTRU 进行改进,从而设计出一种新型 NTRU 版本,并证明 QMNTR 比 QTRU 更安全。
预备知识
考虑环:
$$
\bar{R} = \mathbb{Z}[x]/(x^N - 1), \quad \bar{R}_p = \mathbb{Z}_p[x]/(x^N - 1), \quad \bar{R}_q = \mathbb{Z}_q[x]/(x^N - 1),
$$
以及代数:
$$
\mathcal{R} = {F_0 + F_1 i + F_2 j + F_3 k \mid F_0, F_1, F_2, F_3 \in \bar{R}},
$$
$$
\mathcal{R}_p = {F_0 + F_1 i + F_2 j + F_3 k \mid F_0, F_1, F_2, F_3 \in \bar{R}_p},
$$
$$
\mathcal{R}_q = {F_0 + F_1 i + F_2 j + F_3 k \mid F_0, F_1, F_2, F_3 \in \bar{R}_q},
$$
满足 $ i^2 = j^2 = k^2 = -1 $ 且 $ ij = -ji = k $。
QTRU 密码系统依赖于参数 $ p, q $ 和 $ N $,其中 $ N $ 是一个素数,$ \gcd(p, q) = 1 $ 且 $ p $ 远小于 $ q $。子集 $ \mathcal{L} F, \mathcal{L}_G, \mathcal{L} \theta, \mathcal{L}_M $ 定义如下:
- $ \mathcal{L} F = {F_0 + F_1 i + F_2 j + F_3 k \in \mathcal{R} \mid F \alpha \text{ has } \mathcal{L}(d_F, d_F - 1)} $
- $ \mathcal{L} G = {G_0 + G_1 i + G_2 j + G_3 k \in \mathcal{R} \mid G \alpha \text{ has } \mathcal{L}(d_G, d_G)} $
- $ \mathcal{L} \theta = {\theta_0 + \theta_1 i + \theta_2 j + \theta_3 k \in \mathcal{R} \mid \theta \alpha \text{ has } \mathcal{L}(d_\theta, d_\theta)} $
- $ \mathcal{L} M = {M_0 + M_1 i + M_2 j + M_3 k \in \mathcal{R} \mid M \alpha \text{ has coefficients } \in (-p/2, p/2)} $
其中 $ \mathcal{L}(a,b) = {F \in \bar{R} \mid F \text{ 有 } d_a \text{ 个系数等于 } 1, d_b \text{ 个系数等于 } -1, \text{ 其余等于 } 0} $。
QTRU 密码系统的三个主要阶段:
A. 密钥生成
随机选择 $ F \in \mathcal{L}_F $ 和 $ G \in \mathcal{L}_G $,使得 $ F $ 在模 $ p $ 下存在乘法逆元 $ F_p^{-1} $,在模 $ q $ 下存在乘法逆元 $ F_q^{-1} $。公钥 $ H $ 计算为:
$$
H = F_q^{-1} * G \mod q
$$
B. 加密
消息 $ M \in \mathcal{L}
M $ 通过选择小四元数 $ \theta \in \mathcal{L}
\theta $ 进行加密,密文 $ E $ 计算为:
$$
E = (pH * \theta + M) \mod q
$$
C. 解密
为重构消息,解密者首先计算:
$$
F * E \mod q = F * (pH * \theta + M) \mod q = (pG * \theta + F * M) \mod q
$$
$$
F * E \mod p = (pG * \theta + F * M) \mod p = (F * M) \mod p
$$
令 $ B = (F * M) \mod p $,则:
$$
F_p^{-1} * B = M \mod p
$$
拟议的 QMNTR 密码系统
在 QMNTR 中,使用了与 QTRU 相同的通用参数以及子集 $ \mathcal{L} F, \mathcal{L}_G, \mathcal{L} \theta, \mathcal{L}_M \subset \mathcal{R} $,此外还使用了如下定义的子集 $ \mathcal{L}_U, \mathcal{L}_S, \mathcal{L}_T, \mathcal{L}_V \subset \mathcal{R} $:
- $ \mathcal{L} U = {U_0 + U_1 i + U_2 j + U_3 k \in \mathcal{R} \mid U \alpha \text{ has } \mathcal{L}(d_U, d_U)} $
- $ \mathcal{L} S = {S_0 + S_1 i + S_2 j + S_3 k \in \mathcal{R} \mid S \alpha \text{ has } \mathcal{L}(d_S, d_S)} $
- $ \mathcal{L} T = {T_0 + T_1 i + T_2 j + T_3 k \in \mathcal{R} \mid T \alpha \text{ has } \mathcal{L}(d_T, d_T - 1)} $
- $ \mathcal{L} V = {V_0 + V_1 i + V_2 j + V_3 k \in \mathcal{R} \mid V \alpha \text{ has } \mathcal{L}(d_V, d_V)} $
A. 密钥生成
为了生成两个公钥 $ H $ 和 $ K $,选取五个元素 $ F \in \mathcal{L}_F $、$ G \in \mathcal{L}_G $、$ U \in \mathcal{L}_U $、$ S \in \mathcal{L}_S $ 和 $ T \in \mathcal{L}_T $,其中 $ F $ 和 $ S $ 在 $ \mathcal{R}_p $ 中可逆,记为 $ F_p^{-1} $ 和 $ S_p^{-1} $;同时 $ F $ 和 $ T $ 在 $ \mathcal{R}_q $ 中可逆,记为 $ F_q^{-1} $ 和 $ T_q^{-1} $。
满足:
$$
F_p^{-1} * F = I \mod p, \quad S * S_p^{-1} = I \mod p
$$
$$
F * F_q^{-1} = I \mod q, \quad T_q^{-1} * T = I \mod q
$$
计算:
$$
H = F_p^{-1} * G * U \mod q
$$
$$
K = S * T_q^{-1} \mod q
$$
该部分需要一次和两次累加的四元数乘法,共包含八次卷积乘法。
B. 加密过程
在此部分中,为了加密消息 $ M $,应通过选择两个盲化多项式 $ \theta \in \mathcal{L}_\theta $ 和 $ V \in \mathcal{L}_V $ 将其转换为 $ \mathcal{L}_M $ 中的一个元素。因此,加密消息由以下公式给出:
$$
E = (pH * \theta * V + M * K) \mod q
$$
该过程需要两次四元数加法(包括四次多项式加法),以及一次和二次累积四元数乘法,共包含八十次卷积乘法。
C. 解密过程
为了获得原始消息 $ M $,应遵循以下步骤:
$$
F * E * T = pF * F_q^{-1} * G * U * \theta * V * T + F * M * S * T_q^{-1} * T \mod q = pG * U * \theta * V * T + F * M * S \mod q
$$
现在,将 $ F * E * T $ 的每个元素的系数对 $ p $ 取模,使得:
$$
F * E * T \mod p = (pG * U * \theta * V * T + F * M * S) \mod p = F * M * S \mod p
$$
令 $ B = F * M * S \mod p $。
为了恢复原始消息,使用其他私钥 $ F_p^{-1} $ 和 $ S_p^{-1} $:
$$
W = F_p^{-1} * B * S_p^{-1} \mod p = F_p^{-1} * F * M * S * S_p^{-1} \mod p = M \mod p
$$
加密过程需要两次四元数加法(包括八次多项式加法),以及两次和四次四元数乘法的累加,其中共包含1088次卷积乘法。
QMNTR 与 QTRU 的比较
A. 数学运算
表1展示了 QMNTR 与 QTRU 在密钥生成、加密和解密过程中数学运算(卷积乘法和加法)的比较。
| 过程 | QMNTR | QTRU |
|---|---|---|
| 密钥生成 | 80 次卷积乘法 | 16 卷积乘法 |
| 加密 | 80 卷积乘法和 4 多项式加法 | 16 卷积乘法和 4 多项式加法 |
| 解密 | 1088 次卷积乘法和 4 多项式加法 | 32 次卷积乘法和 4 次多项式加法 |
因此,QMNTR 的速度比 QTRU 慢。
B. 安全级别
表2展示了基于通用参数,QMNTR 与 QTRU 在密钥和消息的安全级别方面的比较。
| 安全性类型 | QMNTR | QTRU |
|---|---|---|
| 密钥安全 | $ \left( \frac{N!}{(d_G!)^2(N-2d_G)!} \right)^4 \left( \frac{N!}{(d_U!)^2(N-2d_U)!} \right)^4 \left( \frac{N!}{(d_S!)^2(N-2d_S)!} \right)^4 $ | $ \left( \frac{N!}{(d_G!)^2(N-2d_G)!} \right)^4 $ |
| 消息安全 | $ \left( \frac{N!}{(d_\theta!)^2(N-2d_\theta)!} \right)^4 \left( \frac{N!}{(d_V!)^2(N-2d_V)!} \right)^4 $ | $ \left( \frac{N!}{(d_\theta!)^2(N-2d_\theta)!} \right)^4 $ |
随着相同的系数,QMNTR 密钥的安全级别是 QTRU 的三倍,且 QMNTR 的消息安全性是 QTRU 的两倍。
结论
QMNTR 是一种新的多维公钥密码系统,其安全级别可与 QTRU 相媲美,但 QMNTR 的速度比 QTRU 慢。不过通过选择更小的参数值同时保持安全性,有可能克服这一弱点。当某些参数设置为特定值时,QMNTR 可简单地转换为 QTRU,因此 QMNTR 与 QTRU 兼容。这种兼容性对 QMNTR 来说是一个非常积极的优势。
QMNTR 系统可用于必须从多个源同时运行的应用程序,例如电子投票。
16

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



