SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx

上传人:b****8 文档编号:9605426 上传时间:2023-02-05 格式:DOCX 页数:39 大小:31.79KB
下载 相关 举报
SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx_第1页
第1页 / 共39页
SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx_第2页
第2页 / 共39页
SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx_第3页
第3页 / 共39页
SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx_第4页
第4页 / 共39页
SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx

《SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx》由会员分享,可在线阅读,更多相关《SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx(39页珍藏版)》请在冰豆网上搜索。

SJL06磁条卡IC卡兼容加密机磁条卡命令集.docx

SJL06磁条卡IC卡兼容加密机磁条卡命令集

(磁条卡规范)

江南计算技术研究所

一九九八年四月

目录

第一章密钥体制1

2.1磁条卡密钥1

2.2密钥检查2

第二章密码机消息格式3

第三章密码机命令4

3.1密钥管理命令4

3.1.1产生一个数据密钥4

3.1.2产生一个索引的银行主密钥5

3.1.3产生两个数据密钥6

3.1.4产生数据密钥检查值7

3.1.5转换一个数据密钥从Variant到无Variant。

8

3.1.6给数据密钥加上奇偶校验位9

3.1.7产生一个数据密钥及其检查值10

3.1.8转换一个数据密钥从一个银行到另一个银行11

3.1.9存储一个索引的银行主密钥12

3.1.10存储一个索引的终端密钥13

3.1.11取回一个索引的银行主密钥14

3.1.12取回一个索引的终端密钥15

3.2PIN命令16

3.2.1要求加密一个PIN16

3.2.2要求将PIN从银行1转换到银行217

3.2.3用终端密钥加密PIN18

3.2.4转换PIN从终端密钥加密到PIK加密19

3.2.5转换PIN从PIK加密到终端密钥加密20

3.2.6验证一个PIN21

3.2.7转换PIN从银行1到银行222

3.2.8解密一个PIN23

3.2.9将PIN从银行1转换到银行224

3.3MAC命令25

3.3.1产生MAC25

3.3.2验证MAC26

3.3.3产生一个MAC,同时从终端上转换一个PIN27

3.3.4转换一个MAC28

3.3.5同时转换一个MAC和一个PIN29

3.4测试命令30

3.4.1返回主密钥状态30

3.4.2返回一个银行主密钥状态31

3.4.3要求返回一个终端密钥状态32

3.5VISA命令33

3.5.1产生一个卡校验值CVV33

3.5.2验证一个卡校验值CVV34

3.5.3产生一个PIN校验值PVV35

3.5.4验证一个PIN校验值PVV36

3.6报文命令37

附录A密码机出错代码表1

附录BPIN格式2

第一章密钥体制

SJL06T密码机提供了适用于磁条卡(JK)与IC卡两种应用的指令集。

这两套指令集的密钥分开管理,因此密码机为这两种应用分配了各自的密钥库,独立进行管理。

密码机内有以下密钥:

磁条卡应用密钥库:

主密钥MK(1个)

银行主密钥BMK(索引号000-511,共512个)

终端密钥ATK(索引号000-999,共1000个)

IC卡应用密钥库:

主密钥MK(1个)

交易主密钥(版本0-2,每个版本有00-31共32组,每组有01-10共10个密钥)

终端密钥ATK(索引号000-999,共1000个)

2.1磁条卡密钥

2.1.1主密钥〔MK〕

主密钥为16个字节,由三个成份合成,每个成份为16字节。

可由三个人管理,每人输入一个成份,送入密码机,合成最终的主密钥,并保存在密码机内。

用于对银行主密钥加密。

2.1.2银行主密钥〔BMK〕

银行主密钥为16个字节,由二个成份合成,每个成份为16字节。

可由二个人管理,每人输入一个成份,送入密码机,合成最终的银行主密钥,并保存在密码机内。

它必须在主密钥之后输入,以索引号的方式使用。

用于对数据密钥(MAK,PIK)加解密。

2.1.3MAC密钥〔MAK〕

MAC密钥为8个字节。

它由交换中心的密码机产生并分发给成员行。

MAK受银行主密钥保护,存放在主机内,密码机内不保存。

用于产生消息鉴别码MAC。

2.1.4PIN密钥〔PIK〕

