HSM KitHSM 工具箱
中文

支付安全中的 MAC 算法:ISO 9797、HMAC 与 CMAC

支付安全# MAC# ISO 9797# HMAC# CMAC
最后更新: 2026年4月3日4 分钟阅读By HSM Kit Team
现在需要计算吗?
使用我们免费的在线 HMAC 计算器 工具。

消息认证码(MAC)是支付系统验证交易数据未被篡改的方式。本文介绍银行和支付处理中使用的 MAC 算法。

什么是 MAC?

MAC(消息认证码)是一段用于验证消息完整性真实性的短数据。与哈希不同,MAC 需要密钥——只有拥有密钥的人才能生成或验证它。

MAC = MAC算法(密钥, 消息)

特性:

  • 完整性:消息的任何变化都会产生不同的 MAC
  • 认证性:只有拥有密钥的各方才能生成有效的 MAC
  • 不可否认性(非对称方案):证明消息的发送者

MAC vs 哈希 vs 数字签名

属性哈希MAC数字签名
需要密钥是(对称)是(非对称)
完整性
认证性
不可否认性
速度
支付用途KCV交易认证证书签名

ISO 9797-1 MAC 算法

ISO 9797-1 定义了基于分组密码(通常是 DES/3DES)的 MAC 算法,是支付消息认证的基础。

算法 1(CBC-MAC)

最简单的形式:以 CBC 模式加密消息,使用最后一个分组作为 MAC。

MAC = DES_Encrypt(密钥, CBC 链的最后一个分组)
  • 简单但对可变长度消息存在已知弱点
  • 仍在遗留系统中使用

算法 3(零售 MAC / ANSI X9.19)

最常见的支付 MAC 算法:

  1. 用单 DES 处理除最后一个分组外的所有分组
  2. 对最后一个分组应用 3DES
中间值 = DES_Encrypt(左密钥, 数据分组)
MAC = 3DES_Encrypt(密钥, 最后一个中间分组)

这就是整个支付行业使用的零售 MAC。参见 零售 MAC 工具ANSI X9.9/X9.19 工具

使用我们的 ISO 9797-1 MAC 工具 计算所有算法和填充组合的 MAC。

AS2805 MAC(澳大利亚 EFTPOS)

AS2805 是澳大利亚 EFTPOS 交易标准,基于 ISO 8583,使用特定的 MAC 算法进行交易认证。

使用 AS2805 MAC 工具 进行 AS2805 专用 MAC 计算。

3DES CBC-MAC

直接的基于 3DES 的 CBC-MAC:

MAC = 3DES_Encrypt(密钥, 3DES-CBC 链的最后一个分组)

用于各种遗留支付和银行协议。参见 3DES CBC-MAC 工具

HMAC——现代标准

HMAC(基于哈希的 MAC)使用密码学哈希函数而非分组密码:

HMAC(K, m) = Hash((K ⊕ opad) || Hash((K ⊕ ipad) || m))

HMAC-SHA256

  • 最广泛使用的现代 MAC
  • 用于:TLS、JWT、REST API 认证、AWS 签名
  • 256 位输出,截断到所需长度

使用 HMAC 计算器 计算 HMAC-SHA256 和 HMAC-SHA512。

AES-CMAC——现代支付 MAC

CMAC(基于密码的 MAC)使用 AES 的特殊模式生成 MAC:

CMAC = 带子密钥派生的 AES-CBC-MAC

相比 CBC-MAC 的优势:

  • 对可变长度消息安全
  • 无填充预言机漏洞
  • 用于现代支付标准(EMV、DUKPT AES)

使用 CMAC 工具 计算 AES-CMAC 和 3DES-CMAC。

MAC 在交易流程中的应用

以下是 MAC 如何保护典型 ATM 交易:

1. ATM 构建 ISO 8583 消息
2. ATM 使用 MAC 密钥对消息字段计算 MAC
3. MAC 附加到消息(字段 64 或 128)
4. 消息发送到主机

5. 主机接收消息
6. 主机使用相同 MAC 密钥对相同字段计算 MAC
7. 主机比较计算的 MAC 与接收到的 MAC
8. 如果匹配:消息真实。如果不匹配:拒绝交易。

MAC 密钥本身通常是 DUKPT 派生密钥(每笔交易唯一)——参见 DUKPT 指南

MAC 密钥管理

MAC 密钥是 HSM 密钥层次结构中的工作密钥:

  • 从区域 MAC 密钥(ZMK)派生或通过 DUKPT 派生
  • 定期轮换(每日、每会话或通过 DUKPT 每笔交易)
  • 在 HSM 中以 LMK 加密形式存储

HSM 密钥管理概述,参见 HSM 密钥管理指南

选择正确的 MAC 算法

场景推荐 MAC
遗留 ATM/POS(TDES)ISO 9797-1 算法 3(零售 MAC)
现代支付(AES)AES-CMAC
REST API / WebHMAC-SHA256
澳大利亚 EFTPOSAS2805 MAC
EMV 芯片交易AES-CMAC

在线工具

相关工具
HMAC 计算器