减小SRP加密方案密钥大小

减小SRP加密方案密钥大小

减小SRP加密方案的密钥大小

1 引言

多变量密码学是确保后量子时代通信安全的主要候选方案之一。多变量方案通常非常快速,且仅需较低的计算资源,这使得它们在射频识别标签或智能卡等低成本设备上具有吸引力。尽管目前已存在许多实用的多变量签名方案,如 UOV、彩虹和贵,但实用的多变量加密方案候选者数量却相当有限。因此,开发安全高效的多变量加密方案是一个重要的研究课题。

最近,安田和桜井在[8]中提出了一种名为SRP的新多变量加密方案,该方案效率很高,并能抵抗针对多变量方案的所有已知攻击。然而,与其他多变量方案类似,SRP的公钥和私钥尺寸相当大。

本文提出了一种减少SRP方案公钥大小的技术,通过该技术可将SRP的公钥大小减少多达54%。此外,公钥多项式中的附加结构使得该方案的加密过程速度提升高达50%。

实验表明,我们的修改并未削弱SRP方案的安全性。该技术是首个用于减少多变量加密方案公钥大小的方法。

通过我们的改进,我们获得了一个非常高效的多变量加密方案。该方案的公钥大小比其他多变量加密方案(如ABC和ZHFE)小约50%。其加密过程的速度大约是其他方案的两倍。

本文的结构如下。在第2节中,我们回顾多变量公钥密码学和SRP加密方案的基本概念。第3节介绍了我们的循环SRP方案的构造,并分析了该构造的安全性。在第4节中,我们给出了我们方案的具体参数集,并在密钥大小和加密过程效率方面将其与标准SRP方案进行了比较。最后,第5节对全文进行总结。

2 SRP加密方案

2.1 多变量密码学

多变量密码学的基本对象是有限域上的多变量二次多项式系统。多变量方案的安全性基于求解此类系统的MQ问题,该问题已被证明是NP‐难的。

要构建一个多变量公钥密码系统(MPKC),首先从一个易于求逆的二次映射 $ F: \mathbb{F}^n \to \mathbb{F}^m $(中心映射)开始。为了在公钥中隐藏 $ F $ 的结构,我们将其与两个可逆仿射(或线性)映射 $ S: \mathbb{F}^m \to \mathbb{F}^m $ 和 $ T: \mathbb{F}^n \to \mathbb{F}^n $ 进行复合。因此,该方案的公钥由 $ P = S \circ F \circ T: \mathbb{F}^n \to \mathbb{F}^m $ 给出。私钥由三个映射 $ S, F $ 和 $ T $ 组成,因此可以实现对公钥的求逆。要加密消息 $ M \in \mathbb{F}^n $,只需计算 $ C = P(M) \in \mathbb{F}^m $。要解密密文 $ C \in \mathbb{F}^m $,需递归计算 $ x = S^{-1}(C) \in \mathbb{F}^m $,$ y = F^{-1}(x) \in \mathbb{F}^n $ 和 $ M = T^{-1}(y) \in \mathbb{F}^n $。$ M $ 是对应于密文 $ C $ 的明文。

2.2 SRP

SRP加密方案由安田和桜井在[8]中提出,该方案结合了Square加密方案[3]、彩虹签名方案[5]以及加法方法[4]。通过将Square和Rainbow合并为一个方案,许多针对单一方案的攻击不再适用。此外,由于Square和Rainbow都非常高效,因此SRP方案同样具有高效性。

设 $ \mathbb{F} $ 是一个包含 $ q $ 个元素的有限域($ q \equiv 3 \mod 4 $),$ E $ 是 $ \mathbb{F} $ 的一个次数为 $ d $ 的扩域($ d $ 为奇数),$ \varphi $ 是域 $ E $ 与向量空间 $ \mathbb{F}^d $ 之间的一个同构。此外,设 $ o, r, s $ 和 $ l $ 为非负整数。

密钥生成

