1# 消息认证码计算介绍及算法规格 2 3<!--Kit: Crypto Architecture Kit--> 4<!--Subsystem: Security--> 5<!--Owner: @zxz--3--> 6<!--Designer: @lanming--> 7<!--Tester: @PAFT--> 8<!--Adviser: @zengyawen--> 9 10MAC(Message Authentication Code,消息认证码)可以对消息进行完整性校验,通过使用双方共享的密钥,识别出信息伪装篡改等行为。 11 12接下来将说明系统目前支持的算法及其对应的规格。 13 14## HMAC 15HMAC(Hash-based Message Authentication Code)是一种基于哈希的消息认证码算法。 16 17HMAC通过指定的摘要算法,以通信双方共享的密钥和消息作为输入,生成消息认证码,用于检验传递报文的完整性。HMAC在消息摘要算法基础上增加了密钥输入,确保信息的正确性。生成的消息认证码长度固定。 18 19当创建HMAC消息认证码时,需要根据表中“支持种类”一列指定算法规格。 20 21| 摘要算法 | 支持种类 | API版本 | 22| -------- | -------- | -------- | 23| HASH | SHA1 | 9+ | 24| HASH | SHA224 | 9+ | 25| HASH | SHA256 | 9+ | 26| HASH | SHA384 | 9+ | 27| HASH | SHA512 | 9+ | 28| HASH | SM3 | 10+ | 29| HASH | MD5 | 12+ | 30 31## CMAC 32 33CMAC(Cipher-based Message Authentication Code)是一种基于密码的消息认证码算法,主要用于确保消息的完整性和真实性。 34 35CMAC通过使用分组密码(如AES)和一个密钥来生成消息认证码,确保消息在传输过程中未被篡改。 36 37| 加密算法 | API版本 | 38| -------- | -------- | 39| AES128 | 16+ | 40| AES256 | 16+ | 41