52、新型PMAC、TMAC和XCBC安全边界解析

新型PMAC、TMAC和XCBC安全边界解析

1. 引言

在密码学领域,消息认证码(MAC)是保障消息完整性和真实性的重要工具。然而,传统的CBC - MAC在处理具有相同前缀的消息时存在安全隐患。为了解决这一问题,研究人员提出了多种改进方案,如EMAC、TMAC和XCBC等。本文将详细探讨PMAC、TMAC和XCBC的新型安全边界,并对相关定理进行证明和分析。

2. PMAC安全边界

PMAC是一种常用的消息认证码算法。通过相关引理的推导,我们可以得到PMAC的安全边界。
- 引理5
[Adv_{MPMAC}^{vilqrf}(q, \ell) \leq \frac{q}{2}dp(\ell - 1) + \frac{q}{2}/2^n]
其中,(dp(m))表示(\max_{x,x’\in(\Sigma^n)^{\leq m},x\neq x’,u\in\Sigma^n} Pr[PHASH(x) \oplus PHASH(x’) = u])。
- 定理2
结合引理2、3和5,我们可以得到:
[Adv_{PMAC[P_n]}^{vilqrf}(q, \ell) \leq Adv_{PMAC[P_n],MPMAC}^{cpa}(q, \ell) + Adv_{MPMAC}^{vilqrf}(q, \ell)]
进一步推导可得:
[Adv_{PMAC[P_n]}^{vilqrf}(q, \ell) \leq \frac{(4\ell - 2.5)q^2 + 1.5q}{2^n - 2\ell} + \frac{q}{2}(\frac{2\ell - 2}{2^n} + \frac{1}{2^n - (2\ell - 2)} + \frac{1}{2^n})]
[ \leq \frac{(5\ell - 2.5)q^2 + (1.5 - \ell)q}{2^n - 2\ell} \leq \frac{5\ell q^2}{2^n - 2\ell}]
这里,最后一个不等式在(q, \ell \geq 1)时成立。

3. TMAC和XCBC安全边界

CBC - MAC在处理特定消息时存在安全问题,TMAC和XCBC作为改进方案,使用一个分组密码密钥和一些额外密钥,避免了两个分组密码密钥调度。
- TMAC和XCBC定义
- CBC函数 :对于输入(x = (x[1], \ldots, x[m]) \in (\Sigma^n)^m),(CBC(x) = C_m),其中(C_i = P_n(x[i] \oplus C_{i - 1}))且(C_0 = 0)。
- TMAC :对于输入(x \in \Sigma^ ),将(x)划分为(x = (x[1], \ldots, x[m])),(m = |x|_n)。若(m > 1),标签(Y = P_n(CBC(\hat{x}) \oplus pad(x[m]) \oplus 2^{I(x) - 1}L)),其中(\hat{x} = (x[1], \ldots, x[m - 1])),(L)在(\Sigma^n)上独立且均匀分布;若(m = 1),(Y = P_n(pad(x) \oplus 2^{I(x) - 1}L))。
-
XCBC :与TMAC类似,但使用两个(n)位密钥(L_1)和(L_2)作为掩码值,而不是(L)和(2L)。
-
定理3 *:
对于使用(P_n)的TMAC,有:
[Adv_{TMAC[P_n]}^{vilqrf}(q, \ell) \leq \frac{4\ell q^2}{2^n} + \frac{64\ell^4 q^2}{2^{2n}}]
该边界同样适用于XCBC。

4. 定理3证明

