首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是更有效的加密然后MAC或MAC然后加密

什么是更有效的加密然后MAC或MAC然后加密
EN

Cryptography用户
提问于 2022-06-12 09:51:51
回答 1查看 155关注 0票数 1

我一直在互联网上搜索有关加密后MAC、MAC然后加密、MAC和加密、哈希再加密的效率的资源,而我对所有这些都做得不够。大多数信息来源都会给出他们所要保护的东西,但是没有人会告诉我什么在时间和资源上更有效。

EN

回答 1

Cryptography用户

发布于 2022-06-12 17:52:42

你找不到多少关于性能的东西,因为它基本上是一样的。关于他们的相对安全性,有一些有趣的东西要说,但除了“基本相同”之外,没有什么可说的。

撇开散列加密(通常不起作用的)相比,有三种方法。给予明文P:

  • 加密-然后- MAC :加密明文C = E(P)并附加密文T = M(E(P))的MAC.在另一个方向上,给定C || T,检查TC的MAC,然后解密C以找到P
  • MAC -然后加密:计算明文T = M(P)的MAC,并用MAC附加的E(P || T)加密明文。在另一个方向,解密密文,将结果拆分为P || T,并检查T = M(P)
  • MAC加加密:加密纯文本C = E(P)并附加明文T = M(P)的MAC。在另一个方向上,给定C || T,解密C以找到P并检查T是否是P的MAC。

在所有情况下,对于长度为n的消息,需要计算n字节的MAC和n字节的加密或解密。区别最多是您是否需要加密/解密MAC值。这是一个恒定的成本(与消息长度无关),它与算法的其他细节相同,例如是否涉及填充、消息的长度是如何编码的、密钥是如何准备使用的等等。因此,一般方法之间没有任何意义的区别。

上面我没有考虑并行化。如果您的硬件支持的话,并行地进行身份验证计算和加/解密计算是很有吸引力的。例如,加密-然后- MAC,输入到MAC是加密的输出,所以你不能完美地并行做这两件事。相反,MAC和加密允许将加密和MAC并行化,而不是加密MAC的最后一步。然而,大多数原语从左到右一次处理一个小块的数据,所以一旦加密处理了一个块,您就可以使用该块启动MAC操作:因此加密-然后-MAC可以并行化为

  1. 加密第一个块。
  2. MAC第一个块,同时加密第二个块。
  3. MAC第二个块,同时加密第三个块。

诸若此类。因此,不管消息长度如何,并行化代价仅为一个块。此外,还将并行化惩罚倒置到解密过程中。因此,即使在考虑并行化时,性能差异也很小,它们在加密和解密之间发生了倒置,因此,与算法的细节相比,泛型构造对性能的影响更小。

票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/100536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档