PSAM卡必需支持的专用命令.docx
- 文档编号:8129903
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:11
- 大小:19.32KB
PSAM卡必需支持的专用命令.docx
《PSAM卡必需支持的专用命令.docx》由会员分享,可在线阅读,更多相关《PSAM卡必需支持的专用命令.docx(11页珍藏版)》请在冰豆网上搜索。
PSAM卡必需支持的专用命令
1.写入密钥(WriteKey)
1)定义和范围
WRITEKEY命令可向卡中装载密钥或更新卡中已存在的密钥。
本命令可支持8字节或16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥装载前必须用GETCHANLLEGE命令从PSAM卡取一个4字节的随机数。
2)命令报文
WRITEKEY命令报文见表3-1。
代码
值
CLA
84h
INS
D4h
P1
00h
P2
00h
Lc
14h或1Ch
Data
加密后的密钥信息、MAC
Le
不存在
表3-1WRITEKEY命令报文
3)命令报文数据域
命令报文数据域包括要装载的密钥密文信息和MAC。
密钥密文信息是用主控密钥对以下数据加密(按所列顺序)产生的:
——密钥用途
——密钥版本
——密钥算法标识
——密钥值
MAC是用主控密钥对下数据进行MAC计算(按所列顺序)产生的:
——CLA
——INS
——P1
——P2
——Lc
——密钥密文信息
加密和MAC计算的方法遵循《中国金融集成电路(IC)卡规范》。
装载8字节的单长度密钥时,数据长度为14h;装载16字节的双长度密钥时,数据长度为1Ch。
4)响应报文数据域
响应报文数据域不存在。
2.批量更新密钥初始化(InitBatchUpdate)
1)定义和范围
InitBatchUpdate命令用于从IC卡中获得一个4个字节的随机因子。
该随机因子服务于批量更新消费主密钥指令的安全过程(如安全报文),在使用批量更新消费主密钥指令的命令执行后失效。
2)命令报文
GETCHALLENGE命令报文见表2-16。
代码
值
CLA
00h
INS
85h
P1
00h
P2
00h
Lc
不存在
Data
不存在
Le
13h
表2-16InitBatchUpdate命令报文
3)命令报文数据域
命令报文数据域不存在。
4)响应报文数据域
此命令执行成功的响应报文数据域见表。
如果命令执行不成功,则只在响应报文中回送SW1和SW2。
说明
长度(字节)
PSAM序列号
10
密钥索引号(GMPK)
1
有效期
4
随机因子
4
3.批量更新消费主密钥(BatchUpdateGMPK)
1)定义和范围
BatchUpdateGMPK命令可向卡中更新卡中已存在的消费密钥。
本命令只支持16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥更新前必须用InitBatchUpdate命令从PSAM卡取一个4字节的随机数。
2)命令报文
BatchUpdateGMPK命令报文见表3-1。
代码
值
CLA
84h
INS
D5h
P1
00h
P2
00h
Lc
10+(N*18h)
Data
见说明
Le
不存在
表3-1BatchUpdateGMPK命令报文
3)命令报文数据域
加密和MAC计算的方法遵循《中国金融集成电路(IC)卡规范》。
装载16字节的双长度密钥时,数据长度为18h。
说明
长度(字节)
已发送更新密钥指令数量(N)
1
新的密钥索引号(GMPK)
1
有效期
4
GMPKCRYPTOGRAPH
N*18h
MAC
4
4)响应报文数据域
响应报文数据域不存在。
4.通用DES计算初始化(INIT_FOR_DESCRYPT)
1)定义和范围
INIT_FOR_DESCRYPT命令用来初始化通用密钥计算过程。
PSAM卡将利用卡中指定的密钥进行运算,产生一个临时密钥。
运算方式由指定的密钥类型、密钥分散级数和密钥算法标识确定。
不支持计算临时密钥计算的密钥类型有:
——主控密钥
——维护密钥
——消费密钥
双长度密钥产生双长度临时密钥的密钥类型有:
——PIN解锁密钥
——用户卡应用维护密钥
双长度密钥左右异或产生单长度临时密钥的密钥类型有:
——重装PIN密钥
双长度密钥产生双长度临时密钥,单长度密钥产生单长度临时密钥的密钥类型有:
——MAC密钥
——加密密钥
——MAC、加密密钥
指定密钥经过几级处理由密钥分散级数和Lc确定,若二者不一致,则返回错误信息。
临时密钥在PSAM卡下电后自动消失,不允许读。
临时密钥产生后,与原密钥的属性一致。
2)命令报文
INIT_FOR_DESCRYPT命令报文见表3-2。
代码
值
CLA
80h
INS
1Ah
P1
密钥用途
P2
密钥版本
Lc
待处理数据的长度
Data
待处理的数据
Le
无
表3-3INIT_FOR_DESCRYPT命令报文
3)命令报文数据域
命令报文数据域包括待处理的输入数据。
数据长度为8的整数倍,长度也可以为0。
密钥类型取密钥用途的低5位,密钥分散级数取密钥用途的高3位。
如待处理的输入数据包括多级的分散因子,按最后一次分散因子在前、最先一次分散因子在后的顺序输入。
4)响应报文数据域
响应报文数据域不存在。
5.通用DES计算(DESCrypt)
1)定义和范围
DESCRYPT命令利用指定的密钥来进行运算。
若一条命令无法传输所有的待处理数据,可分几条命令输入。
加密计算采用ECB模式,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的加密。
MAC计算遵循《中国金融集成电路(IC)卡规范》,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的MAC计算。
DESCRYPT命令必须在INIT_FOR_DESCRYPT命令成功执行后才能进行。
卡片状态在执行无后续块计算后,复原为通用DES计算初始化执行前的状态。
2)命令报文
DESCRYPT命令报文见表3-3。
代码
值
CLA
80h
INS
Fah
P1
见表3-4
P2
00h
Lc
要加密的数据长度
Data
要加密的数据
Le
不存在
表3-3DESCRYPT命令报文
b8
b7
b6
b5
b4
b3
b2
b1
含义
X
计算模式
——0,加密
——1,MAC计算
X
后续块
——0,无后续块
——1,有后续块
X
初始值(仅对MAC计算有效)
——0,无初始值
——1,有初始值
表3-4DESCRYPT命令引用控制参数
P1值计算模式如下:
——0,无后续块加密
——1,最后一块MAC计算
——2,有后续块加密
——3,下一块MAC计算
——5,唯一一块MAC计算
——7,第一块MAC计算
——其他,保留
3)命令报文数据域
命令报文数据域包括要加密的数据。
加密数据的长度为8的整数倍。
在P1的b3位为1时,待处理数据的前8个字节为MAC计算的初始值。
4)响应报文数据域
在P1的b1位为0时,响应报文数据域包括加密结果,数据长度是8的整数倍。
在P1的b1位为1,且P1的b2位为0时,响应报文数据域包括4字节的MAC。
6.应用解锁(ApplicationUnblock)
1)定义和范围
APPLICATIONUNBLOCK命令用于恢复当前应用。
当命令成功完成后,对应用访问的限制将被取消,利用消费密钥校验MAC2的错误计数器将被重置。
如果应用解锁连续失败三次,卡将永久锁定此应用。
在APPLICATIONUNBLOCK命令执行前必须执行GETCHANLLENGE命令取得4字节的随机数。
2)命令报文
APPLICATIONUNBLOCK命令报文见表3-5。
代码
值
CLA
84h
INS
18h
P1
00
P2
00
Lc
数据字节数
Data
报文鉴别代码数据元
Le
不存在
表3-5APPLICATIONUNBLOCK命令报文
3)命令报文数据域
命令报文数据域包括报文鉴别代码,由应用维护密钥对以下数据(按所列顺序)进行MAC计算而得到的:
——CLA
——INS
——P1
——P2
——Lc
MAC计算的方式参见《中国金融集成电路(IC)卡规范。
》
4)响应报文数据域
响应报文数据域不存在。
7.MAC1计算(INIT_SAM_FOR_PURCHASE)
1)定义和范围
INIT_SAM_FOR_PURCHASE命令可支持多级消费密钥分散机制,产生《中国金融集成电路(IC)卡规范》中定义的MAC1。
根据银行IC卡试点技术方案,可以利用试点城市标识、成员行标识、卡片应用序列号、随机数和交易信息得到过程密钥,进而加密得到MAC。
PSAM卡产生脱机交易流程中MAC1的过程如下所示:
●PSAM在其内部用GMPK(全国消费主密钥)对试点城市标识分散,得到二级消费主密钥BMPK;
●PSAM在其内部用BMPK对成员行标识分散,得到成员行消费主密钥MPK;
●PSAM在其内部用MPK对卡片应用序列号分散,得到卡片消费子密钥DPK;
●PSAM在其内部用DPK对卡片传来的伪随机数、脱机交易序号、终端交易序号加密,得到过程密钥SESPK,作为临时密钥存放在卡中;
●PSAM在其内部用SESPK对交易金额、交易类型标识、终端机编号、交易日期(终端)和交易时间(终端)加密得到MAC1,将MAC1传送出去。
在此过程中,所有的中间结果只保留在卡片内部,外界无法得到。
只有进行本命令后,才允许进行MAC2校验的命令。
参与处理的终端机编号和终端交易序号由卡片操作系统从卡片中取得。
INIT_SAM_FOR_PURCHASE命令可支持多级消费密钥分散机制,消费密钥的分散过程由Lc和消费密钥共同确定,如果二者不一致,则返回错误信息。
2)命令报文
INIT_SAM_FOR_PURCHASE命令报文见表3-6。
代码
值
CLA
80h
INS
70h
P1
00h
P2
00h
Lc
14h+8×N(N=1,2,3)
Data
要处理的数据
Le
08
表3-6INIT_SAM_FOR_PURCHASE命令报文
3)命令报文数据域
命令报文数据域包括的数据以下列顺序排列:
●用户卡随机数,4字节
●用户卡交易序号,2字节
●交易金额,4字节
●交易类型标识,1字节
●交易日期(终端),4字节
●交易时间(终端),3字节
●消费密钥版本号,1字节
●消费密钥算法标识,1字节
●用户卡应用序列号,8字节
●成员银行标识,8字节
●试点城市标识,8字节
4)响应报文数据域
响应报文数据域包括以下数据(按顺序返回):
——4字节的终端脱机交易序号
——4字节的MAC1
8.
校验MAC2(CREDIT_SAM_FOR_PURCHASE)
1)定义和范围
CREDIT_SAM_FOR_PURCHASE命令利用INIT_SAM_FOR_PURCHASE命令产生的过程密钥SESPKP校验MAC2,过程如下所示:
●检查MAC2尝试计数器,如MAC2未被锁定,PSAM在其内部用SESPK对交易金额加密得到MAC2,与命令报文中的数据进行比较;
●若命令执行成功,PSAM卡将应用中的终端脱机消费交易序号加1;
●如命令执行不成功,PSAM卡将MAC2尝试计数器减1,并回送状态码’63Cx’,这里’x’是MAC2尝试计数器的新值;
●如果’x’为零,PSAM卡将锁定消费密钥所在的ADF。
在此过程中,所有的中间结果只保留在卡片内部,外界无法得到。
CREDIT_SAM_FOR_PURCHASE命令必须在INIT_SAM_FOR_PURCHASE命令成功执行后才能进行。
若MAC2尝试计数器为0的话,消费密钥所在的应用将被锁定,只能在应用维护密钥的控制下应用解锁后使用。
应用下的MAC2错误计数器在应用下所有消费密钥MAC2校验错误的情况下都要被减1。
卡片的状态在命令执行后将复原为MAC1校验前的状态。
2)命令报文
CREDIT_SAM_FOR_PURCHASE命令报文见表3-7。
代码
值
CLA
80h
INS
72h
P1
00h
P2
00h
Lc
04h
Data
MAC2
Le
不存在
表3-7CREDIT_SAM_FOR_PURCHASE命令报文
3)命令报文数据域
命令报文数据域包括4字节的MAC2。
4)响应报文数据域
响应报文数据域不存在。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PSAM 必需 支持 专用 命令