51、PMAC、TMAC和XCBC的新边界分析

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算法在不同场景下的安全性。

通过短时倒谱(Cepstrogram)计算进行时-倒频分析研究(Matlab代码实现)内容概要:本文主要介绍了一项关于短时倒谱(Cepstrogram)计算在时-倒频分析中的研究,并提供了相应的Matlab代码实现。通过短时倒谱分析方法,能够有效提取信号在时间与倒频率域的特征,适用于语音、机械振动、生物医学等领域的信号处理与故障诊断。文中阐述了倒谱分析的基本原理、短时倒谱的计算流程及其在实际工程中的应用价值,展示了如何利用Matlab进行时-倒频图的可视化与分析,帮助研究人员深入理解非平稳信号的周期性成分与谐波结构。; 适合人群:具备一定信号处理基础,熟悉Matlab编程,从事电子信息、机械工程、生物医学或通信等相关领域科研工作的研究生、工程师及科研人员。; 使用场景及目标:①掌握倒谱分析与短时倒谱的基本理论及其与傅里叶变换的关系;②学习如何用Matlab实现Cepstrogram并应用于实际信号的周期性特征提取与故障诊断;③为语音识别、机械设备状态监测、振动信号分析等研究提供技术支持与方法参考; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,先理解倒谱的基本概念再逐步实现短时倒谱分析,注意参数设置如窗长、重叠率等对结果的影响,同时可将该方法与其他时频分析方法(如STFT、小波变换)进行对比,以提升对信号特征的理解能力。
先看效果: https://pan.quark.cn/s/aceef06006d4 OJBetter OJBetter 是一个 Tampermonkey 脚本项目,旨在提升你在各个在线评测系统(Online Judge, OJ)网站的使用体验。 通过添加多项实用功能,改善网站界面用户交互,使你的编程竞赛之旅更加高效、便捷。 ----- 简体中文 ----- 安装 主要功能 安装脚本,你可以获得: 黑暗模式支持:为网站添加黑暗模式,夜晚刷题不伤眼。 网站本地化:将网站的主要文本替换成你选择的语言。 题目翻译:一键翻译题目为目标语言,同时确保不破坏 LaTeX 公式。 Clist Rating 分数:显示题目的 Clist Rating 分数数据。 快捷跳转:一键跳转到该题在洛谷、VJudge 的对应页面。 代码编辑器:在题目页下方集成 Monaco 代码编辑器,支持自动保存、快捷提交、在线测试运行等功能。 一些其他小功能…… [!NOTE] 点击 网页右上角 的 按钮,即可打开设置面板, 绝大部分功能均提供了帮助文本,鼠标悬浮在 ”? 图标“ 上即可查看。 使用文档 了解更多详细信息使用指南,请访问 Wiki 页面。 如何贡献 如果你有任何想法或功能请求,欢迎通过 Pull Requests 或 Issues 与我们分享。 改善翻译质量 项目的非中文版本主要通过机器翻译(Deepl & Google)完成,托管在 Crowdin 上。 如果你愿意帮助改进翻译,使其更准确、自然,请访问 Crowdin 项目页面 贡献你的力量。 支持其他OJ? 由于作者精力有限,并不会维护太多的类似脚本, 如果你有兴趣将此脚本适配到其他在线评测系统,非常欢迎,你只需要遵守 GP...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值