PMAC、TMAC和XCBC的新边界分析
1. PMAC概述
在密码学中,PMAC(Parallelizable Message Authentication Code)是一种消息认证码算法。它的设计基于“powering - up construction”思想,利用常数与变量的乘法比变量之间的乘法更简单这一特性。例如,与2相乘(即双倍操作)只需进行位移位,然后根据条件进行异或操作。因此,从 (2^{\alpha - 1}3^{\beta}) 或 (2^{\alpha}3^{\beta - 1}) 计算 (2^{\alpha}3^{\beta}) 的速度比一次分组密码调用要快得多。
对于分组密码 (E_K),PMAC的定义如下:
- 首先,将输入 (x \in \Sigma^
) 划分为 ((x[1], \ldots, x[m])),其中 (m = |x|
n \stackrel{\text{def}}{=} \max{\lceil|x|/n\rceil, 1}),且 (x[i] \in \Sigma^n)((i = 1, \ldots, m - 1)),(x[m] \in \Sigma^{\leq n})。
- 预处理阶段,计算 (L = E_K(0)),这里的 (0) 是全零的 (n) 位序列。
- 对于输入 (x),其标签 (Y = E_K(P
{sum} \oplus \text{pad}(x[m]) \oplus 2^m3^{I(x)})),其中:
- 若 (m > 1),(P_{sum} = \sum_{\alpha = 1}^{m - 1} E_K(x[\alpha] \oplus 2^{\alpha}L));若 (m = 1),(P_{sum} = 0)。
- (I(x)) 的定义为:若 (|x|) 是 (n) 的倍数,则 (I(x) = 1);否则 (I(x) = 2)。
- (\text{pad}(x[m])) 的定义为:若 (|x[m]| = n),则 (\text{pad}(x[m]) = x[m]);否则 (\text{pad}(x[m]) = x[m] | 10^
),其中 (x[m] | 10^*) 是 (x[m]) 与 ((n - |x[m]|)) 位序列 ((100 \ldots 0)) 的连接。
Rogaway证明了PMAC的安全性,相关定理如下:
定理1:设 (PMAC[P_n]) 是使用 (P_n) 的PMAC,则有 (Adv_{PMAC[P_n]}^{vil - qrf}(q, \sigma) \leq 5.5\sigma^2/2^n) 和 (Adv_{PMAC[P_n]}^{vil - qrf}(q, \ell) \leq 5.5\ell^2q^2/2^n),其中 (q)、(\sigma) 和 (\ell) 如第2节所定义。
2. PMAC的新安全边界
新的安全边界定理如下:
定理2:设 (PMAC[P_n]) 是使用 (P_n) 的PMAC,则有 (Adv_{PMAC[P_n]}^{vil - qrf}(q, \ell) \leq \frac{5\ell q^2}{2^n - 2\ell})。当 (\ell \leq 2^{n - 2}) 时,(Adv_{PMAC[P_n]}^{vil - qrf}(q, \ell) \leq 10\ell q^2/2^n)。
3. 证明所需的符号和定义
为了使证明更加直观和简单,采用了Maurer的方法,并使用了以下符号和定义:
-
单调事件序列(MES)
:考虑随机函数 (F) 的 (i) 个输入/输出对以及可能的一些内部变量定义的事件 (a_i),(\overline{a_i}) 是 (a_i) 的否定。假设 (a_i) 是单调的,即若 (a_{i - 1}) 发生,则 (a_i) 不会发生。例如,若 (a_i) 表示所有 (i) 个输出都不同,则 (a_i) 是单调的。无限序列 (A = a_0a_1 \ldots) 称为单调事件序列(MES),其中 (a_0) 是一个重言式事件。若 (A = a_0a_1 \ldots) 和 (B = b_0b_1 \ldots) 都是MES,则 (A \land B = (a_0 \land b_0)(a_1 \land b_1) \ldots) 也是MES。
-
(\text{dist}(X_i))
:对于变量序列 (X_1, X_2, \ldots),(X_i) 表示 ((X_1, \ldots, X_i)),(\text{dist}(X_i))(或等价地,(\text{dist}(X(i))),其中 (X(i)) 是集合 ({X_j}
{j = 1, \ldots, i}))表示 (X_1, X_2, \ldots, X_i) 不同的事件。
-
(\nu_{\theta}(F, a_q)) 和 (\mu_{\theta}(F, a_q))
:设 (\theta) 包含 (q)。对于为 (F) 定义的MES (A),(\nu
{\theta}(F, a_q)) 表示与 (F) 交互的任何 (\theta - CPA) 使 (a_q) 发生的最大概率;(\mu_{\theta}(F, a_q)) 表示任何非自适应 (\theta - CPA) 使 (a_q) 发生的最大概率。对于 (\theta = (q, \ell)),它们简记为 (\nu_{\ell}(F, a_q)) 和 (\mu_{\ell}(F, a_q));若 (\theta = q),则省略下标,如写成 (\nu(F, a_q))。
4. PHASH分析
证明定理2需要对 (PMAC[P_n]) 的消息哈希部分(称为PHASH)进行分析。对于 (x = (x[1], \ldots, x[m]) \in (\Sigma^n)^m),PHASH的定义为:
(PHASH(x) \stackrel{\text{def}}{=} \sum_{i = 1, \ldots, m} P_n(x[i] \oplus 2^iL)),其中 (L = P_n(0))。
引理2:对于任意 (x = (x[1], \ldots, x[m]) \in (\Sigma^n)^m) 和 (x’ = (x’[1], \ldots, x’[m’]) \in (\Sigma^n)^{m’})((x \neq x’)),以及任意函数 (f: \Sigma^n \to \Sigma^n),有:
(\Pr[PHASH(x) \oplus PHASH(x’) = f(L)] \leq \frac{m + m’}{2^n} + \frac{1}{2^n - (m + m’)})
(\Pr[PHASH(x) = f(L)] \leq \frac{m}{2^n} + \frac{1}{2^n - m})
证明过程如下:
- 只证明第一个等式,第二个等式可类似证明。固定 (x) 和 (x’),令 (U_i = x[i] \oplus 2^iL)((i = 1, \ldots, m)),(U_i = x’[i - m] \oplus 2^{i - m}L)((i = m + 1, \ldots, m + m’))。则 (PHASH(x) \oplus PHASH(x’)) 等于 (Sum \stackrel{\text{def}}{=} P_n(U_1) \oplus \ldots \oplus P_n(U_{m + m’}))。
- 设 (U = {U_1, \ldots, U_{m + m’}} \setminus U_{coll}),其中 (U_{coll}) 是所有平凡碰撞的集合。为简单起见,假设没有平凡碰撞(即 (U = {U_1, \ldots, U_{m + m’}}))。
- 对于索引子集 ({i_1, \ldots, i_k} \subseteq {1, \ldots, q}),若 (U_{i_1} = U_{i_2} = \cdots = U_{i_k}) 且 (U_{i_1} \neq U_h)((h \notin {i_1, \ldots, i_k})),则 (U_{sub} = {U_{i_j}}_{j = 1, \ldots, k}) 是一个等价集。所有等价集的和是 (U) 的一个分解。根据 (k) 的奇偶性,可分为奇等价集和偶等价集。
- 设 (odd_k) 是存在 (k) 个非零值的奇等价集的事件。通过分析可得:
- (\Pr[Sum = f(L)|odd_k] \leq \frac{1}{2^n - k})((0 < k \leq m + m’))
- 分析 (\Pr[odd_0]),可得 (\Pr[odd_0] \leq (m + m’)\frac{1}{2^n})
- 综合以上结果,可证明引理2。
5. 定理2的证明思路
为了证明定理2,引入了可调整的 (n) 位通用随机置换 (\widetilde{P}_n),其调整空间 (T = I \times J’),其中 (I = {1, \ldots, 2^{n/2}}),(J’ = {1, 2})。它由 (|T|) 个独立的 (n) 位通用随机置换组成,(\widetilde{P}_n(t, x)) 是由 (t \in T) 索引、输入为 (x \in \Sigma^n) 的 (n) 位通用随机置换的输出。
使用 (\widetilde{P}
n) 和与 (\widetilde{P}_n) 独立的 (P_n),定义了修改后的PMAC(MPMAC):
- 首先,计算 (L = P_n(0))。
- 对于输入 (x \in \Sigma^* = (x[1], \ldots, x[m])),使用PHASH计算 (P
{sum})(若 (m > 1),(P_{sum} = PHASH(\widetilde{x})),其中 (\widetilde{x} = (x[1], \ldots, x[m - 1]));若 (m = 1),(P_{sum} = 0))。
- 标签 (Y = \widetilde{P}
n((m, I(x)), P
{sum} \oplus \text{pad}(x[m]))),其中 ((m, I(x))) 是调整值。
证明思路基于三角不等式,因为优势是两个概率的绝对差,所以 (Adv_{PMAC[P_n],O_n}^{\text{cpa}}(\theta)) 不大于 (Adv_{PMAC[P_n],H}^{\text{cpa}}(\theta) + Adv_{H,O_n}^{\text{cpa}}(\theta)),这里 (H) 是一个中间函数。本证明使用MPMAC作为中间函数。
以下是PMAC和MPMAC的流程对比表格:
| 步骤 | PMAC | MPMAC |
| ---- | ---- | ---- |
| 预处理 | 计算 (L = E_K(0)) | 计算 (L = P_n(0)) |
| 消息划分 | 将 (x) 划分为 ((x[1], \ldots, x[m])) | 将 (x) 划分为 ((x[1], \ldots, x[m])) |
| 计算 (P_{sum}) | 若 (m > 1),(P_{sum} = \sum_{\alpha = 1}^{m - 1} E_K(x[\alpha] \oplus 2^{\alpha}L));若 (m = 1),(P_{sum} = 0) | 若 (m > 1),(P_{sum} = PHASH(\widetilde{x}));若 (m = 1),(P_{sum} = 0) |
| 计算标签 | (Y = E_K(P_{sum} \oplus \text{pad}(x[m]) \oplus 2^m3^{I(x)})) | (Y = \widetilde{P}
n((m, I(x)), P
{sum} \oplus \text{pad}(x[m]))) |
mermaid流程图如下:
graph TD;
A[输入x] --> B[预处理:计算L];
B --> C[划分x为(x[1], ..., x[m])];
C --> D{判断m是否大于1};
D -- 是 --> E[计算P_sum = PHASH(x[1], ..., x[m - 1])];
D -- 否 --> F[P_sum = 0];
E --> G[计算标签Y = Pn((m, I(x)), P_sum ⊕ pad(x[m]))];
F --> G;
PMAC、TMAC和XCBC的新边界分析
6. 证明定理2的具体步骤
为了证明定理2,需要定义一些随机变量。设 (X_i \in \Sigma^*) 是攻击者的第 (i) 个查询。若 (m = |X_i| n),则记 (X_i = (X_i[1], \ldots, X_i[m]))。对于 (PMAC[P_n]),定义 (M(q))((C(q)))为所有 (q) 个查询在PHASH中生成的 (P_n) 的输入(输出)集合,但不包括预处理结果 (L = P_n(0))。同时,定义 (Y_i \in \Sigma^n) 为第 (i) 个标签,(Y(q) \stackrel{\text{def}}{=} {Y_i} {i = 1, \ldots, q})。若 (m = |X_i| n > 1),定义 (V_i) 为第 (i) 个PHASH输出与 (\text{pad}(X_i[m])) 的异或;若 (m = 1),(V_i = \text{pad}(X_i))。此外,(S_i \stackrel{\text{def}}{=} V_i \oplus 2^m3^{I(X_i[m])}L),(S(q) \stackrel{\text{def}}{=} {S_i} {i = 1, \ldots, q})。在 (PMAC[P_n]) 中,(Y_i = P_n(S_i))。这些变量在MPMAC中也有类似定义,但 (Y_i) 在MPMAC中为 (\widetilde{P}_n((m, I(X_i[m])), V_i))。
引理3:设事件 (a_q \stackrel{\text{def}}{=} [M(q) \cap S(q) = \varnothing] \land [\text{dist}(S(q))] \land [0 \notin M(q) \cup S(q)]),(b_q \stackrel{\text{def}}{=} [\text{dist}(Y(q))]),(d_q \stackrel{\text{def}}{=} [C(q) \cap Y(q) = \varnothing]),(e_q \stackrel{\text{def}}{=} [L \notin Y(q)]),则有 (Adv_{PMAC[P_n],MPMAC}^{\text{cpa}}(q, \ell) \leq \nu_{\ell}(MPMAC, a_q \land b_q \land d_q \land e_q) \leq \nu_{\ell}(MPMAC, a_q \land b_q) + \nu_{\ell}(MPMAC, d_q \land e_q) \leq \frac{1}{2^n - 2\ell}[(4\ell - 2.5)q^2 + 1.5q])。
证明过程如下:
-
分析 (\nu_{\ell}(MPMAC, a_q \land b_q))
:
- 引理4表明 (\nu_{\ell}(MPMAC, a_q \land b_q) = \mu_{\ell}(MPMAC, a_q \land b_q) = \max_{X_q} P_{MPMAC}^{a_q|X_q} + \max_{X_q} P_{MPMAC}^{b_q|a_qX_q})。
- 设 (M_i) 为第 (i) 个PHASH调用中除获取 (L) 所用的全零输入外 (P_n) 的输入集合,(M(q) = M_1 \cup \cdots \cup M_q)。定义 (\chi_1 \stackrel{\text{def}}{=} \text{dist}(S(q))),(\chi_{2,i} \stackrel{\text{def}}{=} [S_i \notin M(q)]),(\chi_{3,i} \stackrel{\text{def}}{=} [S_i \neq 0]),(\chi_{4,i} \stackrel{\text{def}}{=} [0 \notin M_i]),且 (a_q \equiv \chi_1 \land \chi_2 \land \chi_3 \land \chi_4)((\chi_i \stackrel{\text{def}}{=} \chi_{i,1} \land \cdots \land \chi_{i,q}),(i = 2, 3, 4))。
- 通过联合边界及其变体可得:
- (\max_{X_q} P_{MPMAC}^{a_q|X_q} \leq \max_{X_q} P_{MPMAC}^{\chi_1|X_q} + \sum_{i = 1, \ldots, q}[\max_{X_q} P_{MPMAC}^{\chi_{2,i}|\chi_{4,i},X_q} + \max_{X_q} P_{MPMAC}^{\chi_{3,i}|\chi_{4,i},X_q} + \max_{X_q} P_{MPMAC}^{\chi_{4,i}|X_q}])。
- 对于 (\max_{X_q} P_{MPMAC}^{\chi_1|X_q}),通过对不同情况(如 (m = m’ = 1),(m > 1, m’ = 1) 等)的分析,可得 (\max_{X_q} P_{MPMAC}^{\chi_1|X_q} \leq \binom{q}{2}(\frac{2\ell - 2}{2^n} + \frac{1}{2^n - (2\ell - 2)}))。
- 对于 (\max_{X_q} P_{MPMAC}^{\chi_{2,i}|\chi_{4,i},X_q}),分析可知 (\max_{X_q} P_{MPMAC}^{\chi_{2,i}|\chi_{4,i},X_q} \leq \frac{2(\ell - 1)q}{2^n - (\ell - 1)})。
- 对于 (\max_{X_q} P_{MPMAC}^{\chi_{3,i}|\chi_{4,i},X_q}) 和 (\max_{X_q} P_{MPMAC}^{\chi_{4,i}|X_q}),有 (\max_{X_q} P_{MPMAC}^{\chi_{3,i}|\chi_{4,i},X_q} \leq \frac{2}{2^n - (\ell - 1)}),(\max_{X_q} P_{MPMAC}^{\chi_{4,i}|X_q} \leq \frac{\ell - 1}{2^n})。
- 综合可得 (\max_{X_q} P_{MPMAC}^{a_q|X_q} \leq \frac{1}{2^n - (2\ell - 2)}[(3\ell - 2.5)q^2 + 1.5q])。
- 由于 (a_q) 意味着对于所有 (1 \leq i < j \leq q),若第 (i) 个和第 (j) 个调整值相同,则 (V_i \neq V_j)。因此,给定 (a_q) 时,(Y_i) 和 (Y_j) 之间的碰撞概率至多为 (\frac{1}{2^n}),即 (\max_{X_q} P_{MPMAC}^{b_q|a_qX_q} \leq \binom{q}{2}\frac{1}{2^n})。
-
分析 (\nu_{\ell}(MPMAC, d_q \land e_q))
:
- 考虑一个可调整函数 (G),其输入和输出为 (n) 位,调整空间 (T = I \times J)((I = {1, \ldots, 2^{n/2}}),(J = {0, 1, 2}))。对于输入 (x \in \Sigma^n) 和调整 (t = (t[1], t[2]) \in T),若 (t[2] = 0),(G(t, x) \stackrel{\text{def}}{=} P_n(x));否则 (G(t, x) \stackrel{\text{def}}{=} \widetilde{P}
n((t[1], t[2]), x))。
- 攻击者对 (G) 进行 ((\ell - 1)q) 个 (P_n) 查询和 (q) 个 (\widetilde{P}_n) 查询(查询顺序任意),可模拟对MPMAC的任何 ((q, \ell) - CPA) 攻击。
- 若基于 (G) 的模拟生成 (G) 的 (\ell q) 个不同输出,则意味着MPMAC中 (d_q) 发生。因此,(\nu
{\ell}(MPMAC, d_q)) 至多为 (\nu_{\widetilde{\ell q}}(G, \text{dist}(Y(\ell q))) = \mu_{\widetilde{\ell q}}(G, \text{dist}(Y(\ell q))) \leq \frac{(\ell - 1)q^2}{2^n} + \binom{q}{2}\frac{1}{2^n})。
- 同理可得 (\nu_{\ell}(MPMAC, e_q) \leq \frac{q}{2^n}),进而 (\nu_{\ell}(MPMAC, d_q \land e_q) \leq \frac{(\ell - 1)q^2}{2^n} + \binom{q}{2}\frac{1}{2^n} + \frac{q}{2^n})。
7. 完成定理2的证明
推导 (Adv_{MPMAC}^{vil - qrf}(q, \ell)) 的上界相对容易,因为MPMAC可看作Carter - Wegman MAC(CW - MAC)的一个实例。由于相关引理与之前的CW - MAC引理几乎相同,这里省略证明。
综合上述对 (Adv_{PMAC[P_n],MPMAC}^{\text{cpa}}(q, \ell)) 和 (Adv_{MPMAC}^{vil - qrf}(q, \ell)) 的分析,结合证明思路中的三角不等式,可完成定理2的证明,即 (Adv_{PMAC[P_n]}^{vil - qrf}(q, \ell) \leq \frac{5\ell q^2}{2^n - 2\ell})。
以下是证明过程中关键步骤的总结表格:
| 步骤 | 关键内容 |
| ---- | ---- |
| 定义随机变量 | (X_i),(M(q)),(C(q)),(Y_i),(V_i),(S_i) 等 |
| 引理3 | 界定 (Adv_{PMAC[P_n],MPMAC}^{\text{cpa}}(q, \ell)) |
| 分析 (\nu_{\ell}(MPMAC, a_q \land b_q)) | 计算 (\max_{X_q} P_{MPMAC}^{a_q|X_q}) 和 (\max_{X_q} P_{MPMAC}^{b_q|a_qX_q}) |
| 分析 (\nu_{\ell}(MPMAC, d_q \land e_q)) | 借助可调整函数 (G) 进行分析 |
| 完成证明 | 结合三角不等式和MPMAC的性质 |
mermaid流程图如下:
graph TD;
A[开始证明定理2] --> B[定义随机变量];
B --> C[证明引理3];
C --> D{分析内容};
D -- \(\nu_{\ell}(MPMAC, a_q \land b_q)\) --> E[计算相关概率];
D -- \(\nu_{\ell}(MPMAC, d_q \land e_q)\) --> F[利用可调整函数G];
E --> G[综合分析];
F --> G;
G --> H[完成定理2证明];
通过以上分析,我们得到了PMAC的新安全边界,这对于理解和应用PMAC算法具有重要意义。在实际应用中,可以根据这些边界来评估PMAC算法在不同场景下的安全性。
超级会员免费看
115

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



