82、基于格密码学的舍入高斯分布快速安全恒定时间采样

基于格密码学的舍入高斯分布快速安全恒定时间采样

1. 引言

后量子密码学中,基于格的密码学是一个有前景的候选方案。从应用角度看,它的一个关键优势是能基于格假设构建高效的签名和加密/密钥交换方案,这两个基本要素在许多应用中都不可或缺,且使用格密码学能实现代码复用,仅依赖一种密码学难题假设。而其他成熟的后量子密码学候选领域,往往只能构建高效且可靠的签名方案或加密/密钥交换方案。

在基于格的签名方案中,目前最有效的是 BLISS(双峰格签名方案),它由 Ducas、Durmus、Lepoint 和 Lyubashevsky 设计。BLISS 是少数已有生产级实现的后量子方案之一,其改进版 BLISS - b 可在开源 IPsec Linux 库 strongSwan 中使用。

BLISS 基于 Lyubashevsky 的签名方案,该方案引入了拒绝采样,使签名分布与所使用的秘密密钥无关。在这些方案的基本版本中,会将离散高斯向量添加到依赖于秘密密钥的向量上,得到的向量遵循由依赖于秘密密钥的向量偏移的离散高斯分布。为避免泄露秘密密钥,会执行拒绝步骤,确保输出分布与秘密密钥无关,即输出再次遵循中心离散高斯分布。

然而,高效地从离散高斯分布中采样并非易事。近年来,虽有许多关于离散高斯高效采样例程的研究,但都未实现恒定时间采样。2016 年的 CHES 会议上,有研究表明这些采样方法会使 BLISS 易受缓存攻击,不到 5000 个签名就能恢复秘密密钥。一些实现恒定时间离散高斯采样器的直接方法,对签名方案的效率影响较大,使其难以实际应用。还有一种启发式方法试图使攻击复杂化,但并未真正修复漏洞。

为解决这些问题,本文提出用舍入高斯分布替代离散高斯分布。舍入高斯分布具有与离散高斯分布类似的优点,即(略微)偏移的分布与中心分布相对接近。本文证明了在 Lyubashevsky 方案和 BLISS 中用舍入高斯分布替代离散高斯分布是安全的,且拒绝率相同。