设 $ n = d + o - l $、$ n’ = d + o $ 和 $ m = d + o + r + s $。该方案的中心映射 $ F: \mathbb{F}^{n’} \to \mathbb{F}^m $ 是三个映射 $ F_S $、$ F_R $ 和 $ F_P $ 的串联。这些映射定义如下。

(i) Square部分
$ F_S: \mathbb{F}^{n’} \to \mathbb{F}^d $ 是这些映射的复合:
$$
\mathbb{F}^{d+o} \xrightarrow{\pi_d} \mathbb{F}^d \xrightarrow{\varphi^{-1}} E \xrightarrow{X \mapsto X^2} E \xrightarrow{\varphi} \mathbb{F}^d.
$$
这里 $ \pi_d: \mathbb{F}^{d+o} \to \mathbb{F}^d $ 是到前 $ d $ 个坐标的投影。

(ii) UOV(彩虹)部分
$ F_R = (f^{(1)}, …, f^{(o+r)}) : \mathbb{F}^{n’} \to \mathbb{F}^{o+r} $ 的构造方式与通常的UOV签名方案相同:令 $ V = {1, …, d} $ 和 $ O = {d+1, …, d+o} $。对于每个 $ k \in {1, …, o+r} $,二次多项式 $ f^{(k)} $ 具有如下形式:
$$
f^{(k)}(x_1, …, x_{n’}) = \sum_{i \in O, j \in V} \alpha^{(k)} {i,j} x_i x_j + \sum {i,j \in V, i \leq j} \beta^{(k)} {i,j} x_i x_j + \sum {i \in V \cup O} \gamma^{(k)} i x_i + \eta^{(k)},
$$
其中 $ \alpha^{(k)}
{i,j}, \beta^{(k)}_{i,j}, \gamma^{(k)}_i, \eta^{(k)} $ 是随机选择的 $ \mathbb{F} $-元素。

(iii) Plus部分
$ F_P = (g^{(1)}, …, g^{(s)}) : \mathbb{F}^{n’} \to \mathbb{F}^s $ 由 $ s $ 个随机选择的二次多项式 $ g^{(1)}, …, g^{(s)} $ 组成。

我们还选择了一个满秩的仿射嵌入 $ T: \mathbb{F}^n \hookrightarrow \mathbb{F}^{n’} $ 和一个仿射同构 $ S: \mathbb{F}^m \to \mathbb{F}^m $。

公钥 由 $ P = S \circ F \circ T: \mathbb{F}^n \to \mathbb{F}^m $ 给出, 私钥 由 $ S, F $ 和 $ T $ 组成。

加密

给定一条消息 $ M \in \mathbb{F}^n $,密文 $ C $ 通过 $ C = P(M) \in \mathbb{F}^m $ 计算得到。

解密

给定密文 $ C \in \mathbb{F}^m $,解密执行如下。

  1. 计算 $ x = (x_1, …, x_m) = S^{-1}(C) $ 和 $ X = \varphi^{-1}(x_1, …, x_d) $。
  2. 计算 $ R_1, R_2 = \pm X^{(q^d + 1)/4} $ 并设 $ y^{(i)} = (y^{(i)}_1, …, y^{(i)}_d) = \varphi(R_i) $ ($ i = 1, 2 $)。
  3. 给定醋变量值 $ y^{(i)} 1, …, y^{(i)}_d $ ($ i = 1, 2 $),求解由 $ o + r $ 个线性方程组成的两个方程组,其 $ n’ - d = o $ 个变量为 $ u {d+1}, …, u_{n’} $:
    $$
    f^{(k)}(y^{(i)} 1, …, y^{(i)}_d, u {d+1}, \cdots, u_{n’}) = x_{d+k} \quad (i = 1, 2)
    $$
    对于 $ k = 1, \cdots, o + r $。解表示为 $ (y_{d+1}, \cdots, y_{n’})_i $。
  4. 通过在仿射嵌入 $ T $ 下求 $ (y_1, \cdots, y_{n’}) $ 的原像来计算明文 $ M \in \mathbb{F}^n $。

解密所需的中心映射部分仅为彩虹多项式的系数 $ f^{(1)}, …, f^{(o+r)} $。

