CBC-MAC提供完整性和数据源验证,也不提供机密性。CBC-MAC的基本步骤是:①发送方用一个分组密码以CBC工作模式对消息进行加密,密文的最后一个分组作为MAC。 CBC-MAC并没有使用哈希算法,数据完整性验证来源于加密算法和共享密钥。 CBC-MAC提供最弱的身份验证,CBC-MAC算法绑定的是计算机或设备,称为系统身份验证(也称为数据源验证),如果需要更强的身份验证,需要使用用户身份验证。3/4. CMAC即基于密码的消息验证码。 CMAC提供与CBC-MAC相同类型的完整性验证和数据源身份验证,但CMAC解决了CBC-MAC存在一些安全问题。CMAC、AES和3DES一起使用,理论上比CBC-MAC安全。 首先在消息上计算CBC-MAC以获得MAC值,然后使用计数器模式对消息和MAC值进行加密。对称密钥用于CTR工作模式加密,对称密钥和IV值用于生成CBC-MAC。
three basic types of MAC functions: a hash MAC (HMAC), CBC-MAC, and CMAC. HMAC ? CBC-MAC If a Cipher Block Chaining Message Authentication Code (CBC-MAC) is being used, the message is
CBC-MAC 当取AES作为MAC加密的分组密码时,一般采用CBC模式,所以通常称为基于AES的CBC-MAC,若需要产生认证码的消息为x,加密的AES密钥为k,则生成加解密的过程如下图所示 上图分别为 ),是从CBC-MAC改进而来,克服了CBC-MAC的一些缺陷。 omac算法的核心是cbc-mac的一种变种,是基于一种叫xcbc的算法改进的。xcbc算法有效的解决了cbc-mac的一些安全方面的缺陷,但是需要三个密钥。 有人在此基础上,改进了xcbc算法,并把它命名为one-key cbc-mac(omac).之后提交了omac1,在omac的基础了做了精简,并做了一些安全性分析。 Reference RFC2104关于HMAC的定义 维基百科中关于mac等的介绍: mac wiki hmac wiki cbc-mac wiki cmac wiki
CBC-MAC:基于对称加密CBC模式的另一种MAC算法尝试自己实现一个基于AES-CBC的MAC首先回顾一下,AES算法中,其分组长度始终都是128bit,也就是16字节,这一点无论强调多少遍都不为过 构造一个伪CBC-MAC由于CBC模式是一种链式的加密模式,上一个密文块总是作为下一个密文块的IV进行异或。因此,每次当原始的输入数据有哪怕一个比特的变化时,总是能使得最后一个密文块受到影响。 接下来的所有分析仅仅是为了加强对于CBC模式工作原理的理解进而加强对于CBC-MAC的认识。 CBC-MAC的使用建议如果在使用CBC-MAC时,也同时会使用AES-CBC做加密运算,那么这里建议两种的密钥不要复用。使用CBC-MAC时,IV应该尽量固定为0x00。 任何情况下,在生产环境中,都要使用标准密码库中的CBC-MAC接口,而非自己手动实现的接口。
它们之间的关系是这样的: 为避免基本的MAC算法CBC-MAC存在的安全缺陷,Black和Rogaway对其进行了改进,提出了避免CBC-MAC安全缺陷的XCBC算法。 Iwata和Kurosawa对XCBC进一步改进,提出了One-Key CBC-MAC(OMAC),接着又精益求精地提出了OMAC1。
image.png CBC-MAC 和 HMAC 我们将AES当作底层PRF。 image.png CBC-MAC(ECBC) 用PRP, 的意思是ECBC取最多长为L个分组的信息,L可以为百万或十亿的大小。它还可以是变化的输入信息的长度。 意义是 。
常与AES一起使用,在802.11i标准里,CBC-MAC被用于信息完整性。 NMAC和CBC-MAC 都是串行的。PMAC是并行的。
3、先对明文签名,然后对明文加密,最后将签名附在密文之后(mac-and-encrypt) CCM 首先使用CBC-MAC模式来认证传输帧,然后使用CTR模式来加密帧.
#CCM (counter with CBC-MAC)定义在分组长度为128位的加密算法中,如,AES 的分组长度为128。
encryption algorithms) ## ## TKIP = Temporal Key Integrity Protocol ## CCMP = AES in Counter mode with CBC-MAC
常见的模式有ECB,CBC,OFB,CFB,CTR和XTS等 加密模式仅仅保证 机密性 ,对于保证 完整性 或未篡改,需要采用分离的消息验证码,例如CBC-MAC。
抽取数据特征码的算法有;MD5, SHA1, SHA512, CRC-32 消息认证算法;CBC-MAC、HMAC 特性; 消息认证;只用于验证消息本身,需要加密特征码。
还有一种是基于分组密码的实现,比如(OMAC, CBC-MAC and PMAC)。 HMAC HMAC 是Keyed-Hashing for Message Authentication的缩写。
还有一种是基于分组密码的实现,比如(OMAC, CBC-MAC and PMAC)。 HMAC HMAC 是Keyed-Hashing for Message Authentication的缩写。
MAC算法有两种形式,分别是CBC-MAC算法和HMAC算法。在HTTP中应用最多的MAC算法是HMAC算法。
大家可以了解一下下面的关键字: CCM:Counter with CBC-MAC(Mode of Operation) HAL:Hardware Abstraction Layer(硬件抽象层) PAN
在对消息进行MAC计算时,无论是使用HMAC亦或是CBC-MAC,它们都是基于"Encrypt-Then-MAC"的机制,其工程上的含义为:对明文加密生成密文,然后对密文进行MAC计算。
蓝牙低功耗使用AES-CCM(Counter with CBC-MAC)算法进行加密,确保数据的机密性和完整性。
CE 模块主要支持的算法如下: AES 算法 ECB/CBC/CTR/CTS/OFB/CFB/CBC-MAC/XTS 等模式.
【开发者建议】:建议使用HMAC-SHA256算法,避免使用CBC-MAC。