2. 预备知识
  • 向量和矩阵的表示与运算 :向量作为列向量,用小写粗体字母表示;矩阵用大写粗体字母表示。对于向量 $\mathbf{a} = (a_1, a_2, \ldots, a_n) \in \mathbb{R}^n$,欧几里得范数定义为 $|\mathbf{a}| = \sqrt{\sum_{i = 1}^{n} a_i^2}$,$\infty$-范数定义为 $|\mathbf{a}| {\infty} = \max (|a_1|, |a_2|, \ldots, |a_n|)$,汉明重量 $wt(\mathbf{a})$ 是 $\mathbf{a}$ 中非零位置的数量。对于两个向量 $\mathbf{a} = (a_1, a_2, \ldots, a_n)$ 和 $\mathbf{b} = (b_1, b_2, \ldots, b_n)$,内积定义为 $\langle\mathbf{a}, \mathbf{b}\rangle = \sum {i = 1}^{n} a_i b_i$。
  • 拒绝采样引理 :设 $V$ 是任意集合,$h : V \to \mathbb{R}$ 和 $f : \mathbb{Z}^m \to \mathbb{R}$ 是概率分布。如果 $g_v : \mathbb{Z}^m \to \mathbb{R}$ 是由 $v \in V$ 索引的概率分布族,且满足 $\exists M \in \mathbb{R} : \forall v \in V : Pr[Mg_v(\mathbf{z}) \geq f(\mathbf{z}); \mathbf{z} \stackrel{\$}{\leftarrow} f] \geq 1 - \varepsilon$,则以下算法 $A$ 的输出分布与算法 $F$ 的输出分布在统计距离 $\varepsilon/M$ 内:

    • 算法 $A$
      1. $v \stackrel{\$}{\leftarrow} h$
      2. $\mathbf{z} \stackrel{\$}{\leftarrow} g_v$
      3. 以概率 $\min \left(\frac{f(\mathbf{z})}{Mg_v(\mathbf{z})}, 1\right)$ 输出 $(\mathbf{z}, v)$
    • 算法 $F$
      1. $v \stackrel{\$}{\leftarrow} h$
      2. $\mathbf{z} \stackrel{\$}{\leftarrow} f$
      3. 以概率 $1/M$ 输出 $(\mathbf{z}, v)$
        此外,算法 $A$ 输出结果的概率至少为 $(1 - \varepsilon)/M$。
  • 离散高斯分布

    • 连续高斯分布 :在 $\mathbb{R}^m$ 上,以 $v \in \mathbb{R}^m$ 为中心、标准差为 $\sigma$ 的连续高斯分布,对于 $x \in \mathbb{R}^m$,其(联合)密度为 $\rho_m^{v,\sigma}(x) = \left(\frac{1}{\sqrt{2\pi\sigma^2}}\right)^m e^{-\frac{|x - v|^2}{2\sigma^2}}$。当 $v = 0$ 时,简记为 $\rho_m^{\sigma}(x)$。
    • 离散高斯分布 :在 $\mathbb{Z}^m$ 上,以 $v \in \mathbb{Z}^m$ 为中心、参数为 $\sigma$ 的离散高斯分布,对于 $x \in \mathbb{Z}^m$,定义为 $D_m^{v,\sigma}(x) = \frac{\rho_m^{v,\sigma}(x)}{\rho_m^{\sigma}(\mathbb{Z}^m)}$,其中 $\rho_m^{\sigma}(\mathbb{Z}^m) = \sum_{z \in \mathbb{Z}^m} \rho_m^{\sigma}(z)$。由于离散高斯分布中,大元素样本的概率可忽略不计,实际实现中会使用尾部截断 $\tau$,通常只对 $[-\tau\sigma, \tau\sigma]^m$ 内的整数进行采样,$\tau$ 常取 $\sqrt{2\lambda \ln 2}$,其中 $\lambda$ 是安全级别。
  • Lyubashevsky 的签名方案 :2012 年,Lyubashevsky 设计的签名方案使用一个系数较小的 $m \times n$ 矩阵 $S$ 作为秘密密钥,两个矩阵作为公钥:一个随机矩阵 $A \in \mathbb{Z}_q^{n\times m}$($m = 2n$)和 $n \times n$ 矩阵 $T = AS \bmod q$。签名时,签名者根据 $m$ 维离散高斯分布选取向量 $y$,计算 $c = H(Ay \bmod q, \mu)$($H$ 是哈希函数)和潜在签名向量 $z = Sc + y$。系统使用拒绝采样将 $z$ 的分布调整为中心离散高斯分布,以决定是否输出候选签名 $(z, c)$。

  • BLISS(双峰格签名方案) :BLISS 是 Lyubashevsky 签名方案的改进,签名更小且生成更快。其简化签名算法如下:

    • 算法 2.1:使用矩阵的简化 BLISS 签名算法
      • 输入 :消息 $\mu$,公钥 $A \in \mathbb{Z} {2q}^{n\times m}$,私钥 $S \in \mathbb{Z} {2q}^{m\times n}$
      • 输出 :消息 $\mu$ 的签名 $(z, c)$
        1. $y \leftarrow D_m^{\sigma}$
        2. $c \leftarrow H(Ay \bmod 2q, \mu)$($c \in {0, 1}^n$,$wt(c) = \kappa$,$\kappa$ 为小常数)
        3. 选择一个随机比特 $b \in {0, 1}$
        4. $z \leftarrow y + (-1)^bSc$
        5. 以概率 $\frac{1}{\sqrt{M \exp\left(-\frac{|Sc|^2}{2\sigma^2}\right) \cosh\left(\frac{\langle z, Sc\rangle}{\sigma^2}\right)}}$ 输出 $(z, c)$

    BLISS 使用拒绝采样使输出 $z$ 的分布为中心高斯分布,签名算法一轮中大部分时间用于第一步生成 $m$ 个一维高斯样本,重复次数取决于 $M$ 和 $Sc$ 的大小。同时,为控制目标分布 $D_m^{\sigma}$ 和输入分布的重叠程度,需要对 $|Sc|$ 进行界定。定义了一个新的度量 $N_{\kappa}(X)$,对于任何整数 $\kappa$,$N_{\kappa} : \mathbb{R}^{m\times n} \to \mathbb{R}$ 定义为:$N_{\kappa}(X) = \max_{I\subset{1,\ldots,n},|I|=\kappa} \sum_{i \in I} \left(\max_{J\subset{1,\ldots,n},|J|=\kappa} \sum_{j \in J} W_{i,j}\right)$,其中 $W = X^T \cdot X \in \mathbb{R}^{n\times n}$。对于任何 $c \in {0, 1}^n$ 且 $wt(c) \leq \kappa$,有 $|Sc|^2 \leq N_{\kappa}(S)$,此上界使参数 $\sigma$ 比 Lyubashevsky 方案降低约 $\sqrt{\kappa}/2$ 倍。

