MAC 签名是用于验证数据完整性和真实性的加密输出。MAC 签名算法允许您执行两项不同的操作:
签名操作,使用签名密钥针对原始数据生成 MAC 签名。
验证操作 - 可根据要验证的签名密钥和 MAC 标记,验证消息的真实性。
MAC 签名有两个主要用途:
- 验证已签名数据的完整性。
- 验证消息的真实性。
虽然 MAC 签名的用途与数字签名类似,但 MAC 签名依赖于对称加密。MAC 标记使用相同的密钥生成并验证。消息的发送者和接收者必须具有相同的密钥才能使用 MAC 签名。
MAC 签名的使用场景示例
MAC 算法(例如密钥哈希消息身份验证代码 (HMAC))因效率高而是一种出色的文件传输数据完整性检查机制。哈希函数可以接收任意长度的消息并将其转换为固定长度的摘要,从而最大限度地提高带宽使用量。
MAC 签名工作流
下文介绍了创建和验证签名的流程。此工作流中的两个参与者包括数据签名者和数据接收者。
签名者和接收者同意使用特定的共享 MAC 密钥。
双方都可以使用此密钥创建或验证 MAC 签名。
签名者对数据执行签名操作以计算 MAC 标记。
签名者向数据接收者提供数据和 MAC 标记。
接收者使用共享的 MAC 密钥来验证 MAC 签名。如果验证不成功,则数据已被更改。
签名算法
Cloud Key Management Service 仅支持使用密钥加密的哈希消息身份验证代码 (HMAC) 算法进行 MAC 签名。HMAC 算法使用加密哈希函数(如 SHA-2 或 SHA-3)来计算 MAC 标记。HMAC 函数的强度取决于哈希函数的强度、哈希输出的大小以及密钥的大小。如需详细了解 HMAC 签名算法,请参阅 HMAC 签名算法。
限制
使用 Cloud KMS 创建或验证 MAC 签名时,需要遵循以下限制:
使用 Cloud HSM 密钥时,要签名的文件的大小上限为 16 KiB。
对于所有其他密钥,要签名的文件的大小上限为 64 KiB。