授权方如何计算EMV密码ARQC?验证ARQC时密钥大小存分歧
EMV ARQC计算方法及密钥大小分歧解析
一、ARQC的具体计算步骤
- 准备输入数据流:严格按照EMV规范要求,拼接交易核心字段形成
AC Input二进制数据,字段的长度、字节序、编码规则必须完全符合规范,必填核心字段包括:- 应用交易计数器(ATC)
- 授权金额
- 交易货币代码
- 交易日期
- 交易类型
- 终端国家代码
- 终端生成的不可预知数(UN)
- 派生会话密钥(若使用主密钥):如果发卡方采用主密钥体系,需通过指定算法(Triple DES或AES)结合ATC等字段,派生专门用于ARQC计算的会话密钥,派生规则需符合EMV规范,具体细节由发卡方定义。
- 执行MAC计算:将
AC Input传入指定的MAC算法(EMV主流为Triple DES CBC-MAC,新版规范支持AES-CMAC),计算结果截取前8字节,即为ARQC。
二、密钥大小描述分歧的核心原因
- 算法体系差异:
- 早期EMV以Triple DES为核心算法,资料中提到的“64位密钥”是包含奇偶校验位的总长度,实际有效密钥为56位;“128位密钥”是双长度Triple DES的总长度(含奇偶校验),有效密钥为112位。部分资料省略“含奇偶校验”的说明,直接标注总长度,导致误解。
- 后期EMV引入AES算法,其密钥大小(128/192/256位)均为实际有效长度,和Triple DES的标注逻辑完全不同,这是分歧的主要来源。
- 规范版本迭代:不同版本的EMV规范对密钥的描述细节有调整,早期资料聚焦Triple DES相关内容,新资料加入AES的支持说明,跨版本查阅易出现描述不一致的情况。
- 发卡方自定义实现:部分发卡方在合规范围内调整密钥派生逻辑,比如使用不同的派生因子,导致通用资料的描述与实际场景存在差异。
内容的提问来源于stack exchange,提问作者JoaoMarson
相关产品推荐
相关产品推荐