3. 舍入高斯拒绝采样

舍入高斯分布在基于拒绝采样的签名方案中的适用性是本文的重点。下面我们将详细介绍舍入高斯分布的定义,并证明它可以替代 Lyubashevsky 签名方案和 BLISS 中的离散高斯分布。

  • 舍入高斯分布的定义 :直观上,舍入高斯分布是将连续高斯分布的样本四舍五入到最接近的整数 $x_i$ 得到的。为计算整数 $x_i$ 处的概率,我们计算区间 $(x_i - \frac{1}{2}, x_i + \frac{1}{2}]$ 上的积分。

    定义 3.1 :在 $\mathbb{Z}^m$ 上,以 $v \in \mathbb{Z}^m$ 为中心、参数为 $\sigma$ 的舍入高斯分布,对于 $x \in \mathbb{Z}^m$ 定义为:
    $R_m^{v,\sigma}(x) = \int_{A_x} \rho_m^{v,\sigma}(s)ds = \int_{A_x} \left(\frac{1}{\sqrt{2\pi\sigma^2}}\right)^m \exp\left(-\frac{|s - v|^2}{2\sigma^2}\right) ds$
    其中,$A_x$ 表示由 $\left[x_1 - \frac{1}{2}; x_1 + \frac{1}{2}\right] \times \cdots \times \left[x_m - \frac{1}{2}; x_m + \frac{1}{2}\right]$ 定义的区域。

为了简化比较并证明舍入高斯分布可以替代离散高斯分布,我们紧密遵循相关文献的表述和结构。主要区别在于,舍入高斯分布的定义需要对长度为 1 的区间进行积分,而离散高斯分布的定义需要除以所有整数处的概率质量。我们需要为舍入高斯分布证明与离散高斯分布类似的引理,虽然最终结果相似,但分析过程比离散高斯分布复杂得多,因为需要处理积分的边界问题。

下面是舍入高斯分布和离散高斯分布在签名方案应用中的对比表格:
| 分布类型 | 定义特点 | 安全分析复杂度 | 采样难度 | 在签名方案中的应用 |
| ---- | ---- | ---- | ---- | ---- |
| 离散高斯分布 | 基于连续高斯分布,通过除以所有整数处的概率质量定义 | 相对简单 | 难以实现恒定时间采样 | 传统基于格的签名方案常用 |
| 舍入高斯分布 | 通过对连续高斯分布样本四舍五入,计算区间积分定义 | 较为复杂,需处理积分边界 | 可高效且恒定时间采样 | 有望替代离散高斯分布 |

舍入高斯分布在签名方案中的应用流程如下:

graph TD;
    A[开始] --> B[采样连续高斯分布];
    B --> C[四舍五入到整数];
    C --> D[计算舍入高斯分布概率];
    D --> E[应用于签名方案拒绝采样];
    E --> F[输出签名];

综上所述,舍入高斯分布在基于格的签名方案中具有潜在的应用价值,虽然其安全分析和定义相对复杂,但在采样效率和安全性方面有一定优势。后续我们将进一步探讨其在签名方案中的具体应用和安全性证明。

4. 舍入高斯分布的采样与实现