由于证明结构与定理2相似,这里仅给出证明概要。
- 定义修改后的TMAC(MTMAC)
- 对于消息(x),划分为((x[1], \ldots, x[m])),(m = |x| n)。当(m > 1)时,标签(Y = \tilde{P}_n(I(x), CBC(\hat{x}) \oplus pad(x[m])));当(m = 1)时,(Y = \tilde{P}_n(I(x), pad(x)))。
- 定义相关变量:
- (X_i):第(i)个查询。
- (M(q))和(C(q)):分别为所有(q)个查询在CBC函数中生成的(P_n)的输入和输出集合。
- (Y_i):第(i)个标签,(Y^{(q)} = {Y_i}
{i = 1, \ldots, q})。
- 当(|X_i| n = m > 1)时,(V_i)为第(i)个CBC输出和(pad(X_i[m]))的异或;当(m = 1)时,(V_i = pad(X_i))。
- (S_i = V_i \oplus 2^{I(X_i) - 1}L),(S^{(q)} = {S_i}
{i = 1, \ldots, q})(在MTMAC中,(S_i)为虚拟变量)。
- 定义事件:
- (a_q = dist(S^{(q)}) \land [M^{(q)} \cap S^{(q)} = \varnothing])
- (b_q = dist(Y^{(q)}))
- (d_q = [C^{(q)} \cap Y^{(q)} = \varnothing])
- 得到不等式:
[Adv_{TMAC[P_n],MTMAC}^{cpa}(q, \ell) \leq \nu_{\ell}(MTMAC, a_q \land b_q) + \nu_{\ell}(MTMAC, d_q)]
- 引理6
[ \max_{x\in(\Sigma^n)^m,x’\in(\Sigma^n)^{m’},x\neq x’,u\in\Sigma^n} Pr[CBC(x) \oplus CBC(x’) = u] \leq \frac{2d(m^ )}{2^n} + \frac{64(m^ )^4}{2^{2n}}]
[ \max_{x\in(\Sigma^n)^m,u\in\Sigma^n} Pr[CBC(x) = u] \leq \frac{2d(m + 1)}{2^n} + \frac{64(m + 1)^4}{2^{2n}}]
其中,(d(m))是所有(h \leq m)时,能整除(h)的正整数的最大数量,(m^ = \max{m, m’} + 1)。
-
分析(\max_{X_q} P_{MTMAC}[a_q|X_q])
通过对查询碰撞情况的分析,可得:
[ \max_{X_q} P_{MTMAC}[a_q|X_q] \leq \max_{X_q} P_{MTMAC}[dist(S^{(q)})|X_q] + \max_{X_q} P_{MTMAC}[M^{(q)} \cap S^{(q)} = \varnothing|X_q]]
[ \leq \frac{q}{2}(\frac{2d(\ell)}{2^n} + \frac{64\ell^4}{2^{2n}}) + \frac{(\ell - 1)q^2}{2^n}]
-
分析(\max_{X_q} P_{MTMAC}[b_q|a_qX_q])和(\nu_{\ell}(MTMAC, d_q))
[ \max_{X_q} P_{MTMAC}[b_q|a_qX_q] \leq \frac{q}{2}\frac{1}{2^n}]
[ \nu_{\ell}(MTMAC, d_q) \leq \frac{(\ell - 1)q^2}{2^n} + \frac{q}{2}\frac{1}{2^n}]
-
MTMAC的安全边界
[Adv_{MTMAC}^{vilqrf}(q, \ell) \leq \frac{q}{2}(\frac{2d(\ell)}{2^n} + \frac{64\ell^4}{2^{2n}} + \frac{1}{2^n})]
-
定理3结论 *:
结合(Adv_{TMAC[P_n],MTMAC}^{cpa}(q, \ell))和(Adv_{MTMAC}^{vilqrf}(q, \ell))的边界,可得:
[Adv_{TMAC[P_n]}^{vilqrf}(q, \ell) \leq \frac{(2d(\ell) + 2\ell)q^2}{2^n} + \frac{64\ell^4 q^2}{2^{2n}}]
由于(d(\ell) \leq \ell),定理3得证。

5. 边界比较

为了更好地理解新型安全边界的优势,我们对新旧边界进行详细比较。
|算法|新边界|旧边界|新边界更优条件|
| ---- | ---- | ---- | ---- |
|PMAC|(\frac{\ell q^2}{2^n})|(\frac{\sigma^2}{2^n})|(\sqrt{\ell}q < \sigma),即平均消息块长度((\frac{\sigma}{q}))大于(\sqrt{\ell})|
|TMAC和XCBC|(\frac{\ell q^2}{2^n} + \frac{\ell^4 q^2}{2^{2n}})|(\frac{\sigma^2}{2^n})|平均消息块长度大于(\sqrt{\ell(1 + c)}),其中(c = \frac{\ell^3}{2^n}),在实际应用中(c)可能较小|

例如,当(n = 128),(q = 2^{40}),(\ell = 2^{16})时,新的PMAC边界为(2^{-32}),新的TMAC和XCBC边界也接近(2^{-32}),而旧边界范围从(2^{-48})到(2^{-16})。如果99.9%的消息为单块消息,旧边界更优;如果1%的消息为(\ell)块消息,新边界更优。

6. 相关引理

在证明过程中,我们使用了Maurer方法中的一些引理。
- 引理7
假设(F)是(F)或(G)的函数,若(P_F[Y_i|X_iY_{i - 1}a_i] = P_G[Y_i|X_iY_{i - 1}b_i])且(P_F[a_i|X_iY_{i - 1}a_{i - 1}] \leq P_G[b_i|X_iY_{i - 1}b_{i - 1}])((i \geq 1)),则:
[Adv_{F,G}^{cpa}(q) \leq \nu(F, a_q)]
[Adv_{F[F],F[G]}^{cpa}(q) \leq \nu(F[F], a^ _q)]
-
引理8
若(P_F[a_i|X_iY_{i - 1}a_{i - 1}] = P_F[a_i|X_ia_{i - 1}])((i \geq 1)),则所有自适应和非自适应攻击下(a_q)的最大概率相同,即(\nu(F, a_q) = \mu(F, a_q))。
-
引理9 *:
若为(F)定义了MESs (A = a_0a_1 \ldots)和(B = b_0b_1 \ldots),则(\nu(F, a_q \land b_q) \leq \nu(F, a_q) + \nu(F, b_q))。

