1、SJL05金融数据加密机程序员手册WT363MA02EWV103091.1BMK到LMK的转加密说明:将用BMK加密的工作密钥WK,转为用LMK加密。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x02BMK长度标志1H1: 单倍长度2: 双倍长度3: 三倍长度BMKNHN=8/16/24 (LMK加密的密文)工作密钥WK长度1H8/16 / 24工作密钥WKNHN=8/16/24 (BMK加密的密文)输出域长度类型备注应答码1A“A”工作密钥WK长度1H8/16 / 24工作密钥WKNHN=8/16/24 (LMK加密的密文)校验码8HWK的校验码或应答码1A“E”错误码1H计算
2、过程:1、读取加密机LMK。2、用LMK对输入BMK解密,得到BMK明文。3、用BMK明文对输入WK解密,得到WK明文。4、用LMK对WK明文加密。1.2LMK到BMK的转加密说明:将用LMK加密的工作密钥WK,转为用BMK加密。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x04BMK长度标志1H1: 单倍长度2: 双倍长度3: 三倍长度BMKNHN=8/16/24 (LMK加密的密文)工作密钥WK长度1H8/16/24工作密钥WKNHN=8/16/24 (LMK加密的密文)输出域长度类型备注应答码1A“A”工作密钥WK长度1H8/16 / 24工作密钥WKNHN=8/16/24
3、 (BMK加密的密文)校验码8HWK的校验码或应答码1A“E”错误码1H计算过程:1、读取加密机LMK。2、用LMK对输入的BMK解密,得到BMK明文。3、用LMK对输入的WK解密,得到WK明文。4、用BMK明文对WK明文加密。1.3产生随XX钥说明:生成指定长度的随XX钥,并用LMK加密后返回其密文和CheckValue。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x06随XX钥长度1H8/16 / 24输出域长度类型备注应答码1A“A”随XX钥长度1H8/16 / 24随XX钥NHLMK加密的密钥,N=8/16/24校验码8H随XX钥的校验码或应答码1A“E”错误码1H1.4
4、用LMK加密明文密钥说明:用LMK加密输入的明文密钥,并返回CheckValue。消息格式输入域长度类型备注命令类型1H0xD0命令1H0x08密钥长度1H8/ 16 / 24密钥明文NHN = 8/16/24输出域长度类型备注应答码1A“A”密钥长度1H8/ 16 / 24密钥NHLMK加密的密钥N=8/16/24校验码8H密钥的校验码或应答码1A“E”错误码1H1.5校验密钥说明:输入指定长度的密文密钥,并校验密钥的校验码。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x0A密钥长度1H8 / 16 / 24密钥NHN = 8/16/24 (LMK加密的密文)校验值长度1H4
5、- 8校验值NH输出域长度类型备注应答码1A“A”或应答码1A“E”错误码1H1.6用密钥分量合成密钥说明:用输入分量合成一个密钥,分量最多为9个。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x0C密钥长度1H8 / 16 / 24分量个数1H1到9分量1NHLMK加密的分量N=8/16/24分量2NHLMK加密的分量N=8/16/24分量nNHLMK加密的分量N=8/16/24输出域长度类型备注应答码1A“A”密钥长度1H密钥NHLMK加密的密钥N=8/16/24校验码8H密钥的校验码或应答码1A“E”错误码1H0x 01:无本地主密钥0x10:长度标志错0x68:输入长度错1
6、.7用输入密钥加密数据说明:用输入密钥对数据进行加密。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x12算法模式1H0:ECB 1:CBC算法类型1H1: Single_Des2: Double_Des3: Triple_Des密钥NHLMK加密,N = 8/16/24数据长度2H数据长度 (必须是8的整数倍)数据NHIV8HCBC模式时存在输出域长度类型备注应答码1A“A”数据长度2H数据长度 (8的整数倍)数据NH或应答码1A“E”错误码1H1.8用输入密钥解密数据说明:用输入密钥对数据进行加密。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x14算法模式1H0:
7、ECB 1:CBC算法类型1H1: Single_Des2: Double_Des3: Triple_Des密钥NHLMK加密,N = 8/16/24数据长度2H数据长度 (必须是8的整数倍)数据NHIV8HCBC模式时存在输出域长度类型备注应答码1A“A”数据长度2H数据长度 (8的整数倍)数据NH或应答码1A“E”错误码1H1.9数据转加密说明:将由Key1加密的数据,转为由Key2加密。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x16Key1的算法类型1H1: 单倍长度2: 双倍长度3: 三倍长度Key1NHN=8/16/24(被LMK加密)Key2的算法类型1H1: 单
8、倍长度2: 双倍长度3: 三倍长度Key2NHN=8/16/24 (被LMK加密)要转加密的数据8H被Key1加密的密文输出域长度类型备注应答码1A“A”转加密结果8H被Key2加密的密文或应答码1A“E”错误码1H计算过程:1、读取加密机LMK。2、用LMK解密Key1,用Key1明文对数据密文解密。3、用LMK解密Key2,用Key2明文对数据明文加密。1.10数据掩盖说明:采用内部算法对一段数据进行掩盖,输出密文。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x18数据长度2H1, 4096数据NH明文数据段输出域长度类型备注应答码1A“A”数据长度2H1, 4096数据NH
9、密文数据段或应答码1A“E”错误码1H1.11数据还原说明:采用内部算法对一段经过掩盖的数据进行还原,输出明文。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x19数据长度2H1, 4096数据NH被掩盖密文数据输出域长度类型备注应答码1A“A”数据长度2H1, 4096数据NH还原的明文数据段或应答码1A“E”错误码1H1.12产生随机数串说明:产生指定长度的随机数串。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x1A随机数长度2H1, 4096输出域长度类型备注应答码1A“A”随机数长度2H8/16 / 24随机数NH0-9的数串或应答码1A“E”错误码1H1.1
10、3加密PIN说明:用输入的PIK加密PIN。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x22PIK长度标识1H1: 单倍长度2: 双倍长度3: 三倍长度PIKNHN = 8/16/24,LMK加密的PIKPIN格式1H01/02/03/04/05/06PIN长度1H明文PIN长度PINNA明文PIN(必须是0-9的数字)主XX/补位码12到19A(必须是0-9的数字)输出域长度类型备注应答码1A“A”PIN8H加密后的PIN或应答码1A“E”错误码1H1.14解密PIN说明:用输入的PIK解密PIN。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x24PIK长度1H
11、1: 单倍长度2: 双倍长度3: 三倍长度PIKNHN = 8/16/24 LMK加密的PIKPIN格式1H01/02/03/04/05/06PIN8H密文PIN主XX/补位码12 - 19A(必须是0-9的数字)输出域长度类型备注应答码1A“A”PIN长度1HPINNA明文PIN或应答码1A“E”错误码1H1.15计算MAC说明:用输入的MAK对输入数据计算MAC。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x32算法类型1H01:XOR02:ANSI9.903:ANSI9.19MAK长度1H8/16/24MAKNHN = 8/16/24 LMK加密的MAK初始向量8H数据长度
12、2H数据NH输出域长度类型备注应答码1A“A”MAC8H或应答码1A“E”错误码1H1.16计算CVV说明:用输入密钥计算CVV。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x42CVK18HLMK加密的密文CVK28HLMK加密的密文卡主XX12 / 19A0-9的数字串分隔符1A;有效期4A0-9的数字串服务代码3A0-9的数字串输出域长度类型备注应答码1A“A”CVV3A或应答码1A“E”错误码1H1.17计算PVV说明:用输入密钥计算PVV。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x44密钥16HLMK加密的密文PVK索引代号1H0F明文PIN长度1A4
13、 - 12主账号16-19A0-9的数字串分隔符1A;明文PINNH输出域长度类型备注应答码1A“A”PVV4H或应答码1A“E”错误码1H1.18IBM3624算法说明:用IBM3624算法生成Offset。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x47密钥8HLMK加密的密钥账号8H账号的最后16字节转为BCD码,账号必须是0-9的数字。十进制表16A12345密码长度1H4 - 12密码4 - 12A(必须是0-9的数字)输出域长度类型备注应答码1A“A”PINNHN=密码长度或应答码1A“E”错误码1H1.19定义打印格式说明:定义打印格式。消息格式:输入域长度类型备
14、注命令类型1H0xD0命令1H0x52打印格式定义符NA打印控制符字符串输出域长度类型备注应答码1A“A”或应答码1A“E”错误码1H农行控制符字符串:LLLLLLL0250LLL02510602LLLL025T060PL060QL060RLLLLLL1.20产生随XX钥并打印说明:定义打印格式。消息格式:输入域长度类型备注命令类型1H0xD0命令1H0x54密钥长度1A8 / 16 /24附加信息1An打印位置对应与0分隔符A1;附加信息2An打印位置对应与1分隔符A1;.输出域长度类型备注应答码1A“A”随XX钥长度1H8/16 / 24随XX钥NHLMK加密的密钥,N=8/16/24校验
15、码8H随XX钥的校验码或应答码1A“E”错误码1H1.21产生并保存RSA密钥对说明:产生随机RSA密钥对,并保存在加密机索引上。消息格式:输入域长度类型备注命令类型1H0xD2命令1H0x01模长2H512, 2048,必须是8的整数倍。索引2H0, 19指数4H输出域长度类型备注应答码1A“A”公钥长度2H公钥长度公钥HDER格式的公钥或应答码1A“E”错误码1H1.22公钥加解密说明:用输入的公钥,对输入数据加/解密。消息格式:输入域长度类型备注命令类型1H0xD2命令1H0x02加解密标志1H1:加密 0:解密填充模式1H0:不填充1:PKCS#1填充算法2:OAEP填充算法公钥长度2
16、H外部输入的公钥长度数据长度2H公钥HDER格式数据H输出域长度类型备注应答码1A“A”数据长度2H数据长度数据H数据或应答码1A“E”错误码1H计算过程:1、将DER格式的公钥,转为PKCS格式。2、用公钥加解密。1.23签名说明:用输入的私钥,对输入数据签名。消息格式:输入域长度类型备注命令类型1H0xD2命令1H0x03摘要算法1H0MD5算法1SHA-1算法;2SHA-2243SHA-2564SHA-3845SHA-512填充模式1H0:不填充1:PKCS#1填充算法2:OAEP填充算法RSA密钥索引2H0, 190xFFFF:私钥从外部传入RSA私钥长度2H索引在0, 19X围时,填
17、0索引为0xFFFF时,为外部输入的私钥长度摘要数据长度2HRSA私钥HDER格式;结尾补0x80,再补0x00直到数据长度为8的整数倍;被LMK加密。(索引在0, 19X围时不存在)摘要数据H输出域长度类型备注应答码1A“A”签名长度2H签名长度签名H签名或应答码1A“E”错误码1H计算过程:索引在0, 19X围时,用加密机内部RSA私钥:1、读取指定索引的RSA私钥。2、对输入数据摘要。3、用RSA私钥对摘要加密。索引为0xFFFF时,RSA私钥从外部传入:1、读取加密机LMK。2、用LMK对传入RSA私钥解密。3、除去私钥结尾的0x80.、0x00填充字符。4、将DER格式的私钥,转为P
18、KCS格式。5、对输入数据摘要。6、用RSA私钥对摘要加密。1.24签名验证说明:签名验证。消息格式:输入域长度类型备注命令类型1H0xD2命令1H0x04摘要算法1H0MD5算法1SHA-1算法;2SHA-2243SHA-2564SHA-3845SHA-512填充模式1H0:不填充1:PKCS#1填充算法2:OAEP填充算法RSA公钥长度2H外部输入的公钥长度签名对应的数据长度2H签名长度2HRSA公钥HDER格式;签名对应的数据H签名H输出域长度类型备注应答码1A“A”签名长度2H签名长度签名H签名或应答码1A“E”错误码1H计算过程:1、将DER格式的RSA公钥,转为PKCS格式。2、对
19、数据进行摘要。3、用RSA公钥对签名解密。4、将摘要结果与解密结果比较。1.25导出指定索引上的私钥说明:导出指定索引上的私钥。消息格式:输入域长度类型备注命令类型1H0xD2命令1H0x06索引2H0, 19输出域长度类型备注应答码1A“A”私钥长度2H私钥长度私钥HLMK加密的私钥或应答码1A“E”错误码1H计算过程:1、读取LMK。2、读取指定索引上的私钥。3、将私钥转为DER格式。4、在私钥结尾补0x80,再补0x00直到长度为8的整数倍。5、用LMK对私钥加密。1.26公钥转加密说明:将用LMK加密的数据,转为RSA公钥加密。消息格式:输入域长度类型备注命令类型1H0xD2命令1H0x0A填充模式1H0:不填充1:PKCS#1填充算法2:OAEP填充算法数据长度2H1, 256,必须是8的整数倍。公钥长度2H外部输入的公钥长度公钥HDER格式被LMK加密的密文数据H输出域长度类型备注应答码1A“A”数据长度
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1