舍入高斯分布的采样通过对连续高斯分布进行采样并将结果四舍五入为整数来完成。其中,Box - Muller 方法是一种从均匀随机数开始高效计算连续高斯样本的方式,并且所有生成舍入高斯样本的步骤都能高效且轻松地在恒定时间内完成。

  • Box - Muller 方法 :该方法可以从两个独立的均匀分布随机变量 $U_1$ 和 $U_2$ 生成两个独立的标准正态分布随机变量 $Z_1$ 和 $Z_2$。具体公式如下:
    • $Z_1 = \sqrt{-2\ln U_1} \cos(2\pi U_2)$
    • $Z_2 = \sqrt{-2\ln U_1} \sin(2\pi U_2)$

通过上述公式,我们可以得到连续高斯分布的样本,再将其进行四舍五入操作,就可以得到舍入高斯分布的样本。

  • 实现对比 :我们针对 BLISS - I 参数集实现了一个恒定时间的舍入高斯分布采样器,并将其与基于累积分布表(CDT)的采样器进行了比较。CDT 采样器使用预先计算的大表来加速采样,但在 2016 年的 CHES 会议上已被证明易受攻击。我们的实验结果表明,舍入高斯分布采样器比 CDT 采样器快两倍以上。并且,舍入高斯分布采样器无需预先计算的表,代码库小,实现也极其简单。

以下是舍入高斯分布采样的具体步骤:
1. 生成两个独立的均匀分布随机数 $U_1$ 和 $U_2$。
2. 使用 Box - Muller 方法计算连续高斯分布的样本 $Z_1$ 和 $Z_2$。
3. 将 $Z_1$ 和 $Z_2$ 四舍五入为整数,得到舍入高斯分布的样本。

5. 舍入高斯分布的安全性分析

我们的第二个理论贡献是证明使用我们基于 Box - Muller 实现采样的舍入高斯分布是安全的。为了进行安全性分析,我们从以下几个方面进行了详细研究:

  • 统计距离和 Rényi 散度 :我们使用统计距离和 Rényi 散度来研究(完美)舍入高斯分布和有限精度 $p$ 实现之间的差异。统计距离可以衡量两个概率分布之间的接近程度,而 Rényi 散度则提供了更丰富的信息,用于比较不同分布的差异。
  • 渐近结果比较 :我们比较了使用不同度量(统计距离和 Rényi 散度)得到的渐近结果。通过这种比较,我们可以更好地理解舍入高斯分布在不同情况下的性能。
  • 基于 BLISS 参数的实例计算 :我们针对 BLISS 参数和我们的 Box - Muller 实现所达到的精度进行了计算,以得出每对密钥允许的签名数量的界限。这有助于我们确定在实际应用中,舍入高斯分布在保证安全性的前提下能够生成的签名数量。

舍入高斯分布安全性分析的流程如下:

graph TD;
    A[开始] --> B[定义统计距离和 Rényi 散度];
    B --> C[计算完美舍入高斯分布和有限精度实现的差异];
    C --> D[比较不同度量的渐近结果];
    D --> E[基于 BLISS 参数实例计算];
    E --> F[得出允许的签名数量界限];
    F --> G[结束];
6. 结论

本文提出了在基于拒绝采样的格签名方案(如 BLISS 或 Lyubashevsky 的签名方案)中使用舍入高斯分布替代离散高斯分布的方法。我们的主要贡献包括:
- 理论证明 :证明了在这些方案中用舍入高斯分布替代离散高斯分布是安全的,且拒绝率相同。
- 高效实现 :提出了一种基于 Box - Muller 方法的恒定时间舍入高斯分布采样器,该采样器比基于 CDT 的采样器快两倍以上,并且无需预先计算的表,代码库小,实现简单。
- 安全性分析 :通过统计距离和 Rényi 散度对舍入高斯分布的安全性进行了详细分析,得出了每对密钥允许的签名数量的界限。

舍入高斯分布在基于格的签名方案中具有显著的优势,它不仅解决了离散高斯分布采样难以实现恒定时间的问题,还提高了采样效率和安全性。未来,我们可以进一步研究舍入高斯分布在其他密码学方案中的应用,以及如何优化其实现以提高性能。

