伪随机置换生成器的构建与分析
在密码学领域,伪随机函数和伪随机置换是保障信息安全的重要工具。本文将深入探讨如何从伪随机函数构建伪随机置换,以及如何构建超级伪随机置换生成器,同时介绍相关的定义、引理和定理。
基本符号与定义
-
符号表示
- 所有整数的集合用 (N) 表示。
- 考虑的字母表 (C = {0, 1})。对于 (n \in N),(C^n) 是所有长度为 (n) 的 (2^n) 个二进制字符串的集合。
- 两个二进制字符串 (x) 和 (y) 的连接用 (x \parallel y) 表示,按位异或用 (x \oplus y) 表示。
- (x \in_R S) 表示 (x) 是从集合 (S) 中均匀随机选取的。
- 函数 (f) 是从 (C^n) 到 (C^n) 的变换,所有 (C^n) 上的函数集合用 (H_n) 表示,即 (H_n = { f | f: C^n \to C^n}),它包含 (2^{n^{2^n}}) 个元素。
- 两个函数 (f) 和 (g) 的复合定义为 (f \circ g(x) = f(g(x))),(f) 的 (i) 次复合用 (f^i) 表示。
- 函数 (f) 是置换当且仅当它是一一对应且满射的,所有 (C^n) 上的置换集合用 (P_n) 表示,包含 (2^n!) 个元素。
-
相关定义
- DES 类置换 :对于函数 (f \in H_n),定义 (D_{2n,f} \in P_{2n}) 为 (D_{2n,f}(L \parallel R) = (R \oplus f(L) \parallel L)),其中 (R, L \in C^n)。
-
函数生成器
:设 (l(n)) 是关于 (n) 的多项式,函数生成器 (F = {F_n : n \in N}) 具有以下性质:
- 索引 :每个 (F_n) 为长度为 (l(n)) 的每个 (k) 指定一个函数 (f_{n,k} \in H_n)。
- 多项式时间求值 :给定密钥 (k \in C^{l(n)}) 和字符串 (x \in C^n),(f_{n,k}(x)) 可以在关于 (n) 的多项式时间内计算。
- 预言机电路 :预言机电路 (C_n) 是一个无环电路,包含与门、或门、非门、零和一的常量门,以及一种特殊的预言机门。每个预言机门有 (n) 位输入和 (n) 位输出,使用 (H_n) 中的某个函数进行求值,预言机电路 (C_n) 有单比特输出。
- 预言机电路的大小 :预言机电路 (C_n) 的大小是门之间的连接总数,包括布尔门、常量门和预言机门。
-
区分电路族
:函数生成器 (F) 的区分电路族是一个无限电路族 ({C_{n_1}, C_{n_2}, \ldots}),其中 (n_1 < n_2 < \ldots),对于某些常数对 (c_1) 和 (c_2),对于每个 (n) 存在一个电路 (C_n),满足:
- (C_n) 的大小小于或等于 (n^{c_1})。
- 设 (Prob{C_n[H_n] = 1}) 是当从 (H_n) 中随机选择一个函数用于求值预言机门时,(C_n) 的输出位为 1 的概率;设 (Prob{C_n[F_n] = 1}) 是当随机选择长度为 (l(n)) 的密钥 (k) 并使用 (f_{n,k}) 求值预言机门时,(C_n) 的输出位为 1 的概率。
- (C_n) 的区分概率大于或等于 (\frac{1}{n^{c_2}}),即 (| Prob{C_n[H_n] = 1} - Prob{C_n[F_n] = 1} | \geq \frac{1}{n^{c_2}})。
- 伪随机函数生成器 :如果函数生成器 (F) 没有区分电路族,则称 (F) 是伪随机的。
伪随机置换的构建
Luby 和 Rackoff 首次提出了使用 DES 类结构从伪随机函数构建伪随机置换的方法。
-
引理 1
:设 (f_1, f_2, f_3 \in_R H_n) 是独立的随机函数,(C_{2n}) 是一个具有 (m < 2^n) 个预言机门的预言机电路,则一个具有三轮 DES 类置换和三个不同随机函数的分组密码系统在密码分析者只能请求多项式数量的明文时,对选择明文攻击是安全的。
-
定理 1
:设 (f_1, f_2, h_1, h_2 \in_R H_n) 是四个不同的随机函数,则对于 (\psi_2 = \psi(h_2, 1, f_2) \circ \psi(h_1, 1, f_1)) 没有区分电路,并且它是一个完美的随机化器,即对于区分电路使用的所有预言机门,输出与输入独立且相互独立。
超级伪随机置换
当分组密码系统对选择明文/密文攻击安全时,称为超级伪随机。这一概念仅适用于可逆置换,相关定义如下:
1.
置换生成器
:置换生成器 (F) 是一个函数生成器,使得每个函数 (f_{n,k}) 是一一对应且满射的。设 (\tilde{F}
n = { \tilde{f}
{n,k} : k \in C^{l(n)}}),其中 (\tilde{f}
{n,k}) 是 (f
{n,k}) 的逆函数。如果 (\tilde{F}) 也是置换生成器,则称 (F) 是可逆的。
2.
超级区分电路族
:可逆置换生成器 (F) 的超级区分电路族是一个无限电路族 ({SC_{n_1}, SC_{n_2}, \ldots}),其中 (n_1 < n_2 < \ldots),每个电路是一个包含两种预言机门(正常和逆)的预言机电路,对于某些常数对 (c_1) 和 (c_2),对于每个 (n) 存在一个电路 (SC_n),满足:
- (SC_n) 的大小小于或等于 (n^{c_1})。
- 设 (Prob{SC_n[P_n] = 1}) 是当从 (P_n) 中随机选择一个置换 (p) 并使用 (p) 和 (\tilde{p}) 求值正常和逆预言机门时,(SC_n) 的输出位为 1 的概率;设 (Prob{SC_n[F_n] = 1}) 是当随机选择长度为 (l(n)) 的密钥 (k) 并使用 (f_{n,k}) 和 (\tilde{f}_{n,k}) 分别求值正常和逆预言机门时,(SC_n) 的输出位为 1 的概率。
- (SC_n) 的区分概率大于或等于 (\frac{1}{n^{c_2}}),即 (| Prob{SC_n[P_n] = 1} - Prob{SC_n[F_n] = 1} | \geq \frac{1}{n^{c_2}})。
3.
超级伪随机置换生成器
:如果置换生成器 (F) 没有超级区分电路族,则称 (F) 是超级伪随机的。
基于单个伪随机函数构建超级伪随机置换生成器
为了基于单个伪随机函数构建超级伪随机置换生成器,我们首先证明 (G_1 = \psi(h, 1, f) \circ \psi(h, 1, f)) 是超级伪随机置换生成器,然后证明如果用 (f^2) 替换 (h),(G = \psi(f^2, 1, f, f^2, 1, f)) 仍然是超级伪随机的。
-
引理 2
:设 (h, f \in_R H_n) 是独立的随机函数,(G_2 = \psi(h, 1, f, h, 1)),对于任何多项式大小的区分电路 (C_{2n}) 且 (m < 2^n) 个预言机门,有 (| Prob{C_{2n}[G_2] = 1} - Prob{C_{2n}[P_{2n}] = 1} | < \frac{m^2}{2^n} + \frac{m^2}{2^{2n}})。
-
证明思路
:当区分器检查预言机时,输入是一个 (2n) 位字符串 ((L \parallel R)),输出也是一个 (2n) 位字符串 ((S \parallel T))。信息泄漏发生在至少有一对预言机门的输出与输入相关的情况下。定义随机变量 (X) 为 (G_2) 的 DES 类结构第二轮中随机函数 (h) 的输出,随机变量 (Y) 为第三轮中随机函数 (f) 的输出。信息泄漏有两种情况:
- (X) 是“坏的”:当存在一对预言机门 (O_i, O_j),输入随机变量 (R_i \neq R_j) 且 (L_i = L_j = L) 使得随机函数 (h) 发生碰撞时,即 (x_i = x_j = x),其中 (x_i = h(L \oplus R_i)) 和 (x_j = h(L \oplus R_j))。此时 (T_i \oplus T_j = R_i \oplus R_j),(h) 在 (m) 个预言机中的一对预言机门发生碰撞的概率为 (\frac{m^2}{2^n})。
- (Y) 是“坏的”:当存在一对预言机门 (O_i, O_j),输入随机变量 (R_i = R_j = R) 且 (L_i \neq L_j) 使得随机函数 (f) 发生碰撞时,即 (y_i = y_j = y),其中 (y_i = f(L_i \oplus h(L_i \oplus R))) 和 (y_j = f(L_j \oplus h(L_j \oplus R)))。如果 (Y) 是“坏的”且 (X) 也是“坏的”,则 (T_i \oplus T_j = L_i \oplus L_j),(f) 和 (h) 在 (m) 个预言机中的一对预言机门发生碰撞的概率为 (\frac{m^2}{2^{2n}})。
-
引理 3
:设 (h, f \in_R H_n) 是独立的随机函数,(G_3 = \psi(f, 1, h, f, 1)),对于一个具有 (m < 2^n) 个预言机门的区分电路 (C_{2n}),有 (| Prob{C_{2n}[G_3] = 1} - Prob{C_{2n}[P_{2n}] = 1} | < \frac{m^2}{2^n} + \frac{m^2}{2^{2n}})。
-
证明思路
:由于 (G_3) 的结构与 (G_2) 相似,只是 (h) 和 (f) 的位置互换,因此可以采用与引理 2 类似的证明方法。
-
引理 4
:设 (h, f \in_R H_n) 是独立的随机函数,(G_2 = \psi(h, 1, f, h, 1)) 和 (G_3 = \psi(f, 1, h, f, 1)),对于一个具有两种预言机门且 (m < 2^n) 个预言机门的 (D) - 区分电路 (DC_{2n}),有 (| Prob{DC_{2n}[G_2, G_3] = 1} - Prob{DC_{2n}[P_{2n}, P_{2n}] = 1} | \leq \frac{m^2}{2^{2n}})。
-
证明思路
:区分器有两种预言机门,分别计算从 (P_{2n}) 中独立随机选择两个置换和从 (H_n) 中独立随机选择 (f, h) 并用于 (G_2) 和 (G_3) 结构时的概率。由于 (G_2) 和 (G_3) 都是伪随机的,区分器只有在至少有一对预言机门的输出相互相关时才能做出决策。定义随机变量 (X_2) 为 (G_2) 的 DES 类结构第二轮中随机函数 (h) 的输出,随机变量 (X_3) 为 (G_3) 第二轮中随机函数 (f) 的输出,随机变量 (Y_2) 为 (G_2) 第三轮中随机函数 (f) 的输出,随机变量 (Y_3) 为 (G_3) 第三轮中随机函数 (h) 的输出。区分器能做出决策的情况有两种:
- 随机函数 (f) 和 (h) 发生碰撞:当存在一对预言机门 (O_i, O_j),使得 (x_{i,2} = x_{j,3} = x) 且 (y_{i,2} = y_{j,3} = y) 时,在某些输入条件下有 (T_i \oplus T_j = R_i \oplus R_j) 或 (S_i \oplus S_j = L_i \oplus L_j),(f) 和 (h) 在 (m) 个预言机中的一对预言机门发生碰撞的概率为 (\frac{m^2}{2^{2n}})。
- 随机函数 (f) 碰撞且随机函数 (h) 碰撞:当存在一对预言机门 (O_i, O_j),使得 (x_{i,2} = y_{j,3}) 且 (y_{i,2} = x_{j,3}) 时,在某些输入条件下有 (T_i \oplus T_j = R_i \oplus R_j),(f) 和 (h) 在 (m) 个预言机中的一对预言机门发生碰撞的概率为 (\frac{m^2}{2^{2n}})。
-
定理 2
:设 (f_1, f_2 \in_R F_n) 是独立选择的伪随机函数,(G_2 = \psi(f_2, 1, f_1, f_2, 1)) 和 (G_3 = \psi(f_1, 1, f_2, f_1, 1)),对于任何多项式大小的 (D) - 区分电路和任何常数 (c_2),则 (G_1 = \psi(f_1, 1, f_1, f_2, 1, f_1)) 是超级伪随机置换生成器。
-
证明思路
:首先证明 (G_2) 和 (G_3) 相互独立。假设它们不独立,存在一个 (D) - 区分电路使得 (| Prob{DC_{2n}[G_3, G_1] = 1} - Prob{DC_{2n}[P_{2n}, P_{2n}] = 1} | > \frac{1}{n^{c_2}}),通过一系列不等式推导会得出与引理 3 或伪随机函数假设矛盾的结果,因此 (G_2) 和 (G_3) 相互独立。考虑到 (G_2) 和 (G_3) 的独立性,可得出 (G_1) 是超级伪随机置换生成器。
总结
通过上述的定义、引理和定理,我们详细阐述了如何从伪随机函数构建伪随机置换,以及如何基于单个伪随机函数构建超级伪随机置换生成器。这些结果在密码学中具有重要的应用价值,为设计安全的分组密码系统提供了理论基础。
以下是相关概念和步骤的流程图:
graph TD
A[基本符号与定义] --> B[伪随机置换的构建]
B --> C[超级伪随机置换]
C --> D[基于单个伪随机函数构建超级伪随机置换生成器]
D --> E[总结]
以下是相关定义和性质的表格总结:
| 概念 | 定义 |
| — | — |
| 函数生成器 (F) | 索引:每个 (F_n) 为长度为 (l(n)) 的 (k) 指定 (f_{n,k} \in H_n);多项式时间求值:给定 (k \in C^{l(n)}) 和 (x \in C^n),(f_{n,k}(x)) 可在多项式时间内计算 |
| 区分电路族 | 无限电路族 ({C_{n_1}, C_{n_2}, \ldots}),满足大小和区分概率条件 |
| 伪随机函数生成器 | 没有区分电路族的函数生成器 |
| 置换生成器 (F) | 每个 (f_{n,k}) 是一一对应且满射的函数生成器,可逆则其逆也是置换生成器 |
| 超级区分电路族 | 无限电路族 ({SC_{n_1}, SC_{n_2}, \ldots}),包含正常和逆预言机门,满足大小和区分概率条件 |
| 超级伪随机置换生成器 | 没有超级区分电路族的置换生成器 |
通过这些内容,我们可以更深入地理解伪随机置换生成器的构建和安全性分析,为密码学的研究和应用提供有力的支持。
伪随机置换生成器的构建与分析
构建超级伪随机置换生成器的详细步骤
为了更清晰地展示如何基于单个伪随机函数构建超级伪随机置换生成器,下面将详细梳理整个过程。
-
初步构建 (G_1) 并分析 (G_2) 和 (G_3)
- 首先构建 (G_1 = \psi(h, 1, f) \circ \psi(h, 1, f)),为了证明 (G_1) 是超级伪随机置换生成器,我们先对 (G_2 = \psi(h, 1, f, h, 1)) 和 (G_3 = \psi(f, 1, h, f, 1)) 进行分析。
- 对于 (G_2),当区分器检查预言机时,输入为 (2n) 位字符串 ((L \parallel R)),输出为 ((S \parallel T)),其中 (S = L \oplus R \oplus f(L \oplus h(T \oplus R)) \oplus h(R \oplus h(L \oplus R) \oplus f(L \oplus h(L \oplus R)))),(T = R \oplus h(L \oplus R) \oplus f(L \oplus h(L \oplus R)))。信息泄漏的情况分为 (X)((G_2) 第二轮 (h) 的输出)“坏的”和 (Y)((G_2) 第三轮 (f) 的输出)“坏的”两种,分别对应不同的输入条件和碰撞概率。
- (G_3) 的结构与 (G_2) 类似,只是 (h) 和 (f) 的位置互换,其信息泄漏情况和概率分析与 (G_2) 相似。
-
证明 (G_2) 和 (G_3) 的独立性
-
对于 (D) - 区分电路 (DC_{2n}),区分器有两种预言机门。当从 (P_{2n}) 中独立随机选择两个置换和从 (H_n) 中独立随机选择 (f, h) 并用于 (G_2) 和 (G_3) 结构时,区分器能做出决策的情况有两种:
- 随机函数 (f) 和 (h) 发生碰撞:存在一对预言机门 (O_i, O_j),使得 (x_{i,2} = x_{j,3} = x) 且 (y_{i,2} = y_{j,3} = y),在某些输入条件下有 (T_i \oplus T_j = R_i \oplus R_j) 或 (S_i \oplus S_j = L_i \oplus L_j),概率为 (\frac{m^2}{2^{2n}})。
- 随机函数 (f) 碰撞且随机函数 (h) 碰撞:存在一对预言机门 (O_i, O_j),使得 (x_{i,2} = y_{j,3}) 且 (y_{i,2} = x_{j,3}),在某些输入条件下有 (T_i \oplus T_j = R_i \oplus R_j),概率为 (\frac{m^2}{2^{2n}})。
- 通过对这些情况的分析,得出 (| Prob{DC_{2n}[G_2, G_3] = 1} - Prob{DC_{2n}[P_{2n}, P_{2n}] = 1} | \leq \frac{m^2}{2^{2n}}),从而证明 (G_2) 和 (G_3) 相互独立。
-
对于 (D) - 区分电路 (DC_{2n}),区分器有两种预言机门。当从 (P_{2n}) 中独立随机选择两个置换和从 (H_n) 中独立随机选择 (f, h) 并用于 (G_2) 和 (G_3) 结构时,区分器能做出决策的情况有两种:
-
证明 (G_1) 的超级伪随机性
- 假设 (G_2) 和 (G_3) 不独立,存在一个 (D) - 区分电路使得 (| Prob{DC_{2n}[G_3, G_1] = 1} - Prob{DC_{2n}[P_{2n}, P_{2n}] = 1} | > \frac{1}{n^{c_2}})。
- 通过一系列不等式推导,如 (| Prob{DC_{2n}[G_3, G_1] = 1} - Prob{DC_{2n}[G_3, G_3] = 1} + Prob{DC_{2n}[G_3, G_3] = 1} - Prob{DC_{2n}[P_{2n}, P_{2n}] = 1} | > \frac{1}{n^{c_2}}),会得出与引理 3 或伪随机函数假设矛盾的结果,因此 (G_2) 和 (G_3) 相互独立。
- 基于 (G_2) 和 (G_3) 的独立性,可得出 (G_1) 是超级伪随机置换生成器。
实际应用中的考虑因素
在实际应用中,构建超级伪随机置换生成器时需要考虑以下因素:
1.
计算复杂度
- 函数生成器的多项式时间求值要求确保了在实际应用中能够高效地计算函数值。例如,给定密钥 (k \in C^{l(n)}) 和字符串 (x \in C^n),(f_{n,k}(x)) 可以在多项式时间内计算。
- 预言机电路的大小(门之间的连接总数)也会影响计算复杂度,需要在设计电路时进行合理优化。
2.
安全性
- 区分电路族和超级区分电路族的定义用于衡量函数生成器和置换生成器的安全性。在实际应用中,需要确保生成器没有相应的区分电路族,以保证其伪随机性和超级伪随机性。
- 对于信息泄漏的情况,如 (G_2) 和 (G_3) 中 (X) 和 (Y) “坏的”情况,需要尽量避免,以防止攻击者利用这些信息进行攻击。
3.
密钥管理
- 函数生成器的索引性质要求为每个长度为 (l(n)) 的 (k) 指定一个函数 (f_{n,k} \in H_n),因此密钥的管理和分配至关重要。需要确保密钥的随机性和安全性,以防止密钥被破解导致整个系统的安全性受到威胁。
相关概念和步骤的进一步流程图
graph TD
A[构建 \(G_1\)] --> B[分析 \(G_2\) 和 \(G_3\)]
B --> C[证明 \(G_2\) 和 \(G_3\) 独立性]
C --> D[证明 \(G_1\) 超级伪随机性]
D --> E[实际应用考虑因素]
E --> F[计算复杂度]
E --> G[安全性]
E --> H[密钥管理]
实际应用考虑因素的表格总结
| 考虑因素 | 具体内容 |
|---|---|
| 计算复杂度 | 函数生成器多项式时间求值,预言机电路大小优化 |
| 安全性 | 避免区分电路族,防止信息泄漏 |
| 密钥管理 | 确保密钥随机性和安全性,合理分配密钥 |
结论
通过对伪随机置换生成器的构建和分析,我们深入了解了如何从伪随机函数构建伪随机置换,以及如何基于单个伪随机函数构建超级伪随机置换生成器。这些理论和方法在密码学中具有重要的应用价值,为设计安全的分组密码系统提供了坚实的理论基础。
在实际应用中,需要综合考虑计算复杂度、安全性和密钥管理等因素,以确保系统的高效性和安全性。未来,随着密码学的不断发展,伪随机置换生成器的研究和应用也将不断深入,为信息安全提供更强大的保障。
1216

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



