1、中国银联股份 公布 -11-02实施 -11-02修订 中国银联银行卡联网联合技术规范V2.1 第4部分 数据安全传输控制规范 Technical Specifications on Bankcard Interoperability V2.1 Part 4 Specification on Data Secure Transmission Control Q/CUP 006.4— 替换Q/CUP 006.4- Q/CUP 中国银联股份企业标准 目 次 前 言 II 1 范围 1 2 密钥管理和控制 1 2.1 安全管理
2、基础要求 1 2.2 各层次密钥介绍 2 2.3 密钥产生 2 2.4 密钥分发 3 2.5 密钥存放 3 2.6 密钥销毁 3 3 数据加密处理 4 3.1 PIN加密和解密 4 3.2 联机报文MAC计算方法 6 3.3 次序文件MAC计算方法 10 3.4 互联网支付密码加密和解密 10 4 新旧密钥切换 11 4.1 入网机构提议申请重置密钥 11 4.2 CUPS提议重置密钥 15 4.3 新旧密钥切换处理(同时) 18 5 PBOC借/贷记标准IC卡安全说明 19 5.1 PBOC借/贷记标准IC卡安全认证功效 19 5.2 ARQC生成算法 19
3、 参考文件 23 前 言 本标准对中国银联跨行交易网络中安全传输数据信息应达成要求做了要求。包含数据传输安全要求、密钥管理方法和加密方法。 本标准由中国银联股份提出。 本标准由中国银联股份制订。 本标准起草单位:中国银联股份、中国入网机构。 本标准关键起草人:戚跃民、郭锐、郑澎、徐静雯、李洁、吴金坛、王力斌、苗恒轩、万高峰、陆尔东、蒋慧科、杜秉一、赵伟。 中国银联银行卡联网联合技术规范V2.1 第4部分 数据安全传输控制规范 1 范围 本标准对中国银联跨行交易网络中安全传输数据信息应达成要求做了要求,包含数据传输安全要求、密钥管理方法和加密方法。 本标准
4、适适用于全部加入中国银联银行卡信息交换网络入网机构。 2 密钥管理和控制 2.1 安全管理基础要求 入网机构必需满足银联信息交换网络对数据安全传输控制方面要求。 入网机构在和银联联网接口建设中必需提供严格系统安全保密机制,保障银联银行卡信息处理系统安全、稳定、可靠地运行,包含信息存取控制、应用系统操作安全、物理实体(机房、设备、通信网络、统计媒体等)安全和安全管理制度等方面。 2.1.1 管理制度基础要求 整个银行卡网络数据安全保密,不仅仅需要技术上支持,更需要在业务上制订和落实各机构间严格密钥管理制度。基础要求是: a) 采取安全可靠而且在银行卡交换系统中普遍采取加密算法
5、 b) 密钥存贮和交易信息加密/解密在硬件加密设备中进行。 c) 遵照金融业数据安全保密国家标准和国际标准。 d) 加强对人员管理要求。 e) 定时更换密钥。 2.1.2 数据传输安全控制基础要求 数据传输安全控制要求包含以下五个方面: a) 密钥管理机制:在技术上实施严格和可靠密钥分配过程。 b) 个人标识码(PIN)加密及转换机制:不许可 PIN 明码在通信线路上和人工可操作存放媒体上出现。 c) 对交易报文作起源正确性判别机制(MAC)。 d) 全部入网机构采取硬件加密装置。 e) 点对点数据加解密网络机制。 2.1.3 硬件加密机基础要求 硬件加密机关键
6、功效是对PIN加密和解密、验证报文起源正确性和存放密钥。全部这些操作全部在硬件加密机中完成,以确保密钥和PIN明码只出现在加密机中,预防泄露。硬件加密机应经过国家商用密码委员会安全认证并被许可在中国金融机构中使用。另外还必需满足以下要求: a) 支持单倍长(B64,在单倍长密钥算法中使用)和双倍长(B128,在双倍长密钥算法中使用)密钥。 b) 支持本文中对PIN要求,验证、转换PIN密文。 c) 支持本文中对MAC要求,验证和产生MAC。 d) 能对密钥作验证。 e) 受到非法攻击时,加密机内部保护密钥自动销毁。 CUPS和入网机构主机均要求配置硬件加密机并对传输数据进行加密。
7、 CUPS和入网机构之间数据加密和解密以单倍长密钥算法为基础。 2.1.4 数据加密传输环境基础要求 交易数据由入网机构进入CUPS前应已经过加密处理,如PIN加密和MAC加密。入网机构从CUPS中得到交易数据也应进行加密处理,如PIN加密和MAC加密。 图1 数据加密传输环境 网络中CUPS加密机和各入网机构加密机组成了一个点对点数据加解密网络。CUPS和各联网入网机构分别约定数据密钥。 2.2 各层次密钥介绍 在数据安全保密、传输机制中,密钥是关键数据。CUPS系统和每个入网机构之间约定各层密钥全部要求含有唯一性。 各层密钥结构、生成方法、加密解密对象、存放地点、长
8、度、被保护方法等以下表所表示: 表1 各层密钥表 序号 密钥名 缩写 层 原始生成方法 加密解密对象 存放地点 长度 保护方法 1 主密钥 MK 1 人工输入 组员主密钥 硬件加密机 机外分段分人保管 192bit 硬件设备保护 2 组员主密钥 MMK 2 人工输入 数据密钥 硬件加密机和主机 128bit/192bit 从硬件加密机输出时用主密钥加密 3 数据密钥(比如,PIN密钥和MAC密钥) PIK 3 硬件加密机产生 PIN 主机 64bit/128bit 用组员主密钥加密 主密钥和组员主密钥生成方法及输入
9、过程应由相关安全管理制度要求。 2.3 密钥产生 表2 密钥产生 序号 密钥名 产生 1 主密钥 人工产生 2 组员主密钥 CUPS和入网机构各产生二分之一,在硬件设备中合成 3 PIN密钥 由硬件设备随机数发生器产生,并须经密钥有效性检验 4 MAC密钥 由硬件设备随机数发生器产生,并须经密钥有效性检验 2.3.1 数据密钥产生 PIK和MAK统称为数据密钥,由硬件加密机中随机发生器产生。密钥产生后,硬件加密机将检验密钥有效性。弱密钥和半弱密钥将被剔除。 CUPS加密机产生数据密钥,入网机构接收和储存CUPS发来数据密钥。当CUPS认为需要时,能
10、够主动向入网机构提议重置密钥报文。 当入网机构需要新密钥时侯,必需向CUPS发出申请重置密钥报文。 2.3.2 组员主密钥(MMK)产生 MMK由CUPS和入网机构各自产生一部分,分别输入到双方加密机中合成MMK。 也可由双方约定MMK产生措施。 2.3.3 主密钥产生 主密钥用人工方法输入。主密钥由三部分组成,分别由三个人掌管。为了确保输入正确性,每一部分密钥必需输入两次,且两次输入必需一致,不然输入失败。在三个人分别输入三部分密钥后,加密机作奇偶校验检验。奇偶校验正确时,加密机产生主密钥。主密钥必需储存在硬件加密机中,受硬件设备保护。一旦硬件加密机受到非授权操作,主密钥会自
11、动销毁。 2.4 密钥分发 表3 密钥分发 序号 密钥名 密钥分发 1 主密钥 自主生成,不须分发 2 组员主密钥 用IC卡传输或人工输入 3 PIN密钥 由CUPS产生,经过联机报文发送 4 MAC密钥 由CUPS产生,经过联机报文发送 2.4.1 数据密钥分发 数据密钥由CUPS产生,经过联机报文方法分发。具体分发方法请参见本规范第6章具体描述。 2.4.2 组员主密钥(MMK)分发 MMK分发有三个路径: a) 假如CUPS和入网机构均使用IC卡保留MMK,则可经过相互邮寄IC卡得到。 b) 假如一方没有IC卡或IC卡不能通用,则需双
12、方相关人员到场共同输入MMK。 c) 也可由双方相关人员协商确定分发路径。 2.5 密钥存放 2.5.1 数据密钥和组员主密钥存放 数据密钥和组员主密钥应保留在硬件加密机内。假如出现在硬件加密机外,则必需密文方法出现。 2.5.2 主密钥存放 主密钥必需保留在硬件加密机中,受加密机保护。 2.5.3 密钥档案保留 密钥注入、密钥管理功效调试和密钥档案保管应由专员负责。密钥资料须保留在保险柜内。保险柜钥匙由专员负责。使用密钥和销毁密钥要在监督下进行并应有使用、销毁统计。 2.6 密钥销毁 当新密钥产生后,生命期结束旧密钥必需从数据库和内存中清除,预防被替换使用;同时
13、全部可能重新结构此密钥信息也必需清除。新密钥成功启用和旧密钥自动销毁统计将被更新。 3 数据加密处理 为确保数据安全传输,网络中报文采取了PIN加密和报文起源正确性判别(MAC)两种加密技术。 3.1 PIN加密和解密 当报文经发送方进入银行卡网络时,持卡人个人标识码(PIN)已经用发送方PIK加密。CUPS将PIN用发送方PIK解密后,立即用接收方PIK加密,再发往接收方。 PIN 是以 64 位二进制数参与加密和解密运算,PIN 明码在这个数中分布,称为PIN数据块。在CUPS和入网机构之间,PIN数据块符合《ISO 9564-1 Banking—Personal Ide
14、ntification Number Management and Security》,其格式以下图所表示。 C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F 注1:C-控制码 %B0000 注2:N-PIN 长度(4-bit) 注3:P-4-bit 二进制 PIN 数码 注4:P/F-4-bit 二进制 PIN 数码 / FILLER 注5:4-bit %B1111(FILLER) 图2 PIN数据块格式 经典 PIN 加密解密过程如Error! Reference source not f
15、ound.表示。这一过程确保了 PIN 明码只在人工不可访问终端和硬件加密机内出现。 当然同时也要求受理方能够掌握终端一侧密钥管理和 PIN 数据格式。 上图中终端机具、受理方、CUPS和发卡方之间加密解密信息为: —— 1: 终端机具输出 PIN 密文 —— 2: 受理方用和终端机具约定密钥解密 —— 3: 受理方用和CUPS约定密钥加密 —— 4: 受理方输出 PIN 密文 —— 5: CUPS用和受理方约定密钥解密 —— 6: CUPS用和发卡方约定密钥加密 —— 7: CUPS输出 PIN 密文 —— 8: 发卡方用CUPS约定密钥解密 —— 9: 发卡方用和
16、发卡行约定密钥加密 —— 10:发卡方输出 PIN 密文 图3 PIN加密解密过程 3.1.1 PIN长度 PIN长度为4-12位数字。 3.1.2 PIN字符集 PIN用数字字符表示,下表给出了它二进制对照表: 表4 PIN用数字字符二进制对照表 PIN字符 二进制表示 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 3.1.3 PIN BLOCK PIN格式应符合ISO公布ANSI X9.8标准中PIN两种格式之一: —— A
17、NSI X9.8格式(不带主账号信息) 表5 ANSI X9.8格式(不带主账号信息)表 位置 长度 说明 1 1 BYTE PIN长度 2 7BYTE 4-12位数字PIN(每个数字占4个BIT) ),不足部分右补F 示例1: 明文PIN 123456, 则PIN BLOCK 为0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF —— ANSIX9.8格式(带主账号信息) PIN BLOCK为PIN按位异或主账号(PAN)。 其中,PIN格式以下表所表示: 表6 PIN格式 位置 长度 说明 1 1 BYTE PI
18、N长度 2 7 BYTE 4-12位数字PIN(每个字符占4个BIT),不足部分右补F) PAN格式以下表所表示: 表7 PAN格式 位置 长度 说明 1 2 BYTE %H0000 3 6 BYTE 取主账号右12位(不包含最右边校验位),主账号不足12位左补0 示例2: PIN 明文:123456 磁卡上PAN:1234 5678 9012 3456 78 截取下PAN:6789 0123 4567 则用于PIN加密PAN为:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67 则PIN BLOCK为: 0x06 0x12
19、 0x34 0x56 0xFF 0xFF 0xFF 0xFF 异或:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67 结果为:0x06 0x12 0x53 0xDF 0xFE 0xDC 0xBA 0x98 示例3: PIN明文:123456 磁卡上PAN:1234 5678 9012 3456 截取下PAN:4567 8901 2345 则用于PIN加密主账号为:0x00 0x00 0x45 0x67 0x89 0x01 0x23 0x45 则PIN BLOCK为:0x06 0x12 0x34 0x56 0xFF 0xFF
20、0xFF 0xFF 异或:0x00 0x00 0x45 0x67 0x89 0x01 0x23 0x45 结果为:0x06 0x12 0x71 0x31 0x76 0xFE 0xDC 0xBA PIN格式(格式1或格式2)必需在报文域53(Security Related Control Information)中标明。 3.1.4 PIN加密方法 将依据上述步骤生成PIN BLOCK输入到硬件加密机中,并和存放在硬件加密机中PIK用双倍长密钥算法计算,即可得到PIN密文。 3.1.5 PIN异常处理 参见《交易处理说明》中第8章交易异常处理步
21、骤。 3.2 联机报文MAC计算方法 报文起源正确性判别(MAC-Message Authentication Code)是一个判别报文起源是否正确,和报文在发送途中是否被篡改计算方法。 MAC算法取自于《ISO8731-1992 Approved Algorithms for Authentication》。 3.2.1 MAC使用条件 MAC通常见于01xx、02xx、04xx、05xx类请求报文及01xx、02xx、04xx成功(应答码类别含意为“同意”,参见本规范《附录》部分A.2应答码分类汇总)应答报文中;另外,除了重置密钥使用08xx号报文使用MAC外,其它管理类(0
22、6xx)和网络管理类(08xx)报文均不使用MAC。 CUPS既支持机构使用MAC也支持机构不使用MAC,是否使用,应和入网机构具体约定。 3.2.2 MAC报文域选择 MAC域选择采取系统约定方法,MAC算法采取密文块链接(CBC)模式。 参与MAC计算数据元集,通常包含以下数据域: —— 含有唯一性数据域(流水号、日期、时间等) —— 表征报文特征数据域(报文类型、交易种类等) —— 交易相关数据域(卡号、金额、应答码等) 3.2.2.1 消息类型为01xx、02xx、04xx类交易报文域选择 以下域出现或条件成立时,就应该包含在MAC计算中。 表8 消息类型为0
23、1xx、02xx、04xx类交易报文域选择 序号 域 域名 属性 说明 1 0 Message-type-identifier n4 报文类型a 2 2 Primary-account-number n...19(LLVAR) 主账号b 3 3 Processing-code n6 交易处理码 4 4 Amount-of-Transactions n12 交易金额 5 7 Transmission-date-and-time n10 交易传输时间 6 11 System-trace-audit-number n6 系统跟踪号
24、 7 18 Merchants-type n4 商户类型 8 25 Point-of-service-condition-code n2 服务点条件码 9 28 Amount_transaction_fee x+n 8 交易手续费 10 32 Acquiring-institution-identification-code n..11(LLVAR) 受理机构标识码c 11 33 Forwarding- institution-identification-code n..11(LLVAR) 发送机构标识码d 12 38 Authoriz
25、ation-identification-response an6 授权标识应答码 13 39 Response-code an2 应答码 14 41 Card-acceptor-terminal-identification ans8 受卡方终端标识码 15 42 Card-acceptor-identification-code ans15 受卡方标识码 16 90 Original-data-elements n42 原始数据元e a Message-type-identifier:报文类型(0100/0110、0200/0210、0220/
26、0230、0420/0430) b Primary-account-number:主账号,内容为两位PAN长度+PAN c Acquiring-institution-identification-code:受理机构标识码,内容为两位长度(n)+最长11位机构标识 d Forwarding- institution-identification-code:发送机构标识码,内容为两位长度(n)+最长11位机构标识 e Original-data-elements:只取前20位数值,内容为: org-message-type n4 原始报文类型 org-system-trace
27、number n6 原始报文跟踪号 org-transmission-date-time n10 原始报文交易传输时间 3.2.2.2 转账类交易报文域选择 转账类交易范围以下: 1、 传统意义上转账交易,含转账、转出转账、转入转账、转出冲正、转入确定; 2、 基于PBOC电子钱包/存折标准IC卡非指定账户圈存交易,含转账圈存、转出圈存、转入圈存、转出圈存冲正、非指定账户圈存冲正; 3、 基于PBOC借贷记标准电子现金应用IC卡非指定账户圈存交易,含转账圈存、转出圈存、转入圈存、转出圈存冲正、非指定账户圈存冲正。 对于转账类交易,只要以下域出现,就应该
28、包含在MAC计算中: 表9 转账类交易报文域选择 序号 域 域名 属性 说明 1 0 Message-type n4 报文类型a 2 2 Primary-account-number n..19(LLVAR) 主账号 3 3 Processing-code n6 交易处理码 4 4 Amount-of-Transaction n12 交易金额 5 7 Transmission-date-and-time n10 交易传输日期时间 6 11 System-trace-audit-number n6 系统跟踪号 7 18
29、 Merchants-type n4 商户类型 8 25 Point-of-service-condition-code n2 服务点条件码 9 28 Amount Transaction Fee x+n8 交易费 10 32 Acquiring-institution-identification-code n..11(LLVAR) 受理方机构代码 11 33 Forwarding- institution-identification-code n..11(LLVAR) 转发机构代码 12 38 Authorization-identif
30、ication-response n6 授权标识应答码 13 39 Response-code n2 应答码 14 41 Card-acceptor-terminal-identification an8 受卡机终端标识码 15 42 Card-acceptor-identification-code an15 受卡方标识码 16 90 Original-data-elements n42 原始数据元b 17 102 Account Identification 1 ans..28(LLVAR) 转出账户账(卡)号标识c 18 103
31、 Account Identification 2 ans..28(LLVAR) 转入账户账(卡)号标识d a Message-type-identifier:报文类型(0200/0210、0420/0430) b Original-data-elements:只取前20位数值,内容为: org-message-type n4 原始报文类型 org-system-trace-number n6 原始报文跟踪号 org-transmission-date-time n10 原始报文交易传输时间 c Account Identification 1:
32、资金转出账户账(卡)号标识 d Account Identification 2:资金转入账户账(卡)号标识 3.2.2.3 密钥管理类交易报文域选择 密钥管理报文指重置密钥请求及其应答报文。其MAC由以下域组成: 表10 密钥管理类交易报文域选择 序号 域 域名 属性 说明 1 0 Message-type n4 报文类型a 2 7 Transmission-date-and-time n10 交易传输时间 3 11 System-trace-audit-number n6 系统跟踪号 4 39 Response-code an2
33、 应答码 5 53 Security-related-control-information n16 安全控制信息码b 6 70 Network-management-information-code n3 网络管理信息码c 7 100 Receiving-institution-identification-code n..11(LLVAR) 接收机构标识码d a Message-type-identifier:报文类型(0800/0810) b Security-related-control-information:安全控制信息码 参见“域53”说明,内
34、容为: 0000 —— 重置PIN密钥PIK 0000 —— 重置MAC密钥MAK c Network-management-information-code:网络管理信息码,内容为“101” d Receiving-institution-identification-code:接收机构标识码,内容为两位长度(n)+最长11位机构标识 3.2.3 MAC域组成规则 3.2.3.1 MAC字符选择 对所选择MAC报文域,应深入作字符处理。除去部分冗余信息,以提升MAC质量。处理方法以下: a) 带长度值域在计算MAC时应包含其长度值信息; b) 在域和域之间插入一个空格;
35、 c) 全部小写字母转换成大写字母; d) 除了字母(A-Z),数字(0-9),空格,逗号(,)和点号(.)以外字符全部删去; e) 删去全部域起始空格和结尾空格; f) 多于一个连续空格,由一个空格替换。 3.2.3.2 MAC块(MAB)组成 数据从报文中选择出来后,经MAC字符选择处理,然后组成MAB(Message Authentication Block)。组成MAB方法是: 将MAC字符选择处理后数据按64bit划分成64bit块,一直划分到数据最终一块,它位数小于或等于64bit,不满64bit时补二进制0。 3.2.4 MAC计算 当下列情况发生时,不需
36、计算MAC,并返回对应报文错误信息: a) 报文上没有时间域; b) 时间失效; c) 报文标识越界; d) 密钥无效。 在发出报文前,首先从报文中截取MAC所需报文域,然后进行MAC字符选择处理,再组成MAB并计算出MAB长度。入网机构应将MAB、长度、MAK值输入到硬件加密机中,产生MAC并将MAC随报文一起发送。 当收到报文后,应首先作MAC判别。假如产生新MAC和传送MAC一致,则接收报文,不然MAC判别失败,报文被拒绝。 3.2.4.1 硬件加密机经过MAB计算MAC方法 3.2.4.1.1 单倍长密钥算法 将MAB中每8个字节分为一组(最终一组如不足8
37、个字节,则右补0X00),用MAK作为单倍长密钥依次进行以下操作: a) 进行单倍长密钥运算; b) 将运算结果和后一组8个字节MAB异或,结果替换后一组,继续进行操作。对最终一组进行单倍长密钥运算,得出8个字节加密值。 3.2.4.1.2 双倍长密钥算法 参考ISO9.9中做法,将MAB中每8个字节分为一组(最终一组如不足8个字节,则右补0X00),用PIK(注意这里密钥不是MAK,而是PIK)作为双倍长密钥依次进行以下操作: a) 进行双倍长密钥运算; b) 将运算结果和后一组8个字节MAB异或,结果替换后一组,继续进行操作。对最终一组进行双倍长密钥运算,得出8个字节
38、加密值。 3.2.4.2 联机报文MAC域取值 3.2.4.2.1 一般交易 MAC域(128域)为根据单倍长密钥算法计算MAC得到8字节二进制数据前半部分(4字节二进制数),表示成16进制字符串形式(8个16进制字符)。 3.2.4.2.2 CUPS提议重置密钥交易 CUPS提议重置密钥请求和应答报文MAC计算所用密钥为新下发密钥,切换MAC密钥时用新下发MAC密钥作为密钥计算MAC;切换PIN密钥时用新下发PIN密钥作为密钥计算MAC。 3.2.4.2.2.1 请求报文中MAC计算方法 请求报文中MAC域(128域)为根据单倍长密钥算法(针对重置MAK)或双倍长密钥算
39、法(针对重置PIK)计算MAC得到8字节二进制数据前半部分(4字节二进制数)和根据单倍长密钥算法(针对重置MAK)或双倍长密钥算法(针对重置PIK)计算CheckValue得到8字节二进制数据前半部分(4字节二进制数)组合(8字节二进制数)。 3.2.4.2.2.2 应答报文中MAC计算方法 假如重置是MAK,那么应答报文MAC计算方法同Error! Reference source not found.节,不需计算CheckValue,但其使用密钥仍为新下发密钥。 假如重置是PIK,那么应答报文MAC计算方法同Error! Reference source not found.节,也
40、不需计算CheckValue,也需使用新下发密码。 3.2.4.2.2.3 CheckValue计算方法 CheckValue计算方法为用新密钥对8个字节二进制0作单倍长密钥运算(针对重置MAK)或双倍长密钥运算(针对重置PIK)。 3.2.4.2.2.4 重置PIK交易MAC计算方法 因为有可能在重置PIN密钥时,新产生PIN密钥是128字节双倍长密钥,此时计算请求和应答报文中MAC值全部应采取双倍长密钥算法。同理,对于请求报文中包含CheckValue值也采取双倍长密钥算法计算。这里计算MAC和CheckValue步骤和Error! Reference source not f
41、ound.节中描述一致,即优异行双倍长密钥运算,然后将运算结果和后一组8个字节MAB异或,异或结果用双倍长密钥运算以后替换后一组,依这类推,直到对最终一组进行双倍长密钥运算。 3.2.5 MAC错误异常处理 参见《中国银联银行卡联网联合技术规范V2.1》第一部分《交易处理说明》中第8章交易异常处理步骤。 3.3 次序文件MAC计算方法 次序文件是指文件中带有文件头(000)和文件尾(001)文件,如双信息文件、风险信息共享文件等,具体可参见《文件接口规范》中相关描述。全部次序文件全部必需进行MAC校验,本节要求次序文件MAC校验规则。 3.3.1 MAC KEY和MAC字符组成
42、 文件尾中有 MAC KEY 和 MAC 两个字段,每个字段全部是由16个字符组成字符串,字段之间没有分隔符,其后没有结束符,这两个字符串中每个字符全部必需是16进制字符(即“0” — “9”、“A” — “F” 且“A” — “F”必需大写),用于表示8个字节 MAC 密钥和8个字节MAC,采取这种表示方法是为了方便显示,使文件不含有不可打印字符。 3.3.2 MAC KEY产生方法 MAC KEY 为生成文件时随机产生密钥,这里是用机构主密钥加密密文。同时MAC KEY必需满足奇校验。 3.3.3 MAC块(MAB)组成 将整个文件(不含MAC KEY和MAC)以256字节为
43、一组分组,结尾不满256字节补二进制0;把各组按位异或,最终得到一个256字节数据块,即为次序文件MAC块。 3.3.4 MAC计算 MAC 分成左右两部分,生成方法以下: 前128字节根据单倍长密钥算法计算MAC,取结果前半部分(4字节二进制数据),将其表示成16进制字符串形式(8个16进制字符),即为文件MAC字段前半部分;一样,将256字节数据块后128字节根据单倍长密钥算法计算MAC,取结果前半部分(4字节二进制数据),将其表示成16进制字符串形式(8个16进制字符),即为文件MAC字段后半部分。 3.3.5 MAC错误异常处理 当文件中MAC校验未经过时,系统会生成一个
44、拒绝文件,其中拒绝原因指明是MAC校验失败,具体格式请参见《中国银联银行卡联网联合技术规范V2.1》第三部分《文件接口规范》中5.4常见统计格式约定。 3.4 互联网支付密码加密和解密 网上交易互联网支付密码需要经过联机报文转发到发卡方,为确保该密码安全性,要求其在网络上务必需密文传输。发送方实施加密操作,接收方实施解密操作。 互联网支付密码是以192位二进制数参与加密和解密运算,其明码在这个数中分布,称互联网支付密码数据块。在CUPS和入网机构之间,其格式以下图所表示。 N N P P P P P P P/F P/F P/F P/F P/F P/F P/
45、F P/F P/F P/F P/F P/F P/F P/F F F 注1:P表示Password,F表示Filler 注2:N为互联网支付密码长度(8-bit) 注3:P为8-bit二进制互联网支付密码字符 注4:P/F为8-bit二进制互联网支付密码字符/填充字符 注5:F为8-bit二进制互联网支付密码填充字符 图4 互联网支付密码数据块 3.4.1 互联网支付密码长度 互联网支付密码长度必需在6到20个字符以内。 3.4.2 互联网支付密码字符集 互联网支付密码均为ASCII码字符,既可为字符,也能够为数字,或其它符号。 3.4.3 互联网
46、支付密码 BLOCK 互联网支付密码格式应符合以下规则: 表11 互联网支付密码格式 位置 长度 说明 1 2 BYTE 互联网支付密码长度 2 22BYTE 6~20位互联网支付密码字符(每个字符占1个Byte,不足部分右补空白字符,即0xFF) 示例5: 明文互联网支付密码:Hello!123 因为互联网支付密码全部是字符明文显示,所以这里需将其首先转换为ASCII: 互联网支付密码明文 H e l l o ! 1 2 3 每个字符对应ASCII 72 101 108 108 111 33 49 50 51 每个字
47、符对应十六进制 0x48 0x65 0x6C 0x6C 0x6F 0x21 0x31 0x32 0x33 依据Error! Reference source not found.显示补充标准,前面补两个字符长度位,该密码共9个字符,所以补09两个字符,转换为ASCII是48和57,转换为十六进制是0x30和0x39。后面需要补充13位空白字符,转换为十六进制为0xFF,所以最终得到互联网支付密码BLOCK以下: 0x30 0x39 0x48 0x65 0x6C 0x6C 0x6F 0x21 0x31 0x32 0x33 0xFF 0xFF 0xFF 0xFF 0xFF 0
48、xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 3.4.4 互联网支付密码加密方法 将依据上述步骤生成互联网支付密码 BLOCK输入到硬件加密机中,并和存放在硬件加密机中双倍长PIK用双倍长密钥算法计算,即可得到24个字节互联网支付密码密文。 这里需要注意两点:1)计算互联网支付密码密钥也是PIK;2)互联网支付密码应采取双倍长密钥算法。 3.4.5 互联网支付密码异常处理 异常处理步骤和错误应答码全部同PIN处理方法。 4 新旧密钥切换 4.1 入网机构提议申请重置密钥 4.1.1 交易步骤 入网机构将申请重置密钥请求发送给CUPS,
49、CUPS接收到该请求后,将立即返回应答。同时CUPS开启密钥更新模块,为请求方生成新密钥,并将新密钥用重置密钥请求报文发送给入网机构。 当CUPS无法将申请重置密钥应答或重置密钥请求发送给入网机构时,将丢弃该报文。 1—入网机构发往CUPS申请重置密钥(0820) 2—CUPS发往入网机构应答(0830) 3—CUPS发往入网机构重置密钥请求(0800) 4—入网机构发往CUPS重置密钥请求应答(0810) 图5 入网机构申请重置密钥步骤 4.1.2 步骤图 注1:RSI-MB-SC:入网机构发往CUPS申请重置密钥请求报文(0820) 注2:RSI-SC-MB:
50、CUPS返回入网机构申请重置密钥应答报文(0830) 注3:KSM-SC-MB:CUPS发往入网机构重置密钥请求报文(0800) 注4:KSM-MB-SC:入网机构返回CUPS重置密钥应答报文(0810) 图6 入网机构提议申请重置密钥步骤图 4.1.3 入网机构申请重置密钥说明 第一阶段:向CUPS发送申请重置密钥请求 入网机构在认为必需时侯,能够向CUPS发送申请重置密钥请求(RSI-MB-SC)(0820),将请求密钥类型发往CUPS,然后等候CUPS返回入网机构申请重置密钥应答报文(RSI-SC-MB)(0830)。假如在要求时间里未得到应答,可重试若干次,若仍然未得到






