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