我刚算出信用卡的加密和解密。有人能告诉我怎么去破解CBC- MAC. CBC-MAC在最后会给出一个4字节的MAC。从MAC到加密,它到底是如何工作的?MAC在做什么?
一旦通过CBC-MAC进行了加密,我们如何才能对它们进行解密?三重奏对我的案子不起作用。
还有一个问题,。你们是否听说过涉及以下内容的解密算法:
我对TDES和DUKPT有很好的理解,但是MAC变种在解密算法中起着怎样的作用呢?
MAC变异与PIN变体有何不同?
谢谢!
发布于 2015-07-17 09:34:49
我刚算出信用卡的加密和解密。有谁能告诉我怎么把CBC- MAC. CBC-MAC在最后给出一个4位MAC。
这里展示了CBC模式如何通过维基百科工作。

CBC所做的只是简单地获取最后一个密文块,即输出,并调用该MAC。所以你的MAC应该是块密码的大小,可能不是4位。如果您使用的是3 3DES,它将是64位。
从MAC到加密,它到底是如何工作的?MAC在做什么?
MAC和encryption是两件非常不同的事情。我将试着对每一个做一个简短的概述。
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,以获得原始消息。希望这有助于,相当多的信息,随时要求任何澄清。:)
发布于 2015-07-16 21:16:49
你不能“解密”一个CBC-MAC标签。消息认证代码(MAC)是一个键控完整性检查。这意味着从MAC算法创建的标记的长度总是相同的,而不管您输入的数据长度如何。对于具有三重DES的CBC,这是3 DES块的大小,它是64位(或更短的部分)。
如果您的数据更长,那么您就不能“解密”它,因为现在有多个解决方案。但是,您可以使用相同的键通过CBC再次运行原始数据,并再次创建标记。然后检查这两个标记,看看它们是否匹配。如果他们做了,那么你就知道你的数据没有被篡改。(但可能不是,因为3 3DES在不与3个不同的密钥一起使用时并不太好,如果您接受任意消息,CBC不再被认为是安全的。)
https://stackoverflow.com/questions/31464552
复制相似问题