PIN密钥为8个字节。

它由交换中心的密码机产生并分发给成员行。

PIK受银行主密钥保护,存放在主机内,密码机内不保存。

用于加密个人识别码PIN。

2.1.5ATM密钥〔ATK〕

ATM密钥为8个字节。

它由成员行人工输入,并保存在密码机内,以索引号的方式使用。

2.2密钥检查

假如密钥的字节形式为b7b6b5b4b3b2b1b0,

则校验位b0=b7⊕b6⊕b5⊕b4⊕b3⊕b2⊕b1⊕1

‘⊕’为异或算法。

由密码机生成的密钥,符合奇较验,且密码机可自动检查其是否为弱密钥(WeakKey)或半弱密钥(simi-weakkey)。

如果属于这类密钥,密码机将自动重新产生。

弱密钥为:

0101010101010101

1F1F1F1F1F1F1F1F

E0E0E0E0F1F1F1F1

FEFEFEFEFEFEFEFE

半弱密钥为:

E0FEE0FEF1FEF1FE

FEE0FEE0FEF1FEF1

1FFE1FFE0EFE0EFE

01FE01FE01FE01FE

1FE01FE00EF10EF1

01E001E001F101F1

FE1FFE1FFE0EFE0E

E01FE01FF10EF10E

FE01FE01FE01FE01

E001E001F101F101

011F011F010E010E

1F011F010E010E01

第二章密码机消息格式

1.异步消息格式

异步通讯协议(ASYNC)采用8bits数据位,1bit停止位,无奇偶校验位,波特率19.2K。

消息格式如下:

STX

「消息内容」

检查和

ETX

1BYTE

NBYTES

4BYTES

1BYTE

STX:

控制字符(0x02),表示消息开始。

ETX:

控制字符(0x03),表示消息结束。

检查和:

消息内容各字节的算术和,取最后4位。

用来对消息内容进行验证。

检查和的计算如下例:

消息--“31001”

33

31

30

30

+31

F5

检查和:

00F5

2.TCP/IP消息格式

主机端:

消息内容

3.消息的传送

所有消息均用ACSII字符方式传送。

密钥和密文部分用十六进制数字表示。

因此一个8字节的密钥应该转换成16个ASCII码字符,一个16字节的密钥应转换成32个ASCII码字符输入。

4.字母缩写说明

n:

可变长度域

N:

十进制字符‘0’-‘9’

A:

可打印字符

H:

十六进制字符(‘0’–‘F’)

第三章密码机命令

3.1密钥管理命令

3.1.1产生一个数据密钥

密码机产生一个64bits的随机数,并用指定的银行主密钥加密后返回给主机。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“1A”

银行索引号

3

N

银行主密钥索引号

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“1B”

错误码

2

“00”表示正确,以后同

数据密钥

16

H

用银行主密钥加密后的数据密钥

3.1.2

产生一个索引的银行主密钥

密码机产生一个128bits的随机数作为指定的银行主密钥,保存在密码机内,并用主密钥加密后返回给主机。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“11”

银行索引号

3

N

银行主密钥索引号

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“12”

错误码

2

A

数据密钥

32

H

用主密钥加密后的银行主密钥

3.1.3

产生两个数据密钥

密码机产生两个64bits的随机数,并将它用指定的银行主密钥加密后返回给主机。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“1B”

银行索引号

3

N

银行主密钥索引号

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“1C”

错误码

2

A

数据密钥

32

H

用银行主密钥加密后的数据密钥

3.1.4

产生数据密钥检查值

输入一个用银行主密钥加密的数据密钥的密文,返回数据密钥的检查值。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“13”

银行索引号

3

N

银行主密钥索引号

数据密钥

16

H

用银行主密钥加密的数据密钥

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“14”

错误码

2

A

数据密钥检查值

4

H

数据密钥加密0取最左两字节

3.1.5

转换一个数据密钥从Variant到无Variant。

输入一个用银行主密钥及Variant加密的数据密钥的密文,返回用银行主密钥加密的数据密钥密文。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“1C”

银行索引号

3

H

银行主密钥索引号

数据密钥

16

H

用银行主密钥及Variant加密的数据密钥

Variant

2

N

“01”-“31”

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“1D”

