上下文无关树文法与加密方案的复杂性及攻击分析
1. 上下文无关树文法相关概念
1.1 索引文法
索引文法是一个元组 (G = (N, Σ, Γ, S, P)),其中 (N)、(Σ) 和 (Γ) 是字母表,(S \in N),(P) 是有限的产生式集合,其形式如下:
1. (A(y) \to B_1(y) \cdots B_k(y))
2. (A(y) \to B(\gamma y))
3. (A(\gamma y) \to B(y))
4. (A(y) \to a)
这里 (A)、(B)、(B_1)、(\cdots)、(B_k \in N),(k \in N),(\gamma \in Γ),(a \in Σ)。若所有形式(1)的产生式满足 (k \geq 1),则称 (G) 为 (\epsilon) - 自由的。
索引文法与下推树自动机(pta)有明显的相似性,(\Rightarrow_G) 以及 (L(G)) 的定义类似。“yield 定理”体现了这种相似性。
1.2 相关引理与推论
- 引理 9 :设 (L \subseteq (Σ^{(0)})^*),则存在一个基于 (Σ) 的 pta (M) 使得 (L = yield(L(M))) 当且仅当存在一个基于 (Σ^{(0)}) 的 (\epsilon) - 自由索引文法 (G) 使得 (L = L(G))。并且,(G) 可以从 (M) 以对数空间计算得到,反之亦然。
- 推论 1 :(\epsilon) - 自由索引文法的一致成员问题是 PSPACE - 完全的。相比之下,带有 (\epsilon) - 规则的索引文法的一致成员问题是 EXP - 完全的。
1.3 上下文无关树文法的成员问题
上下文无关树文法(cftg)的非一致成员问题的 NP 上界已有证明。若将 (T_Σ) 中的树视为 (Σ \cup C) 上括号匹配良好的单词,那么上下文无关树语言可以被理解为索引字符串语言。
-
定理 3
:(Σ) 上的 cftg 的成员问题属于 NP。
其证明过程如下:设 (G) 是成员问题中固定的 cftg,构造一个等价的增强 pta (M) 以及 (M^{\dagger})。由于 (G) 不是输入的一部分,(M^{\dagger}) 可以在常数时间内构造。考虑算法 2 中的非确定性决策过程:
输入: ξ ∈ TΣ
输出: “Yes” if ξ ∈ L(M), 否则发散
选择一些 d ∈ R∗† 使得 |d| ≤ μ(ξ)² + μ(ξ) 且具有 μ(ξ) - 有界下推
如果 q0(η) ⇒d M† ξ 则返回 “Yes” 否则发散
根据引理 8,(L(M^{\dagger}) = L(M^{\sharp})),且 (L(M^{\sharp}) = L(M))。所以,如果该过程返回 “Yes”,则存在 (d \in D_{M^{\dagger}}(q_0(\epsilon), ξ)),因此 (\xi \in L(M))。反之,如果 (\xi \in L(M)),则一定存在 (d’ \in D_{M^{\sharp}}(q_0(\epsilon), ξ)),根据引理 7,可假设 (|d’| \leq μ(ξ)² + μ(ξ))。根据引理 8,存在具有相同长度界的 (d \in D_{M^{\dagger}}(q_0(\epsilon), ξ)),因此该过程返回 “Yes”。
- 定理 4 :存在一个带等级的字母表 (Σ) 和一个基于 (Σ) 的 cftg (G),使得 (G) 的成员问题是 NP - 难的。
1.4 相关概念总结表格
| 概念 | 描述 |
|---|---|
| 索引文法 | 元组 (G = (N, Σ, Γ, S, P)),有特定形式的产生式 |
| (\epsilon) - 自由索引文法 | 形式(1)产生式满足 (k \geq 1) 的索引文法 |
| pta | 与索引文法有相似性,用于相关语言的处理 |
| 上下文无关树文法(cftg) | 成员问题有特定的复杂度结果 |
1.5 索引文法与 cftg 关系流程图
graph LR
A[索引文法] -->|相似性| B[pta]
B -->|引理 9| C[\(\epsilon\) - 自由索引文法]
C -->|推论 1| D[PSPACE - 完全问题]
A -->|转换| E[cftg]
E -->|定理 3| F[NP 成员问题]
E -->|定理 4| G[NP - 难问题]
2. BEAR 和 LION 加密方案
2.1 背景介绍
BEAR 和 LION 是 1996 年由 Biham 和 Anderson 引入的分组密码。它们高效地使用了哈希函数和流密码,若这两个基本组件已存在,其硬件实现将很简单。在某些理想条件下,BEAR/LION 不存在单对密钥恢复攻击,但它们的安全性曾受到质疑。
2.2 符号与基本设定
用 (F) 表示域 (F_2),(R) 和 (L) 分别表示 (F^r) 和 (F^l) 中的元素((r > l))。明文集合由形式为 ((L_i, R_i) \in F^{l + r}) 的消息组成,密钥空间 (K) 的元素形式为 (K = (K_1, K_2) \in F^k \times F^k),其中 (k \geq l)。
2.3 BEAR 加密方案
2.3.1 组件特性
-
密钥哈希函数 (H_K):(F^r \to F^l)
- 基于无密钥哈希函数 (H’):(F^{r + k} \to F^l),密钥附加或前置到消息上。
- 是单向且无碰撞的,即给定 (Y) 很难找到 (X) 使得 (H’(X) = Y),也很难找到不相等的 (X) 和 (Y) 使得 (H’(X) = H’(Y))。
- 是伪随机的,给定任意输入集的 (H’(X_i)),很难预测新输入 (Y) 的 (H’(Y)) 的任何位。
-
流密码 (S):(F^l \to F^r)
- 抵抗密钥恢复攻击,即给定 (S(X)) 很难找到种子 (X)。
- 抵抗扩展攻击,即很难扩展 (Y) 的任何部分流。
2.3.2 加密/解密过程
| 操作 | 加密 | 解密 |
|---|---|---|
| 第一步 | (L = L + H_{K_1}(R)) | (L = L’ + H_{K_2}(R’)) |
| 第二步 | (R’ = R + S(L)) | (R = R’ + S(L)) |
| 第三步 | (L’ = L + H_{K_2}(R’)) | (L = L + H_{K_1}(R)) |
2.3.3 相关定理
- 定理 1 :给定一个明文/密文对来找到 BEAR 密钥的预言机,可以高效且高概率地找到流密码 (S) 对于任何输出 (Y = S(M)) 的种子 (M)。
- 定理 2 :给定一个明文/密文对来找到 BEAR 密钥的预言机,可以高效且高概率地找到哈希函数 (H’) 的原像和碰撞。
- 推论 1 :如果无法高效地找到 (S) 的种子或无法高效地找到 (H’) 的原像和碰撞,那么 BEAR 不存在高效的单对密钥恢复攻击。
2.4 LION 加密方案
2.4.1 组件特性
- 哈希函数 (H):(F^r \to F^l) :是单向且无碰撞的,即给定 (Y) 很难找到 (X) 使得 (H(X) = Y),也很难找到不相等的 (X) 和 (Y) 使得 (H(X) = H(Y))。
-
流密码 (S):(F^l \to F^r)
- 是伪随机的。
- 抵抗密钥恢复攻击,即给定 (S(X)) 很难找到种子 (X)。
- 抵抗扩展攻击,即很难扩展 (Y) 的任何部分流。
2.4.2 加密/解密过程
| 操作 | 加密 | 解密 |
|---|---|---|
| 第一步 | (R = R + S(L + K_1)) | (R = R’ + S(L’ + K_2)) |
| 第二步 | (L’ = L + H(R)) | (L = L’ + H(R)) |
| 第三步 | (R’ = R + S(L’ + K_2)) | (R = R + S(L + K_1)) |
2.4.3 相关定理
- 定理 4 :给定一个明文/密文对来找到 LION 密钥的预言机,可以高效且高概率地找到流密码 (S) 对于任何特定输出 (Y = S(M)) 的种子 (M)。
- 定理 5 :假设 ((S, H)) 是一个好的配对,给定一个明文/密文对来找到 LION 密钥的预言机,可以高效且高概率地找到哈希函数 (H) 的原像和碰撞。
2.5 BEAR 和 LION 组件特性对比表格
| 组件 | BEAR | LION |
|---|---|---|
| 哈希函数 | 密钥哈希函数 (H_K),有特定构造和特性 | 哈希函数 (H),单向无碰撞 |
| 流密码 | 抵抗密钥恢复和扩展攻击 | 伪随机,抵抗密钥恢复和扩展攻击 |
2.6 BEAR 加密过程流程图
graph LR
A[明文 (L, R)] --> B[L = L + H_{K1}(R)]
B --> C[R' = R + S(L)]
C --> D[L' = L + H_{K2}(R')]
D --> E[密文 (L', R')]
3. 对 BEAR 和 LION 的攻击
3.1 攻击背景
之前的研究表明,如果哈希函数或流密码是理想的,BEAR 和 LION 不存在实际的密钥恢复攻击。但在现实情况中,这些基本组件并非完全安全。下面将介绍对 BEAR 和 LION 的攻击方法。
3.2 衡量非理想性的定义
3.2.1 BEAR 相关定义
- 定义 4 :设 (H_K : F^r \to F^l) 是密钥哈希函数,若对于每个 (K) 和 (R),给定 (Z = H_K(R)) 和 (R),存在一个算法以期望成本 (2^t) 次 (H) - 评估来恢复密钥 (K),则称 (H_K) 是 (t) - 密钥抵抗的。
- 定义 5 :设 (S : F^l \to F^r) 是单射流密码,若给定 (S(L)),存在一个算法以期望成本 (2^u) 次 (S) - 评估来恢复种子 (L),则称 (S) 是 (u) - 抵抗的。
理想的 ({H_K}_{K \in F^k}) 是 ((k - 1)) - 密钥抵抗的,理想的流密码 (S) 是 ((l - 1)) - 抵抗的,所以 (t \leq k - 1) 且 (u \leq l - 1)。
3.2.2 LION 相关定义
- 定义 6 :设 (H : F^r \to F^l) 是哈希函数,(S : F^l \to F^r) 是流密码,若对于随机的 (R),(Y \in F^r),给定 (Z = H(R)),存在一个算法以期望成本 (2^t) 次 (H) - 评估来恢复 (Z) 在 (Im(S) + Y) 中的原像,则称 (H) 是 (t) - 抵抗的。理想的 (H) 是 (l) - 抵抗的,即 (0 \leq t \leq l)。
- 定义 7 :设 (S : F^l \to F^r) 是流密码,若对于随机的 (K) 和 (L),给定 (S(L + K)) 和 (L),存在一个算法以期望成本 (2^u) 次 (S) - 评估来恢复 (K),则称 (S) 是 (u) - 密钥抵抗的。理想情况下 (u \leq l - 1)。
3.3 对 BEAR 的攻击
3.3.1 攻击 A(选择明文攻击)
此攻击假设密钥哈希函数不是理想的,即它是 (t) - 密钥抵抗的(流密码可以是理想的)。具体步骤如下:
1. 设 (Y = S(0)),选择一个随机的 (\tilde{R})。存在 (\tilde{L} \in F^l) 使得 (\tilde{L} = H_{K_1}(\tilde{R}))。
2. 加密一些明文 ({(L, \tilde{R}) | L \in F^l}),直到得到一个密文 ((L’, R’)) 满足 (\tilde{R} + R’ = Y),平均需要 (2^{l - 1}) 次尝试。
3. 从 (L’ = H_{K_2}(R’)) 以期望成本 (2^t) 次 (H) - 评估恢复 (K_2),从 (\tilde{L} = H_{K_1}(\tilde{R})) 以期望成本 (2^t) 次 (H) - 评估恢复 (K_1)。
3.3.2 攻击 B(已知明文攻击)
此攻击假设流密码也不是理想的,即它是 (u) - 抵抗的。具体步骤如下:
1. 给定任意随机的明文/密文对 ((L, R)) 和 ((L’, R’)),计算 (R + R’ = S(L)),以期望成本 (2^u) 次 (S) - 评估恢复 (L)。
2. 计算 (L + \overline{L} = H_{K_1}(R)),以期望成本 (2^t) 次 (H) - 评估恢复 (K_1)。
3. 计算 (L’ + \overline{L} = H_{K_2}(R’)),以期望成本 (2^t) 次 (H) - 评估恢复 (K_2)。
3.3.3 攻击复杂度对比表格
| 攻击类型 | 期望成本 |
|---|---|
| 攻击 A | (2^{t + 1}) 次 (H) - 评估 + (2^{l - 1}) 次加密(相当于 (2^l) 次 (H) - 评估 + (2^{l - 1}) 次 (S) - 评估) |
| 攻击 B | (2^{t + 1}) 次 (H) - 评估 + (2^u) 次 (S) - 评估 |
3.3.4 BEAR 攻击流程对比图
graph LR
A[攻击 A] --> B[选择随机 \(\tilde{R}\), 加密 \((L, \tilde{R})\) 找 \(\tilde{L}\)]
B --> C[恢复 \(K_1\) 和 \(K_2\)]
D[攻击 B] --> E[计算 \(R + R' = S(L)\) 恢复 \(L\)]
E --> F[恢复 \(K_1\) 和 \(K_2\)]
3.4 对 LION 的攻击
3.4.1 攻击 C(已知明文攻击)
此攻击假设哈希函数是 (t) - 抵抗的,流密码是 (u) - 密钥抵抗的。具体步骤如下:
1. 考虑任意随机的明文/密文对 ((L, R)) 和 ((L’, R’)),计算 (Y = L + L’)。
2. 以 (2^t) 次操作找到 (Y) 在 (Im(S) + R) 中的原像 (\overline{R})。
3. 计算 (R + \overline{R} = S(L + K_1)),以期望成本 (2^u) 次 (S) - 评估恢复 (K_1)。
4. 计算 (R’ + \overline{R} = S(L’ + K_2)),以期望成本 (2^u) 次 (S) - 评估恢复 (K_2)。
3.4.2 攻击 C 复杂度
攻击 C 的期望成本是 (2^t) 次 (H) - 评估 + (2^{u + 1}) 次 (S) - 评估。
3.4.3 LION 攻击 C 流程图
graph LR
A[明文/密文对 (L, R), (L', R')] --> B[计算 Y = L + L']
B --> C[找 Y 在 Im(S) + R 中的原像 \(\overline{R}\)]
C --> D[计算 R + \(\overline{R}\) 恢复 \(K_1\)]
C --> E[计算 R' + \(\overline{R}\) 恢复 \(K_2\)]
3.5 攻击总结表格
| 攻击对象 | 攻击类型 | 假设条件 | 期望成本 |
|---|---|---|---|
| BEAR | 攻击 A | 密钥哈希函数 (t) - 密钥抵抗 | (2^{t + 1}) 次 (H) - 评估 + (2^{l - 1}) 次加密 |
| BEAR | 攻击 B | 密钥哈希函数 (t) - 密钥抵抗,流密码 (u) - 抵抗 | (2^{t + 1}) 次 (H) - 评估 + (2^u) 次 (S) - 评估 |
| LION | 攻击 C | 哈希函数 (t) - 抵抗,流密码 (u) - 密钥抵抗 | (2^t) 次 (H) - 评估 + (2^{u + 1}) 次 (S) - 评估 |
综上所述,在实际应用中,由于哈希函数和流密码很难达到理想状态,BEAR 和 LION 加密方案存在一定的安全风险。通过对这些攻击的分析,可以更好地评估和改进加密系统的安全性。
超级会员免费看
699

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