接下来,我们限制为齐次二次映射 $ F $ 以及线性映射 $ S $ 和 $ T $。因此,该方案的公钥 $ P $ 也将是一个齐次二次系统。公钥每个分量中的项数由 $ \frac{n(n+1)}{2} = D $ 给出。

通过增加 $ r $,可以任意降低 $ (y^{(1)}_1, …, y^{(1)}_d), (y^{(2)}_1, …, y^{(2)}_d) $ 的概率差异,从而增强安全性。

减小SRP加密方案的密钥大小

3 我们的改进方案

在本节中,我们提出生成具有结构化公钥的SRP密钥对的技术。特别是,我们能够构造如图所示形式的公钥。

这里,矩阵 $ B_1 \in \mathbb{F}^{(m-d)\times h} $ 和 $ B_2 \in \mathbb{F}^{s\times(D-h)} $ 可由用户任意选择,参数 $ h $ 由 $ h = \frac{d(d+1)}{2} + d \cdot (o - l) $ 给出。

接下来,我们以“循环”方式选择矩阵 $ B_1 $ 和 $ B_2 $。具体而言,我们选择两个随机向量 $ b_1 \in \mathbb{F}^h $ 和 $ b_2 \in \mathbb{F}^{D-h} $。矩阵 $ B_1 $ 的第一行就是向量 $ b_1 $,而 $ B_1 $ 的第 $ i $ 行对应于向量 $ b_1 $ 向右循环移动 $ i - 1 $ 个位置的结果($ i = 2, …, m - d $)。类似地,矩阵 $ B_2 $ 的第一行对应于向量 $ b_2 $,该矩阵的第 $ i $ 行是向量 $ b_2 $ 向右循环移动 $ i - 1 $ 个位置的结果。

通过以这种方式选择矩阵 $ B_1 $ 和 $ B_2 $,我们只需存储两个向量 $ b_1 $ 和 $ b_2 $ 即可恢复矩阵 $ B_1 $ 和 $ B_2 $。因此,该方案的公钥大小显著减小(见第4节)。此外,我们可以利用矩阵 $ B_1 $ 和 $ B_2 $ 中的结构来加速该方案的加密过程。所得到的方案称为 CyclicSRP

3.1 符号说明

设 $ Q = F \circ T $。对于映射 $ F $、$ Q $ 和 $ P $,我们用 $ x_i \cdot x_j $ 在映射的第 $ k $ 个分量中的单项式系数分别表示为 $ f^{(k)} {ij} $、$ q^{(k)} {ij} $ 和 $ p^{(k)}_{ij} $。我们将这些系数写入矩阵 $ F $、$ Q $ 和 $ P $ 中,并将这些矩阵划分为子矩阵,如图2所示。

此外,设 $ S = (s_{ij}) {1 \leq j \leq m}^{1 \leq i \leq m} $ 和 $ T = (t {ij})_{1 \leq j \leq n}^{1 \leq i \leq n’} $ 分别为线性映射 $ S $ 和 $ T $ 的矩阵表示。

此外,我们定义 $ Q_S = (Q_{Sh} | Q’ S) \in \mathbb{F}^{d \times D} $ 和 $ Q {RP}^h = (Q_{Rh} | Q_{Ph}) \in \mathbb{F}^{(o+r+s)\times h} $。

3.2 构造

在固定矩阵 $ S $、$ T $、$ B_1 $ 和 $ B_2 $ 后,矩阵 $ Q_S $ 的元素(即映射 $ Q $ 关于SRP的平方部分的系数)由以下方程确定:
$$
Q_S(x) = \varphi((\varphi^{-1} \circ \pi_d \circ T(x))^2) = (q^{(1)}(x), …, q^{(d)}(x)). \tag{1}
$$

由 $ P = S \circ Q $ 可直接得出 $ P = S \cdot Q $。因此我们得到 $ B_1 = S_d \cdot Q_{Sh} + S_{md} \cdot Q_{RPh} $,在假设 $ S_{md} $ 可求逆的情况下,可得:
$$
Q_{RPh} = S_{md}^{-1} \cdot (B_1 - S_d \cdot Q_{Sh}). \tag{2}
$$