错误码

2

A

数据密钥

16

H

单用银行主密钥加密的数据密钥

3.1.6

给数据密钥加上奇偶校验位

输入一个用银行主密钥加密的数据密钥的密文,返回用银行主密钥加密的符合奇偶校验的数据密钥的密文。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“15”

银行索引号

3

H

银行主密钥索引号

数据密钥

16

H

用银行主密钥加密的数据密钥

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“16”

错误码

2

A

数据密钥

16

H

用银行主密钥加密的符合奇偶校验的数据密钥

3.1.7

产生一个数据密钥及其检查值

密码机产生一个64bits的数据密钥,返回该数据密钥密文及其检查值。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“16”

银行索引号

3

N

银行主密钥索引号

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“17”

错误码

2

A

数据密钥

16

H

用银行主密钥加密后的数据密钥

数据密钥检查值

16

H

用数据密钥加密0

3.1.8

转换一个数据密钥从一个银行到另一个银行

密码机用BMK1解密KEY,如果KEY不符合奇校验,则使KEY符合奇校验,然后用BMK2加密后输出。

输入消息格式

输入域

长度

类型

内容

命令

2

N

值“17”

银行索引号1

3

N

银行主密钥1索引号

银行索引号2

3

N

银行主密钥2索引号

数据密钥

16

H

用银行主密钥1加密

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“18”

错误码

2

A

数据密钥

16

H

用银行主密钥2加密

3.1.9

存储一个索引的银行主密钥

输入用主密钥加密的银行主密钥密文,将它存储在密码机内。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“2A”

银行索引号

3

N

银行主密钥索引号

银行主密钥

32

H

用主密钥加密的银行主密钥

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“2B”

错误码

2

A

3.1.10

存储一个索引的终端密钥

输入一个用银行主密钥加密的终端密钥(ATK或POK密钥),将它存储在密码机内。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“21”

银行索引号

3

N

银行主密钥索引号

终端密钥索引号

3

N

终端密钥索引号

ATK或POK密钥

16

H

用银行主密钥加密的

ATK或POK密钥

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“22”

错误码

2

A

3.1.11

取回一个索引的银行主密钥

从密码机取回一个指定的银行主密钥密文。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“31”

银行索引号

3

N

银行主密钥索引号

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“32”

错误码

2

A

错误码

银行主密钥

32

H

用主密钥加密后的银行主密钥

3.1.12

取回一个索引的终端密钥

从密码机取回一个索引的终端密钥(ATK或POK,受指定银行主密钥的保护)。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“32”

银行索引号

3

N

银行主密钥索引号

终端密钥索引号

3

N

终端密钥索引号

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“33”

错误码

2

A

错误码

ATK或POK

16

H

用银行主密钥加密后的ATK或POK

3.2PIN命令

3.2.1要求加密一个PIN

用输入的PIK密钥加密PIN。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“60”

PIN类型

1

N

‘1’-‘7’

银行主密钥索引

3

N

银行主密钥索引

PIK密钥

16

H

用银行主密钥加密的PIN密钥

明文

16

H

要加密的PIN明文

PAN

16

H

仅当PIN类型为3或7时有此域

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“61”

错误码

2

A

错误码

加密后的PIN

16

H

用PIK密钥加密后的PIN块

3.2.2

要求将PIN从银行1转换到银行2

密码机将输入的PIN块的密文用PIK1解密,然后用PIK2加密输出。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“61”

银行主密钥1索引号

3

N

PIK1的银行主密钥索引号

PIK1

16

H

用它解密PIN块

银行主密钥2索引号

3

N

PIK2的银行主密钥索引号

PIK2

16

H

用它加密PIN块

PIN的密文

16

H

被转换的PIN的密文

PAN(或附加信息)

16

H

PAN(或附加信息)

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“62”

错误码

2

A

错误码

加密后的PIN

16

H

用PIK2密钥加密后的PIN

3.2.3

用终端密钥加密PIN

密码机用指定终端密钥加密PIN。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“62”

PIN类型

1

N

终端密钥索引号

3

N

银行主密钥索引

明文

16

H

要加密的PIN的明文

PAN(或附加信息)

16

H

仅当PIN类型为3或7时有此域

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“63”