7. 证明第一和第二不等式(引理3)

为了证明引理3的第一和第二不等式,我们定义了两个可调整函数(XE)和(\tilde{XE})。
- 定义函数
[XE(t, x) = P_n(x \oplus 2^{t[1]}3^{t[2]}L)],其中(L = P_n(0))。
[ \tilde{XE}(t, x) = \begin{cases} P_n(x \oplus 2^{t[1]}3^{t[2]}L), & \text{if } t[2] = 0 \ \tilde{P}_n((t[1], t[2]), x), & \text{otherwise} \end{cases}]
- 定义事件
- (a^ _i = [S_j \neq S_k \text{ for all } (j, k) \in \xi(i)] \land [S_j \neq 0 \text{ for all } j = 1, \ldots, i])
- (b^
_i = [Y_j \neq Y_k \text{ for all } (j, k) \in \xi(i)] \land [Y_j \neq L \text{ for all } j = 1, \ldots, i])
其中,(\psi(i) = {j : 1 \leq j \leq i, T_j[2] \in {1, 2}}),(\xi(i) = {(j, k) \in {1, \ldots, i}^2 : j \neq k, \text{ at least one of } j \text{ or } k \text{ is in } \psi(i)})。
- 推导概率等式
通过对(XE)和(\tilde{XE})的概率分析,我们可以得到一系列等式和不等式,最终证明引理3的第一和第二不等式。

8. 总结

本文详细探讨了PMAC、TMAC和XCBC的新型安全边界。通过理论推导和实例分析,我们发现新型安全边界在大多数情况下优于旧边界,尤其是当平均消息块长度与最大块长度的平方根之间的距离较大时。此外,我们还对相关定理进行了证明,并使用了Maurer方法中的引理。未来的研究可以进一步探索如何将这些新型安全边界应用到实际的密码系统中,以及如何解决OMAC安全边界的推广问题。

9. 展望
  • 实际应用 :将新型安全边界应用到实际的密码系统中,提高系统的安全性和性能。
  • OMAC问题 :解决OMAC安全边界的推广问题,即找到([CBC(x) \oplus CBC(x’) = u_1L \oplus u_2])((u_1 = (2 \oplus 2^2)))的最大概率,这是一个有趣的开放问题。
  • 结合其他研究成果 :考虑将Pietrzak的研究成果与本文的证明相结合,以获得更优的安全边界。

通过对PMAC、TMAC和XCBC的深入研究,我们可以更好地理解这些消息认证码算法的安全性,并为密码学的发展提供有力的支持。

新型PMAC、TMAC和XCBC安全边界解析

10. 实际应用与操作步骤

在实际应用中,将新型安全边界应用到密码系统中可以按照以下步骤进行:
1. 系统评估
- 确定系统中使用的消息认证码算法是PMAC、TMAC还是XCBC。
- 收集系统中消息的相关信息,如查询次数 (q)、消息的最大长度 (\ell) 以及平均消息块长度 (\sigma/q)。
2. 边界选择
- 根据前面提到的边界比较条件,判断新边界和旧边界哪个更适合当前系统。
- 如果平均消息块长度大于相应的阈值,则选择新边界;否则,考虑使用旧边界。
3. 参数调整
- 根据选择的边界,调整系统中的参数,以确保系统的安全性和性能达到最优。
4. 实施与测试
- 在系统中实施新的安全边界,并进行充分的测试,确保系统在新的边界下正常运行。

以下是一个简单的流程图,展示了这个操作步骤:

graph TD;
    A[系统评估] --> B[边界选择];
    B --> C[参数调整];
    C --> D[实施与测试];
11. OMAC安全边界问题分析

OMAC与TMAC类似,但使用不同的最终化方式。虽然目前还没有成功得到OMAC的新安全边界,但我们可以分析其面临的问题。
- 定义修改后的OMAC(MOMAC) :使用 (P_n) 和 (\tilde{P} n) 定义MOMAC,并为OMAC和MOMAC定义相关变量集 ((M^{(q)}, C^{(q)}, S^{(q)}, Y^{(q)}))。
- 定义事件
- (a_q = dist(S^{(q)}) \land [M^{(q)} \cap S^{(q)} = \varnothing] \land [0 \notin S^{(q)}])
- (b_q = dist(Y^{(q)}))
- (d_q = [C^{(q)} \cap Y^{(q)} = \varnothing])
- (e_q = [L \notin Y^{(q)}])
- 问题关键 :为了得到 (\nu
{\ell}(MOMAC, a_q \land b_q)) 的边界,需要求出 ([CBC(x) \oplus CBC(x’) = u_1L \oplus u_2])((u_1 = (2 \oplus 2^2)))对于所有 (u_2) 的最大概率,即需要对引理6进行推广。