以下是离散高斯分布和舍入高斯分布的综合对比表:
| 特性 | 离散高斯分布 | 舍入高斯分布 |
| ---- | ---- | ---- |
| 采样难度 | 难以实现恒定时间采样 | 可高效且恒定时间采样 |
| 安全分析复杂度 | 相对简单 | 较为复杂,需处理积分边界 |
| 代码实现 | 需要大的预计算表 | 无需预计算表,代码库小 |
| 性能 | 较慢 | 比 CDT 采样器快两倍以上 |
| 安全性 | 易受缓存攻击 | 可避免基于时间的侧信道攻击 |

通过以上对比可以看出,舍入高斯分布在多个方面都优于离散高斯分布,是基于格的签名方案中一种更具潜力的选择。

源码链接: https://pan.quark.cn/s/7b9e1590db2e 在本计划中,我们聚焦于一个基于数字逻辑的药片装瓶系统的构建,这构成了北京邮电大(北邮)在小期内向生提供的一次课程设计课题。该系统致力于模拟实际药品包装的操作流程,借助电子操控和自动化技术达成药片的高效且精准的装瓶目标。以下是对该系统设计所涉及的关键知识领域的详尽阐述: 1. **数字逻辑**:数字逻辑是电子工程领域的核心科,主要探究如何运用二进制数字进行信息的表征与处理。在此项目中,数字逻辑用于构建和实现系统的控制机制,诸如计数器、编码器、解码器、触发器等,旨在保障药片装瓶过程的精确调控。 2. **硬件电路构建**:系统可能整合微控制器、传感器、执行机构等硬件单元。例如,微控制器作为系统的心脏,负责接收输入信号,处理数据,并指挥执行机构执行药片装填。传感器负责监测药片的数量和瓶装进度,而执行机构如电机则负责实际完成装瓶动作。 3. **计数器**:在药片装瓶的操作过程中,计数器用于追踪已装入瓶子的药片总数,确保达到预设的剂量标准。这可能需要设计同步计数器或异步计数器,以实现精确计数并触发装瓶操作。 4. **编码与解码**:编码器将特定的信息(例如药片种类或剂量)转化为二进制编码,便于硬件设备进行处理;解码器则将这些编码解读为可执行的操作,如切换装瓶路径或启动封盖流程。 5. **触发器**:在系统中,触发器可用于在特定条件达成时启动或中止某个操作,例如当瓶子达到满载时关闭装填机制。 6. **传感器技术**:可能包含重量传感器、光电传感器或机械触碰开关,用于识别瓶子的存在、位置以及药片的数量。这些传感器的精确度直接关联到整个系统的性能水平。 7. **控制算法**...
内容概要:本文针对孤岛微电网在遭受拒绝服务(DoS)攻击下的安全与稳定运行问题,提出了一种基于混合系统理论的弹性二次控制策略,创新性地将动态事件触发机制与DoS攻击防御进行协同设计。该方法在保障微电网电压、频率恢复及有功功率精确均分的同时,有效应对通信链路被恶意阻塞的安全威胁,实现了控制性能与通信资源利用效率的双重优化。通过Simulink仿真平台与Matlab代码实现,验证了所提策略在复杂网络攻击场景下的鲁棒性与有效性,深入分析了系统稳定性条件及攻击容忍边界,为电力信息物理系统(CPS)在面临网络安全挑战时的可靠控制提供了理论依据和技术路径。; 适合人群:具备电力系统自动化、分布式控制或网络安全等相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网控制、信息物理系统安全或弹性控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 提升高比例分布式能源接入背景下孤岛微电网在通信受限与网络攻击耦合场景下的运行可靠性与弹性恢复能力;② 实现低通信开销下的分布式协同控制,优化资源利用并增强系统抗干扰性能;③ 为电力系统中安全-控制联合设计提供可复现的仿真模型与技术方案,推动安全防护从被动响应向主动容忍转变。; 阅读建议:读者应结合文中提供的Matlab代码与Simulink模型开展仿真实验,重点理解动态事件触发机制的设计原理及其与混合系统稳定性分析的融合方法,建议延伸习DoS攻击建模、弹性控制理论及相关安全性证明技术,以全面掌握该协同设计框架的核心思想与实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值