错误码

2

A

错误码

加密后的PIN

16

H

用终端密钥加密后的PIN

3.2.4

转换PIN从终端密钥加密到PIK加密

输入用终端密钥加密的PIN,密码机将它用终端密钥解密后,将ATM的PIN格式转换成ANSIX9.8标准,并加上附加信息,再用PIK加密输出。

PIN格式请参见附录B。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“63”

PIN类型

1

N

终端密钥索引号

3

N

终端密钥索引

银行索引号

3

N

PIK的银行主密钥索引号

PIK密码

16

H

用它加密PIN

PIN的密文

16

H

将要转换的PIN的密文

主帐号(附加信息)

16

H

仅当PIN类型3,4,5,6,7时有此域

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“64”

错误码

2

A

错误码

加密后的PIN

16

H

用PIK加密后的PIN

3.2.5

转换PIN从PIK加密到终端密钥加密

输入用PIK加密的PIN,密码机将它们用PIK解密后,将ANSIX9.8标准的PIN格式转换成终端格式,并用终端密钥加密后输出。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“64”

PIN类型

1

N

终端密钥索引号

3

N

终端密钥索引

银行索引号

3

N

加密PIK的银行主密钥索引号

PIK密码

16

H

用它解密PIN

PIN密文

16

H

要转换的PIN的密文

主帐号(附加信息)

16

H

仅当PIN类型3,4,5,6,7时有此域

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“65”

错误码

2

A

错误码

加密后的PIN

16

H

用终端密钥加密后的PIN

3.2.6

验证一个PIN

输入用PIK加密的PIN和用终端密钥加密的PIN,密码机将它们解密后,验证它们是否一致。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“65”

银行索引号

3

N

加密PIK的银行主密钥索引号

PIK密码

16

H

用它解密PIN

PIN的密文1

16

H

用PIK加密

附加信息

16

H

附加信息

终端密钥索引号

3

N

终端密钥索引号

PIN的密文2

16

H

用ATK加密

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“66”

错误码

2

A

错误码

3.2.7

转换PIN从银行1到银行2

密码机将输入的PIN的密文用PIK1解密,然后用PIK2加密输出。

此命令与61命令相似,但用PIK1加密的PIN块不含PAN。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“67”

银行主密钥1索引号

3

N

PIK1的银行主密钥索引号

PIK1

16

H

用它解密PIN

银行主密钥2索引号

3

N

PIK2的银行主密钥索引号

PIK2

16

H

用它加密PIN

PIN的密文

16

H

被转换的PIN的密文

PAN(或附加信息)

16

H

PAN(或附加信息)

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“68”

错误码

2

A

错误码

加密后的PIN

16

H

用PIK2密钥加密后的PIN

3.2.8

解密一个PIN

用PIK密钥解密一个PIN。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“68”

银行索引号

3

N

银行主密钥索引号

PIK

16

H

用它解密PIN

PIN的密文

16

H

将要解密的PIN的密文

附加信息

16

H

附加信息

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“69”

错误码

2

A

错误码

PIN明码

16

H

3.2.9

将PIN从银行1转换到银行2

密码机将输入的PIN的密文用PIK1解密,然后用PIK2加密输出。

此命令与61命令相似,但PIK1和PIK2使用不同的附加信息。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“69”

银行主密钥1索引号

3

N

PIK1的银行主密钥索引号

PIK1

16

H

用它解密PIN

银行主密钥2索引号

3

N

PIK2的银行主密钥索引号

PIK2

16

H

用它加密PIN

PIN的密文

16

H

要转换的PIN的密文

附加信息1

16

H

附加信息1

附加信息2

16

H

附加信息2

 

输出消息格式

输出域

长度

类型

内容

应答码

2

A

“6:

错误码

2

A

错误码

加密后的PIN

16

H

用PIK2密钥加密后的PIN

3.3MAC命令

3.3.1产生MAC

密码机用MAK密钥产生一个MAC。

输入消息格式

输入域

长度

类型

内容

命令

2

A

值“80”

银行索引号

3

N

加密MAK的银行主密钥索引号

MAK密码

16

H

用它产生MAC

MAC数据的长度

3

N

输入的MAC数据的字节数

输入MAC数据

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1