SJL05金融数据加密机程序员手册WT363MA02EWV10309.docx
- 文档编号:9887895
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:47
- 大小:27.04KB
SJL05金融数据加密机程序员手册WT363MA02EWV10309.docx
《SJL05金融数据加密机程序员手册WT363MA02EWV10309.docx》由会员分享,可在线阅读,更多相关《SJL05金融数据加密机程序员手册WT363MA02EWV10309.docx(47页珍藏版)》请在冰豆网上搜索。
SJL05金融数据加密机程序员手册WT363MA02EWV10309
1.1BMK到LMK的转加密<0xD002>
说明:
将用BMK加密的工作密钥WK,转为用LMK加密。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x02
BMK长度标志
1
H
1:
单倍长度
2:
双倍长度
3:
三倍长度
BMK
N
H
N=8/16/24(LMK加密的密文)
工作密钥WK长度
1
H
8/16/24
工作密钥WK
N
H
N=8/16/24(BMK加密的密文)
输出域
长度
类型
备注
应答码
1
A
“A”
工作密钥WK长度
1
H
8/16/24
工作密钥WK
N
H
N=8/16/24(LMK加密的密文)
校验码
8
H
WK的校验码
或
应答码
1
A
“E”
错误码
1
H
计算过程:
1、读取加密机LMK。
2、用LMK对输入BMK解密,得到BMK明文。
3、用BMK明文对输入WK解密,得到WK明文。
4、用LMK对WK明文加密。
1.2LMK到BMK的转加密<0xD004>
说明:
将用LMK加密的工作密钥WK,转为用BMK加密。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x04
BMK长度标志
1
H
1:
单倍长度
2:
双倍长度
3:
三倍长度
BMK
N
H
N=8/16/24(LMK加密的密文)
工作密钥WK长度
1
H
8/16/24
工作密钥WK
N
H
N=8/16/24(LMK加密的密文)
输出域
长度
类型
备注
应答码
1
A
“A”
工作密钥WK长度
1
H
8/16/24
工作密钥WK
N
H
N=8/16/24(BMK加密的密文)
校验码
8
H
WK的校验码
或
应答码
1
A
“E”
错误码
1
H
计算过程:
1、读取加密机LMK。
2、用LMK对输入的BMK解密,得到BMK明文。
3、用LMK对输入的WK解密,得到WK明文。
4、用BMK明文对WK明文加密。
1.3产生随XX钥<0xD006>
说明:
生成指定长度的随XX钥,并用LMK加密后返回其密文和CheckValue。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x06
随XX钥长度
1
H
8/16/24
输出域
长度
类型
备注
应答码
1
A
“A”
随XX钥长度
1
H
8/16/24
随XX钥
N
H
LMK加密的密钥,N=8/16/24
校验码
8
H
随XX钥的校验码
或
应答码
1
A
“E”
错误码
1
H
1.4用LMK加密明文密钥<0xD008>
说明:
用LMK加密输入的明文密钥,并返回CheckValue。
消息格式
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x08
密钥长度
1
H
8/16/24
密钥明文
N
H
N=8/16/24
输出域
长度
类型
备注
应答码
1
A
“A”
密钥长度
1
H
8/16/24
密钥
N
H
LMK加密的密钥N=8/16/24
校验码
8
H
密钥的校验码
或
应答码
1
A
“E”
错误码
1
H
1.5校验密钥<0xD00A>
说明:
输入指定长度的密文密钥,并校验密钥的校验码。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x0A
密钥长度
1
H
8/16/24
密钥
N
H
N=8/16/24(LMK加密的密文)
校验值长度
1
H
4-8
校验值
N
H
输出域
长度
类型
备注
应答码
1
A
“A”
或
应答码
1
A
“E”
错误码
1
H
1.6用密钥分量合成密钥<0xD00C>
说明:
用输入分量合成一个密钥,分量最多为9个。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x0C
密钥长度
1
H
8/16/24
分量个数
1
H
1到9
分量1
N
H
LMK加密的分量N=8/16/24
分量2
N
H
LMK加密的分量N=8/16/24
分量n
N
H
LMK加密的分量N=8/16/24
输出域
长度
类型
备注
应答码
1
A
“A”
密钥长度
1
H
密钥
N
H
LMK加密的密钥N=8/16/24
校验码
8
H
密钥的校验码
或
应答码
1
A
“E”
错误码
1
H
0x01:
无本地主密钥
0x10:
长度标志错
0x68:
输入长度错
1.7用输入密钥加密数据<0xD012>
说明:
用输入密钥对数据进行加密。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x12
算法模式
1
H
0:
ECB1:
CBC
算法类型
1
H
1:
Single_Des
2:
Double_Des
3:
Triple_Des
密钥
N
H
LMK加密,N=8/16/24
数据长度
2
H
数据长度(必须是8的整数倍)
数据
N
H
IV
8
H
CBC模式时存在
输出域
长度
类型
备注
应答码
1
A
“A”
数据长度
2
H
数据长度(8的整数倍)
数据
N
H
或
应答码
1
A
“E”
错误码
1
H
1.8用输入密钥解密数据<0xD014>
说明:
用输入密钥对数据进行加密。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x14
算法模式
1
H
0:
ECB1:
CBC
算法类型
1
H
1:
Single_Des
2:
Double_Des
3:
Triple_Des
密钥
N
H
LMK加密,N=8/16/24
数据长度
2
H
数据长度(必须是8的整数倍)
数据
N
H
IV
8
H
CBC模式时存在
输出域
长度
类型
备注
应答码
1
A
“A”
数据长度
2
H
数据长度(8的整数倍)
数据
N
H
或
应答码
1
A
“E”
错误码
1
H
1.9数据转加密<0xD016>
说明:
将由Key1加密的数据,转为由Key2加密。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x16
Key1的算法类型
1
H
1:
单倍长度
2:
双倍长度
3:
三倍长度
Key1
N
H
N=8/16/24(被LMK加密)
Key2的算法类型
1
H
1:
单倍长度
2:
双倍长度
3:
三倍长度
Key2
N
H
N=8/16/24(被LMK加密)
要转加密的数据
8
H
被Key1加密的密文
输出域
长度
类型
备注
应答码
1
A
“A”
转加密结果
8
H
被Key2加密的密文
或
应答码
1
A
“E”
错误码
1
H
计算过程:
1、读取加密机LMK。
2、用LMK解密Key1,用Key1明文对数据密文解密。
3、用LMK解密Key2,用Key2明文对数据明文加密。
1.10数据掩盖<0xD018>
说明:
采用内部算法对一段数据进行"掩盖",输出密文。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x18
数据长度
2
H
[1,4096]
数据
N
H
明文数据段
输出域
长度
类型
备注
应答码
1
A
“A”
数据长度
2
H
[1,4096]
数据
N
H
密文数据段
或
应答码
1
A
“E”
错误码
1
H
1.11数据还原<0xD019>
说明:
采用内部算法对一段经过"掩盖"的数据进行还原,输出明文。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x19
数据长度
2
H
[1,4096]
数据
N
H
被掩盖密文数据
输出域
长度
类型
备注
应答码
1
A
“A”
数据长度
2
H
[1,4096]
数据
N
H
还原的明文数据段
或
应答码
1
A
“E”
错误码
1
H
1.12产生随机数串<0xD01A>
说明:
产生指定长度的随机数串。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x1A
随机数长度
2
H
[1,4096]
输出域
长度
类型
备注
应答码
1
A
“A”
随机数长度
2
H
8/16/24
随机数
N
H
‘0’-‘9’的数串
或
应答码
1
A
“E”
错误码
1
H
1.13加密PIN<0xD022>
说明:
用输入的PIK加密PIN。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x22
PIK长度标识
1
H
1:
单倍长度
2:
双倍长度
3:
三倍长度
PIK
N
H
N=8/16/24,LMK加密的PIK
PIN格式
1
H
01/02/03/04/05/06
PIN长度
1
H
明文PIN长度
PIN
N
A
明文PIN(必须是0-9的数字)
主XX/补位码
12到19
A
(必须是0-9的数字)
输出域
长度
类型
备注
应答码
1
A
“A”
PIN
8
H
加密后的PIN
或
应答码
1
A
“E”
错误码
1
H
1.14解密PIN<0xD024>
说明:
用输入的PIK解密PIN。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x24
PIK长度
1
H
1:
单倍长度
2:
双倍长度
3:
三倍长度
PIK
N
H
N=8/16/24LMK加密的PIK
PIN格式
1
H
01/02/03/04/05/06
PIN
8
H
密文PIN
主XX/补位码
12--19
A
(必须是0-9的数字)
输出域
长度
类型
备注
应答码
1
A
“A”
PIN长度
1
H
PIN
N
A
明文PIN
或
应答码
1
A
“E”
错误码
1
H
1.15计算MAC<0xD032>
说明:
用输入的MAK对输入数据计算MAC。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x32
算法类型
1
H
01:
XOR
02:
ANSI9.9
03:
ANSI9.19
MAK长度
1
H
8/16/24
MAK
N
H
N=8/16/24LMK加密的MAK
初始向量
8
H
数据长度
2
H
数据
N
H
输出域
长度
类型
备注
应答码
1
A
“A”
MAC
8
H
或
应答码
1
A
“E”
错误码
1
H
1.16计算CVV<0xD042>
说明:
用输入密钥计算CVV。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x42
CVK1
8
H
LMK加密的密文
CVK2
8
H
LMK加密的密文
卡主XX
12/19
A
0-9的数字串
分隔符
1
A
;
有效期
4
A
0-9的数字串
服务代码
3
A
0-9的数字串
输出域
长度
类型
备注
应答码
1
A
“A”
CVV
3
A
或
应答码
1
A
“E”
错误码
1
H
1.17计算PVV<0xD044>
说明:
用输入密钥计算PVV。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x44
密钥
16
H
LMK加密的密文
PVK索引代号
1
H
‘0’–‘F’
明文PIN长度
1
A
4-12
主账号
16-19
A
0-9的数字串
分隔符
1
A
‘;’
明文PIN
N
H
输出域
长度
类型
备注
应答码
1
A
“A”
PVV
4
H
或
应答码
1
A
“E”
错误码
1
H
1.18IBM3624算法<0xD047>
说明:
用IBM3624算法生成Offset。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x47
密钥
8
H
LMK加密的密钥
账号
8
H
账号的最后16字节转为BCD码,
账号必须是0-9的数字。
十进制表
16
A
"12345"
密码长度
1
H
4-12
密码
4-12
A
(必须是0-9的数字)
输出域
长度
类型
备注
应答码
1
A
“A”
PIN
N
H
N=密码长度
或
应答码
1
A
“E”
错误码
1
H
1.19定义打印格式<0xD052>
说明:
定义打印格式。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x52
打印格式定义符
N
A
打印控制符字符串
输出域
长度
类型
备注
应答码
1
A
“A”
或
应答码
1
A
“E”
错误码
1
H
农行控制符字符串:
">L>L>L>L>L>L>L>025^0>L>L>L>025^1>060^2>L>L>L>L>025^T>060^P>L>060^Q>L>060^R>L>L>L>L>L>L"
1.20产生随XX钥并打印<0xD054>
说明:
定义打印格式。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD0
命令
1
H
0x54
密钥长度
1
A
8/16/24
附加信息1
A
n
打印位置对应与^0
分隔符
A
1
‘;’
附加信息2
A
n
打印位置对应与^1
分隔符
A
1
‘;’
…………………
………………………..
输出域
长度
类型
备注
应答码
1
A
“A”
随XX钥长度
1
H
8/16/24
随XX钥
N
H
LMK加密的密钥,N=8/16/24
校验码
8
H
随XX钥的校验码
或
应答码
1
A
“E”
错误码
1
H
1.21产生并保存RSA密钥对<0xD201>
说明:
产生随机RSA密钥对,并保存在加密机索引上。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD2
命令
1
H
0x01
模长
2
H
[512,2048],必须是8的整数倍。
索引
2
H
[0,19]
指数
4
H
输出域
长度
类型
备注
应答码
1
A
“A”
公钥长度
2
H
公钥长度
公钥
H
DER格式的公钥
或
应答码
1
A
“E”
错误码
1
H
1.22公钥加解密<0xD202>
说明:
用输入的公钥,对输入数据加/解密。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD2
命令
1
H
0x02
加解密标志
1
H
1:
加密0:
解密
填充模式
1
H
0:
不填充
1:
PKCS#1填充算法
2:
OAEP填充算法
公钥长度
2
H
外部输入的公钥长度
数据长度
2
H
公钥
H
DER格式
数据
H
输出域
长度
类型
备注
应答码
1
A
“A”
数据长度
2
H
数据长度
数据
H
数据
或
应答码
1
A
“E”
错误码
1
H
计算过程:
1、将DER格式的公钥,转为PKCS格式。
2、用公钥加解密。
1.23签名<0xD203>
说明:
用输入的私钥,对输入数据签名。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD2
命令
1
H
0x03
摘要算法
1
H
0—MD5算法
1—SHA-1算法;
2—SHA-224
3—SHA-256
4—SHA-384
5—SHA-512
填充模式
1
H
0:
不填充
1:
PKCS#1填充算法
2:
OAEP填充算法
RSA密钥索引
2
H
[0,19]
0xFFFF:
私钥从外部传入
RSA私钥长度
2
H
索引在[0,19]X围时,填0
索引为0xFFFF时,为外部输入的私钥长度
摘要数据长度
2
H
RSA私钥
H
DER格式;
结尾补0x80,再补0x00直到数据长度为8的整数倍;
被LMK加密。
(索引在[0,19]X围时不存在)
摘要数据
H
输出域
长度
类型
备注
应答码
1
A
“A”
签名长度
2
H
签名长度
签名
H
签名
或
应答码
1
A
“E”
错误码
1
H
计算过程:
索引在[0,19]X围时,用加密机内部RSA私钥:
1、读取指定索引的RSA私钥。
2、对输入数据摘要。
3、用RSA私钥对摘要加密。
索引为0xFFFF时,RSA私钥从外部传入:
1、读取加密机LMK。
2、用LMK对传入RSA私钥解密。
3、除去私钥结尾的0x80.、0x00…填充字符。
4、将DER格式的私钥,转为PKCS格式。
5、对输入数据摘要。
6、用RSA私钥对摘要加密。
1.24签名验证<0xD204>
说明:
签名验证。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD2
命令
1
H
0x04
摘要算法
1
H
0—MD5算法
1—SHA-1算法;
2—SHA-224
3—SHA-256
4—SHA-384
5—SHA-512
填充模式
1
H
0:
不填充
1:
PKCS#1填充算法
2:
OAEP填充算法
RSA公钥长度
2
H
外部输入的公钥长度
签名对应的数据长度
2
H
签名长度
2
H
RSA公钥
H
DER格式;
签名对应的数据
H
签名
H
输出域
长度
类型
备注
应答码
1
A
“A”
签名长度
2
H
签名长度
签名
H
签名
或
应答码
1
A
“E”
错误码
1
H
计算过程:
1、将DER格式的RSA公钥,转为PKCS格式。
2、对数据进行摘要。
3、用RSA公钥对签名解密。
4、将摘要结果与解密结果比较。
1.25导出指定索引上的私钥<0xD206>
说明:
导出指定索引上的私钥。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD2
命令
1
H
0x06
索引
2
H
[0,19]
输出域
长度
类型
备注
应答码
1
A
“A”
私钥长度
2
H
私钥长度
私钥
H
LMK加密的私钥
或
应答码
1
A
“E”
错误码
1
H
计算过程:
1、读取LMK。
2、读取指定索引上的私钥。
3、将私钥转为DER格式。
4、在私钥结尾补0x80,再补0x00直到长度为8的整数倍。
5、用LMK对私钥加密。
1.26公钥转加密<0xD20A>
说明:
将用LMK加密的数据,转为RSA公钥加密。
消息格式:
输入域
长度
类型
备注
命令类型
1
H
0xD2
命令
1
H
0x0A
填充模式
1
H
0:
不填充
1:
PKCS#1填充算法
2:
OAEP填充算法
数据长度
2
H
[1,256],必须是8的整数倍。
公钥长度
2
H
外部输入的公钥长度
公钥
H
DER格式
被LMK加密的密文数据
H
输出域
长度
类型
备注
应答码
1
A
“A”
数据长度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SJL05 金融 数据 加密 程序员 手册 WT363MA02EWV10309