12. 结合其他研究成果的可能性

Pietrzak证明了在某些情况下,CBC在 (q) 条消息中的碰撞概率可能小于对引理6应用联合边界的结果。虽然本文的分析基于联合边界,但可以考虑将其研究成果与本文的证明相结合。具体步骤如下:
1. 研究成果分析 :深入研究Pietrzak的研究成果,理解其碰撞概率的计算方法和适用条件。
2. 结合点寻找 :寻找本文证明过程中可以与Pietrzak研究成果相结合的部分,例如在计算 (CBC) 碰撞概率的地方。
3. 模型构建 :构建一个新的模型,将两者的方法结合起来,以获得更优的安全边界。
4. 验证与优化 :对新模型进行验证,确保其正确性,并根据验证结果进行优化。

以下是一个表格,总结了不同算法的相关信息:
|算法|新边界|旧边界|新边界更优条件|
| ---- | ---- | ---- | ---- |
|PMAC|(\frac{\ell q^2}{2^n})|(\frac{\sigma^2}{2^n})|(\sqrt{\ell}q < \sigma)|
|TMAC和XCBC|(\frac{\ell q^2}{2^n} + \frac{\ell^4 q^2}{2^{2n}})|(\frac{\sigma^2}{2^n})|平均消息块长度大于 (\sqrt{\ell(1 + c)}),(c = \frac{\ell^3}{2^n})|
|OMAC|未确定|((5\ell^2 + 1)q^2/2^n)(((q, \ell)) - CPA),(4\sigma^2/2^n)(((q, \sigma)) - CPA)|待研究|

13. 总结与未来方向

通过对PMAC、TMAC和XCBC的新型安全边界的研究,我们发现这些新边界在大多数情况下优于旧边界,尤其是在平均消息块长度与最大块长度的平方根之间的距离较大时。同时,我们也对相关定理进行了证明,并使用了Maurer方法中的引理。

未来的研究可以集中在以下几个方面:
1. 实际应用拓展 :将新型安全边界广泛应用到各种实际的密码系统中,提高系统的安全性和性能。
2. OMAC问题解决 :努力解决OMAC安全边界的推广问题,为OMAC算法提供更精确的安全保障。
3. 研究成果结合 :积极探索将Pietrzak等其他研究成果与本文的证明相结合,以获得更优的安全边界。
4. 新算法探索 :基于现有的研究,探索新的消息认证码算法,进一步提高密码系统的安全性。

通过不断的研究和实践,我们可以更好地保障密码系统的安全,为信息安全领域做出更大的贡献。

14. 示例分析

为了更直观地理解新边界和旧边界的差异,我们再举一个示例。假设 (n = 128),(q = 2^{30}),(\ell = 2^{10})。
- PMAC
- 新边界:(\frac{\ell q^2}{2^n} = \frac{2^{10} \times (2^{30})^2}{2^{128}} = 2^{-58})
- 旧边界:假设平均消息块长度 (\sigma/q = 2^5),则 (\sigma = 2^{35}),旧边界为 (\frac{\sigma^2}{2^n} = \frac{(2^{35})^2}{2^{128}} = 2^{-58})。在这种情况下,新边界和旧边界相同。
- TMAC和XCBC
- 新边界:(\frac{\ell q^2}{2^n} + \frac{\ell^4 q^2}{2^{2n}} = \frac{2^{10} \times (2^{30})^2}{2^{128}} + \frac{(2^{10})^4 \times (2^{30})^2}{2^{2 \times 128}} = 2^{-58} + 2^{-116})
- 旧边界:同样假设 (\sigma = 2^{35}),旧边界为 (\frac{\sigma^2}{2^n} = 2^{-58})。此时,新边界略优于旧边界。

15. 结论

新型安全边界为PMAC、TMAC和XCBC提供了更精确的安全保障,在大多数情况下优于旧边界。通过对相关定理的证明和分析,我们深入理解了这些算法的安全性。未来的研究将进一步推动这些边界在实际密码系统中的应用,并解决OMAC等算法的安全边界问题,为密码学的发展注入新的活力。

graph LR;
    A[PMAC] --> B[新型安全边界];
    C[TMAC] --> B;
    D[XCBC] --> B;
    B --> E[实际应用];
    F[OMAC] --> G[安全边界问题研究];
    G --> B;
    H[其他研究成果] --> B;

通过以上的研究和分析,我们可以更好地把握消息认证码算法的安全性,为信息安全领域的发展提供有力的支持。

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值