3

我正在尝试手动生成 AC,我有一个生成 AC 的工具,但我想自己生成它以了解相同的算法。

我的计算对于 Discover 卡来说很好,但对于万事达卡来说却失败了。据我了解,用于生成 AC 的数据取决于标签 8C - CDOL1,我们使用 Gen AC 命令 + AIP + ATC 提供给卡。

AIP 和 ATC - 由 ICC 内部访问。

用于生成交流电的数据是:-

data part of Gen AC command + value of tag 82 + value of tag 9f36 + 80 + optional 00 to make it multiple of 8.

这是我的逻辑,可能是我使用错误的数据来计算 AC,这就是为什么我的测试工具得到不同的结果。

终端提供的数据
数量,授权 - 000000000201
金额,其他 - 000000000000
终端国家代码 - 0826 - 英国
终端验证结果 - 00 00 00 00 00
交易货币代码 - 0826 - 英镑
交易日期 - 15 04 28
交易类型 - 00 - 货物和服务
不可预测的数量 - 30 90 1B 6A
终端类型 - 23 - 有人值守,仅离线。由商户
数据验证码操作 - 00 00
ICC 动态编号 - 1E AB C1 26 F8 54 99 76
CVM 结果 - 00 00 00

Gen AC 使用 CDOL1 80 AE 40 00 2B 00000000020100000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000 此命令返回 9F26。我用于计算的数据是:-

0000000002010000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000 3800000180 [数据是 8 的倍数]

其中 3800 是 AIP 0001 是 ATC 和 80 用于填充 [填充方法 2 EMV] 这是我的逻辑,有没有人告诉我应该更多地关注哪里来生成与我的工具生成的相同的 AC。

4

1 回答 1

5

万事达卡应用密码 ( AC ) 生成比其他卡方案更复杂。

  1. 卡可以使用不同的 ICC 会话密钥派生 ( SKD ) 方法:

    • 万事达卡专有 SKD,涉及应用程序交易计数器 ( ATC ) 和不可预测号码 ( UN );
    • EMV2000方法,仅涉及ATC - 参见EMV 4.0,第 2 册
    • EMV 通用会话密钥 ( CSK ) 方法,仅涉及ATC - 参见EMV 4.2,Book 2
  2. 数据对象 ( DO ) 可以具有不同的附加值或修改值集:

    • 卡验证结果 (CVR) 可以是 6 或 4 个字节。
    • 可以包括来自发行人应用数据 ( IAD )的离线计数器。
    • 可以包括最后在线 ATC 值。

使用的方法和数据变体可以通过密码版本号 ( CVN ) 和应用程序控制位来检测。CVN 是 IAD tag 的子字段0x9F10

详细信息是专有信息,可供万事达卡会员使用。

要深入了解它,请查看“ M/Chip Card Application Cryptographic Algorithms ”和 M/Chip Card Application 参考资料。

于 2015-11-19T08:31:16.837 回答