此外,从 $ Q = F \circ T $ 我们得到关系:
$$
q^{(k)} {ij} = \sum {r=1}^{n’} \sum_{s=r}^{n’} \alpha_{ij}^{rs} f^{(k)} {rs} \quad (1 \leq i \leq j \leq n) \tag{3}
$$
对于每个 $ k = 1, …, m $,其中
$$
\alpha
{ij}^{rs} =
\begin{cases}
t_{ri} t_{si} & \text{if } i = j \
t_{ri} t_{sj} + t_{rj} t_{si} & \text{otherwise}.
\end{cases}
$$

我们考虑来自(3)的 $ m - d - s = o + r $ 方程,对应于 $ k = d+1, …, m-s $;这些方程对应SRP的UOV部分。由于UOV多项式具有特殊结构,我们得到:
$$
q^{(k)} {ij} = \sum {r=1}^{d} \sum_{s=r}^{n’} \alpha_{ij}^{rs} f^{(k)}_{rs} \quad (1 \leq i \leq j \leq n, \; d+1 \leq k \leq m-s). \tag{4}
$$

设 $ A $ 为一个 $ (d(d+1)/2 + od) \times h $ 矩阵,其中包含方程(4)中关于 $ 1 \leq r \leq d, r \leq s \leq n’ $ 的行和 $ 1 \leq i \leq d, i \leq j \leq n $ 的列的系数 $ \alpha_{ij}^{rs} $。采用此记号,方程(4)可得:
$$
Q_{Rh} = F_R \cdot A. \tag{5}
$$

如果 $ A $ 是满秩的,那么我们可以通过求解每个 $ k \in {d+1, …, m-s} $ 对应的如下线性方程组,从 $ Q_{Rh} $ 中恢复出 $ F_R $:
$$
(q^{(k)} {11}, q^{(k)} {12}, …, q^{(k)} {dn}) = (f^{(k)} {11}, f^{(k)} {12}, …, f^{(k)} {dn’}) \cdot A. \tag{6}
$$

备注
(1) 实验表明,对于随机选择的可逆矩阵 $ T $,$ A $ 具有秩 $ h $ 的概率相当高。因此,我们不必测试太多矩阵 $ T $ 即可找到一个满秩矩阵 $ A $。
(2) 公式(6)中的线性系统有多个解。我们只需随机选择其中一个解并将其代入矩阵 $ F_R $ 中。

在恢复了彩虹中心映射的系数后,我们可以利用关系式 $ Q = F \circ T $ 轻松计算矩阵 $ Q’_R $ 的元素。

最后一个未知的 $ Q $ 子矩阵现在是 $ Q’_P $。在假设 $ S_P $ 可求逆的情况下,我们可以通过求逆来恢复它:
$$
Q’_P = S_P^{-1} \cdot (B_2 - S’_P \cdot (Q’_S R)). \tag{7}
$$

因此,恢复整个矩阵 $ Q $ 后,很容易计算公钥的系数矩阵:
$$
P = S \cdot Q. \tag{8}
$$

注意 :计算得到的矩阵 $ P $ 将具有图1中所示的结构。

我们发布 $ P $ 作为公钥,而私钥由 $ S $、$ T $ 和 $ F_R $ 组成。算法1以紧凑形式展示了这一密钥生成过程。

算法1. 循环SRP的密钥生成

