首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CBC-MAC解密,MAC如何在加密中工作

CBC-MAC解密,MAC如何在加密中工作
EN

Stack Overflow用户
提问于 2015-07-16 21:08:03
回答 2查看 3.4K关注 0票数 0

我刚算出信用卡的加密和解密。有人能告诉我怎么去破解CBC- MAC. CBC-MAC在最后会给出一个4字节的MAC。从MAC到加密,它到底是如何工作的?MAC在做什么?

一旦通过CBC-MAC进行了加密,我们如何才能对它们进行解密?三重奏对我的案子不起作用。

还有一个问题,。你们是否听说过涉及以下内容的解密算法:

  • DUKPT
  • TDES,和
  • MAC变体(相对于PIN变体)

我对TDES和DUKPT有很好的理解,但是MAC变种在解密算法中起着怎样的作用呢?

MAC变异与PIN变体有何不同?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-07-17 09:34:49

我刚算出信用卡的加密和解密。有谁能告诉我怎么把CBC- MAC. CBC-MAC在最后给出一个4位MAC。

这里展示了CBC模式如何通过维基百科工作。

CBC所做的只是简单地获取最后一个密文块,即输出,并调用该MAC。所以你的MAC应该是块密码的大小,可能不是4位。如果您使用的是3 3DES,它将是64位。

从MAC到加密,它到底是如何工作的?MAC在做什么?

MAC和encryption是两件非常不同的事情。我将试着对每一个做一个简短的概述。

  • 加密提供机密性,这意味着(在对称密码情况下)只有拥有正确密钥的人才能读取消息的内容。
  • MAC提供了完整性,这意味着消息没有在发送方和接收方之间被篡改。

MACs存在的原因是,即使我不能读取加密的消息,我仍然可以修改加密消息而不让接收者知道它被修改了(这在现实世界中造成了各种各样的麻烦)。MAC通常与加密消息一起发送。收件人所做的是首先计算加密消息的MAC,然后检查它是否与与加密消息一起发送的MAC匹配。如果它们匹配,那么收件人就知道消息没有被篡改。

一旦通过CBC-MAC进行了加密,我们如何才能解除加密?三重奏对我的案子不起作用。

如果您正在使用3 3DES加密,我建议首先加密您的消息(让我们称之为C)。我还建议使用CBC以外的其他东西,因为CBC不能提供良好的安全性。我建议您使用HMAC来计算加密消息的MAC (HMAC(C))。这意味着您需要两个密钥,一个用于3 3DES,另一个用于HMAC。HMAC在大多数语言中都得到了广泛的支持,因此找到实现不应该是一个问题。

总之,将消息M,计算3 3DES(M) = C,然后计算HMAC(C) = T,然后发送(C,T)给接收数据的人。然后,接收方将计算HMAC(C) = T',检查T‘== T,如果它们匹配计算3 3DES(C) =M,以获得原始消息。希望这有助于,相当多的信息,随时要求任何澄清。:)

票数 3
EN

Stack Overflow用户

发布于 2015-07-16 21:16:49

你不能“解密”一个CBC-MAC标签。消息认证代码(MAC)是一个键控完整性检查。这意味着从MAC算法创建的标记的长度总是相同的,而不管您输入的数据长度如何。对于具有三重DES的CBC,这是3 DES块的大小,它是64位(或更短的部分)。

如果您的数据更长,那么您就不能“解密”它,因为现在有多个解决方案。但是,您可以使用相同的键通过CBC再次运行原始数据,并再次创建标记。然后检查这两个标记,看看它们是否匹配。如果他们做了,那么你就知道你的数据没有被篡改。(但可能不是,因为3 3DES在不与3个不同的密钥一起使用时并不太好,如果您接受任意消息,CBC不再被认为是安全的。)

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

https://stackoverflow.com/questions/31464552

复制
相关文章

相似问题

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