输入 :SRP 参数 $ q, d, o, r, s, l $,矩阵 $ B_1 \in \mathbb{F}^{(m-d)\times h} $ 和 $ B_2 \in \mathbb{F}^{s\times(D-h)} $。
输出 :SRP 密钥对 $ ((S, F_R, T), P) $,其中 $ P $ 为图1所示的形式。

  1. 选择一个可逆矩阵 $ S \in \mathbb{F}^{m\times m} $,使得子矩阵 $ S_{md} \in \mathbb{F}^{(m-s)\times(m-s)} $ 和 $ S_p \in \mathbb{F}^{s\times s} $ 均可逆。
  2. 选择一个满秩矩阵 $ T \in \mathbb{F}^{n’\times n} $,使得矩阵 $ A $ 具有满秩。
  3. 根据公式(1)计算 $ Q_S $。
  4. 根据公式(2)计算 $ Q_{RPh} $。
  5. 通过求解公式(6)的线性方程组计算 $ F_R $。
  6. 利用关系式 $ Q = F \circ T $ 计算 $ Q_R $。
  7. 根据公式(7)计算 $ Q’_P $。
  8. 计算 $ P = S \cdot Q $。
  9. 返回 $ ((S, F_R, T), P) $

3.3 安全性

我们的方案的安全性分析与[8]的标准SRP方案相同。因此,关于我们的方案针对结构性攻击的分析,我们参考[8]中的分析[1,6],此处仅讨论直接攻击[4]。

直接攻击

直接攻击尝试通过使用XL算法或Gröbner基方法将公开系统 $ P(M) = C $ 作为MQ问题的一个实例来求解,从而恢复明文 $ M $。

为了研究循环SRP方案对直接攻击的安全性,我们使用MAGMA进行了大量实验,其中包含了用于计算Gröbner基的高效实现的Faugère F4算法。表1展示了我们针对随机系统、SRP方案以及我们的方案进行实验的结果。

参数 参数 循环SRP 循环SRP SRP SRP 随机系统 随机系统
$ q, d, o, r, s, l $ $ m, n $ dreg 时间(秒) dreg 时间(秒) dreg 时间(秒)
31, 11, 10, 5, 4, 6 30, 15 4 3.2 4 3.2 4 3.2
31, 11, 10, 5, 4, 4 30, 17 5 91.8 5 92.7 5 94.0
31, 11, 10, 5, 4, 2 30, 19 6 4,646 6 4,650 6 5,785

如表所示,F4算法解决我们系统的速度并不比标准SRP方案快得多。

4 结果

在本节中,我们将我们的方案与[8]中的标准SRP方案进行比较。我们使用了[8]中提出的三个参数集,即
(A) $ (q, d, o, r, s, l) = (31,33,32,16,5,16) $,提供80位安全性;
(B) $ (q, d, o, r, s, l) = (31,47,47,22,5,22) $,提供112位安全性;
以及
(C) $ (q, d, o, r, s, l) = (31,71,71,32,5,32) $,提供160位安全级别。

(A) (B) (C)
参数 $ q, d, o, r, s, l $ 31, 33, 32, 16, 5, 16 31, 47, 47, 22, 5, 22 31, 71, 71, 32, 5, 32
参数 $ m, n $ 86, 49 121, 72 179, 110
公钥大小 标准SRP 105,350 317,988 1,092,795
公钥大小 循环SRP 48,178 148,569 519,900
公钥大小 减少 54.3 % 53.3 % 52.4 %
# 字段乘数
期间加密
标准SRP 106,575 320,616 1,098,900
# 字段乘数
期间加密
循环SRP 54,068 160,587 546,875
# 字段乘数
期间加密
减少 49.3% 49.9% 50.2%

表2给出了标准SRP方案与我们的方案在公钥大小方面的比较。

除了密钥大小缩减外,我们可以利用循环SRP公钥中的结构显著减少加密过程中所需的乘法运算次数。然而,由于篇幅限制,我们无法在此描述该技术的细节(请参见本文的扩展版本 [2])并仅展示结果(见表2)。

5 结论

本文研究了近期提出的多变量加密方案SRP [8],该方案是后量子加密方案的一个良好候选者。我们提出了一种技术来减小该方案的公钥大小。所得到的方案 CyclicSRP 将公钥大小最多减少了54%,并在加密过程中将所需的域乘法次数减少了50%。通过我们的技术,有助于解决多变量方案中最严重的问题之一,即公钥的较大尺寸。据我们所知,我们的提议是首次将此类技术应用于多变量加密方案。

MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实例及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案例拓展应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值