一种区块链终端设备免密操作的方法及装置与流程

文档序号:24652550发布日期:2021-04-13 20:22阅读:178来源:国知局
一种区块链终端设备免密操作的方法及装置与流程

1.本发明涉及信息安全领域,尤其涉及一种区块链终端设备免密操作的方法及装置。


背景技术:

2.区块链终端设备是一种保存区块链加密虚拟资产的硬件设备,为保证交互安全性,同时符合用户的操作习惯,每一次使用区块链终端设备进行操作时均需要用户输入密码进行验证,但在连续多次的操作过程中,频繁的密码输入对于用户来说比较麻烦,便捷性低,浪费时间。


技术实现要素:

3.本发明的目的是为了克服现有技术的不足,提供一种区块链终端设备免密操作的方法及装置。
4.本发明提供了一种区块链终端设备免密操作的方法,包括:
5.步骤s1:当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令则执行步骤s2,如为验证pin码指令则执行步骤s7;
6.步骤s2:区块链终端设备解析签名指令得到交互输入数值和交互数据,根据交互输入数值和交互数据得到交互数值,判断交互数值是否小于限定额度,是则执行步骤s3,否则保存未完成标识,返回需要验证pin码响应给上位机,返回步骤s1;
7.步骤s3:区块链终端设备判断当前的限定次数是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,返回步骤s1,否则执行步骤s4;
8.步骤s4:区块链终端设备判断是否需要按键确认,是则执行步骤s5,否则执行步骤s6;
9.步骤s5:区块链终端设备显示交互数值,等待用户操作,若接收到用户确认操作则执行步骤s6,若接收到用户取消操作则交互取消,结束;
10.步骤s6:区块链终端设备获取交互数据中的子密钥索引,获取预先存储在安全存储区中的主密钥,根据主密钥生成公钥,根据公钥和子密钥索引通过密钥派生算法派生出子密钥对,获取子密钥对中的子私钥,根据交互数据生成待签名数据,使用子私钥对待签名数据进行签名生成签名结果,获取子密钥对中的子公钥,根据子公钥和签名结果生成交互凭据,将交互凭据返回给上位机,返回步骤s1;
11.步骤s7:区块链终端设备对pin码进行验证,如验证成功则执行步骤s8,如验证失败则结束;
12.步骤s8:区块链终端设备判断未完成标识是否存在,是则执行步骤s4,否则返回验证pin码成功响应给上位机,返回步骤s1;
13.步骤s3中判断当前的限定次数不等于阈值时和步骤s8中判断未完成标识存在时还包括:更新限定次数;交互取消之后还包括:更新限定次数。
14.本发明提供了一种区块链终端设备免密操作的装置,包括:
15.第一接收判断模块,用于当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令,则触发解析判断模块,如为验证pin码指令,则触发验证模块;
16.解析判断模块,用于解析签名指令得到交互输入数值和交互数据,根据交互输入数值和交互数据得到交互数值,判断交互数值是否小于限定额度,是则触发第一判断模块,否则保存未完成标识,返回需要验证pin码响应给上位机,触发第一接收判断模块;
17.第一判断模块,用于判断当前的限定次数是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,触发第一接收判断模块,否则触发第二判断模块;
18.第二判断模块,用于判断是否需要按键确认,是则触发第一显示接收模块,否则触发签名模块;
19.第一显示接收模块,用于显示交互数值,等待用户操作,若接收到用户确认操作则触发签名模块,若接收到用户取消操作则交互取消,结束;
20.签名模块,用于获取交互数据中的子密钥索引,获取预先存储在安全存储区中的主密钥,根据主密钥生成公钥,根据公钥和子密钥索引通过密钥派生算法派生出子密钥对,获取子密钥对中的子私钥,根据交互数据生成待签名数据,使用子私钥对待签名数据进行签名生成签名结果,获取子密钥对中的子公钥,根据子公钥和签名结果生成交互凭据,将交互凭据返回给上位机,触发第一接收判断模块;
21.验证模块,用于对pin码进行验证,如验证成功则触发第三判断模块,如验证失败则结束;
22.第三判断模块,用于判断未完成标识是否存在,是则触发第二判断模块,否则返回验证pin码成功响应给上位机,触发第一接收判断模块;
23.装置还包括第一更新次数模块和第二更新次数模块;
24.第一更新次数模块,用于当第一判断模块判断当前的限定次数不等于阈值时更新限定次数;还用于当第三判断模块判断未完成标识存在时更新限定次数;
25.第二更新次数模块,用于当第一显示接收模块接收到用户取消操作时更新限定次数。
26.本发明提供了一种区块链终端设备免密操作的方法,包括:
27.步骤q1:当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令则执行步骤q2,如为验证pin码指令则执行步骤q6;
28.步骤q2:区块链终端设备判断当前的限定次数是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,执行步骤q1,否则执行步骤q3;
29.步骤q3:区块链终端设备判断是否需要按键确认,是则执行步骤q4,否则执行步骤q5;
30.步骤q4:区块链终端设备显示签名指令中的授权信息,等待用户操作,若接收到用户确认操作则执行步骤q5,若接收到用户取消操作则交互取消,结束;
31.步骤q5:区块链终端设备根据签名指令中的子公钥查询密钥索引,根据查询到的密钥索引计算子私钥,使用子私钥对授权信息进行签名得到签名结果,根据签名结果生成交互凭据,返回交互凭据给上位机,返回步骤q1;
32.步骤q6:区块链终端设备对pin码进行验证,如验证成功则执行步骤q7,如验证失败则结束;
33.步骤q7:区块链终端设备判断未完成标识是否存在,是则执行步骤q3,否则返回验证pin码成功响应给上位机,执行步骤q1;
34.步骤q2中判断当前的限定次数不等于阈值时和步骤q7中判断未完成标识存在时还包括:更新限定次数;交互取消之后还包括:更新限定次数。
35.本发明提供了一种区块链终端设备免密操作的装置,包括:
36.第一接收判断模块,用于当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令则触发第一判断模块,如为验证pin码指令则触发验证模块;
37.第一判断模块,用于判断当前的限定次数的值是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,触发第一接收判断模块,否则触发第二判断模块;
38.第二判断模块,用于判断是否需要按键确认,是则触发第一显示接收模块,否则触发签名模块;
39.第一显示接收模块,用于显示签名指令中的授权信息,等待用户操作,若接收到用户确认操作则触发签名模块,若接收到用户取消操作则交互取消,结束;
40.签名模块,用于根据签名指令中的子公钥查询密钥索引,根据查询到的密钥索引计算子私钥,使用子私钥对授权信息进行签名得到签名结果,根据签名结果生成交互凭据,返回交互凭据给上位机,触发第一接收判断模块;
41.验证模块,用于对pin码进行验证,如验证成功则触发第三判断模块,如验证失败则结束;
42.第三判断模块,用于判断未完成标识是否存在,是则触发第二判断模块,否则返回验证pin码成功响应给上位机,触发第一接收判断模块;
43.装置还包括第一更新次数模块和第二更新次数模块;
44.第一更新次数模块,用于当第一判断模块判断当前的限定次数不等于阈值时更新限定次数;还用于当第三判断模块判断未完成标识存在时更新限定次数;
45.第二更新次数模块,用于当第一显示接收模块接收到用户取消操作时更新限定次数。
46.本发明与现有技术相比,具有以下优点:
47.本发明提供了一种区块链终端设备免密操作的方法及装置,在操作过程中可实现免密操作,节约用户时间,操作更便捷。
附图说明
48.图1为本发明实施例一提供的一种区块链终端设备免密操作的方法的流程图;
49.图2为本发明实施例四提供的一种区块链终端设备免密操作的方法的流程图;
50.图3为本发明实施例七提供的一种区块链终端设备免密操作的装置的方框图;
51.图4为本发明实施例八提供的一种区块链终端设备免密操作的装置的方框图。
具体实施方式
52.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.实施例一
54.本发明实施例一提供一种区块链终端设备免密操作的方法,如图1所示,包括:
55.步骤s1:当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令则执行步骤s2,如为验证pin码指令则执行步骤s7;
56.步骤s2:区块链终端设备解析签名指令得到交互输入数值和交互数据,根据交互输入数值和交互数据得到交互数值,判断交互数值是否小于限定额度,是则执行步骤s3,否则保存未完成标识,返回需要验证pin码响应给上位机,返回步骤s1;
57.步骤s3:区块链终端设备判断当前的限定次数是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,返回步骤s1,否则执行步骤s4;
58.步骤s4:区块链终端设备判断是否需要按键确认,是则执行步骤s5,否则执行步骤s6;
59.步骤s5:区块链终端设备显示交互数值,等待用户操作,若接收到用户确认操作则执行步骤s6,若接收到用户取消操作则交互取消,结束;
60.步骤s6:区块链终端设备获取交互数据中的子密钥索引,获取预先存储在安全存储区中的主密钥,根据主密钥生成公钥,根据公钥和子密钥索引通过密钥派生算法派生出子密钥对,获取子密钥对中的子私钥,根据交互数据生成待签名数据,使用子私钥对待签名数据进行签名生成签名结果,获取子密钥对中的子公钥,根据子公钥和签名结果生成交互凭据,将交互凭据返回给上位机,返回步骤s1;
61.步骤s7:区块链终端设备对pin码进行验证,如验证成功则执行步骤s8,如验证失败则结束;
62.步骤s8:区块链终端设备判断未完成标识是否存在,是则执行步骤s4,否则返回验证pin码成功响应给上位机,返回步骤s1;
63.步骤s3中判断当前的限定次数不等于阈值时和步骤s8中判断未完成标识存在时还包括:更新限定次数;交互取消之后还包括:更新限定次数。
64.可选的,在本实施例中,执行步骤s2之前还包括:区块链终端设备判断是否开启了免密操作,是则执行步骤s2,否则区块链终端设备返回需要验证pin码响应给上位机,返回步骤s1。
65.可选的,在本实施例中,区块链终端设备判断是否开启了免密操作具体为:
66.步骤a1:区块链终端设备从预置的免密操作信息中获取第一标志位;
67.步骤a2:区块链终端设备判断第一标志位是否为置位状态,是则未开启免密操作,否则开启了免密操作。
68.可选的,在本实施例中,如限定次数的初始值为预置的限定次数,步骤s3中判断当前的限定次数不等于阈值时和步骤s8中判断未完成标识存在时的更新限定次数具体为:用当前的限定次数减第五预设值的结果更新限定次数;交互取消之后的更新限定次数具体
为:用当前的限定次数加第五预设值的结果更新限定次数;
69.如阈值为预置的限定次数,步骤s3中判断当前的限定次数不等于阈值时和步骤s8中判断未完成标识存在时的更新限定次数具体为:用当前的限定次数加第五预设值的结果更新限定次数,交互取消之后的更新限定次数具体为:用当前的限定次数减第五预设值的结果更新限定次数。
70.可选的,在本实施例中,区块链终端设备对pin码进行验证具体为:从接收的验证pin码指令中获取pin码,将获取的pin码与区块链终端设备硬件主安全区中存储的pin码进行匹配,如匹配成功则验证成功,如匹配失败则验证失败。
71.可选的,在本实施例中,根据交互输入数值和交互数据得到交互数值具体包括:
72.步骤b1:区块链终端设备获取交互数据中的输入交互个数,依次根据输入交互个数获取相应的输入交互数据;
73.步骤b2:区块链终端设备获取交互数据中的输出交互个数,依次根据输出交互个数获取相应的输出交互数据;
74.步骤b3:区块链终端设备根据预设算法依次对输出交互数据中的输出交互公钥哈希值进行计算得到输出交互地址数据;
75.步骤b4:区块链终端设备将交互输入数值数据减输出交互数值得到交互费,并判断交互费是否合法,是则执行步骤b5,否则向上位机返回错误响应,结束;
76.步骤b5:区块链终端设备依次将计算得到的输出交互地址数据与签名指令中的非接收方地址数据进行比对,查询到与非接收方地址数据一致的输出交互地址数据,用交互输入数值数据减查询到的输出交互地址数据对应的输出交互数值得到交互数值。
77.可选的,在本实施例中,步骤b4中判断交互费是否合法具体包括:
78.步骤b4

1:区块链终端设备判断交互费是否大于第七预设值,是则执行步骤b4

2,否则判定为不合法;
79.步骤b4

2:区块链终端设备判断交互费是否小于交互输入数值数据的三分之一,是则执行步骤b5,否则判定为不合法。
80.可选的,在本实施例中,步骤s1还包括:当判断指令类型为加载上一次限定次数指令时,执行步骤m;
81.步骤m:区块链终端设备根据加载上一次限定次数指令对限定次数进行设置,返回设置成功响应给上位机,返回步骤s1。
82.可选的,在本实施例中,步骤s4具体包括:
83.区块链终端设备从预置的免密操作信息中获取第二标志位,判断第二标志位是否为置位状态,是则需要按键确认,否则不需要按键确认。
84.实施例二
85.本发明实施例二提供一种区块链终端设备免密操作的方法,包括:
86.步骤101:当区块链终端设备接收到上位机发送的签名指令时,判断是否需要用户输入pin码验证,是则执行步骤102,否则执行步骤103;
87.具体的,签名指令为:
88.3f2323000f0000010f00000003abcada606d2f3434272f30272f30272f302f306d2f3434272f30272f30272f302f316d2f3434272f30272f30272f302f320100000003c9f3b07ebf
ca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab700000000ffffffffc9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab701000000ffffffffc98620a6c40fc7b3a506ad79af339541762facd1dd80ff0881d773fb72b230da01000000ffffffff0200bd0105000000001976a914634228c26cf40a02a05db93f2f98b768a8e0e61b88acc096c7a6030000001976a9147514080ab2fcac0764de3a77d10cb790c71c74c288ac000000001a3q9pdtr4h8wpvyb8svpinppt8znbhy8h;
89.其中:3f2323为指令头,000f为指令id,0000010f指令长度,以十六进制表示,271字节;
90.以下为输入交互数据:
91.00000003abcada60为交互输入数值,6d2f3434272f30272f30272f302f30为子密钥索引,6d2f3434272f30272f30272f302f31为子密钥索引,6d2f3434272f30272f30272f302f32为子密钥索引,01000000版本号;03输入交互数量3个;
92.c9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab7该输入交互在其上一次输出交互中的哈希值;00000000该输入交互在其上一次输出交互中的序号;ffffffff附加指令字节;
93.c9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab7该输入交互在其上一次输出交互中的哈希值;01000000该输入交互在其上一次输出交互中的序号;ffffffff附加指令字节;
94.c98620a6c40fc7b3a506ad79af339541762facd1dd80ff0881d773fb72b230da该输入交互在其上一次输出交互中的哈希值;01000000该输入交互在其上一次输出交互中的序号;ffffffff附加指令字节;
95.以下为输出交互数据:
96.02输出交互数量2个;00bd010500000000输出交互数值;19输出公钥总字节数:25字节76a9附加指令字符;14该输出交互公钥哈希值长度;634228c26cf40a02a05db93f2f98b768a8e0e61b输出交互公钥哈希值;88ac附加指令字符;c096c7a603000000输出交互数值;19输出公钥总字节数:25字节;76a9附加指令字符;14该输出交互公钥哈希值长度;7514080ab2fcac0764de3a77d10cb790c71c74c2输出交互公钥哈希值;88ac附加指令字符;00000000交互锁定时间字符;
97.1a3q9pdtr4h8wpvyb8svpinppt8znbhy8h为非接收方地址;
98.具体的,步骤101中判断是否需要用户输入pin码验证具体为:
99.步骤a1:区块链终端设备从预置的免密操作信息中获取第一标志位;
100.步骤a2:区块链终端设备判断第一标志位是否为置位状态,是则执行步骤102,否则执行步骤103;
101.步骤102:区块链终端设备返回需要验证pin码响应给上位机,当接收到上位机发送的验证pin码指令时判断pin码重试次数是否等于第一预设值,是则区块链终端设备锁死,结束;否则对pin码进行验证,验证成功则执行步骤109,验证失败则将pin码重试次数减第八预设值的结果更新pin码重试次数,返回步骤102;
102.具体的,第一预设值为0;第八预设值为1;
103.具体的,对pin码进行验证具体为:从接收的验证pin码指令中获取pin码,与区块
链终端设备硬件主安全区中存储的pin码进行匹配,匹配成功则验证成功,匹配失败则验证失败;
104.步骤103:区块链终端设备判断限定额度是否等于第二预设值,是则执行步骤104,否则执行步骤107;
105.可选的,在本实施例中,步骤103之前还包括:区块链终端设备从预置的免密操作信息中获取限定额度;
106.具体的,第二预设值为0xffffffffffffffff;
107.步骤104:区块链终端设备判断限定次数是否等于第三预设值,是则执行步骤109,否则执行步骤105;
108.具体的,第三预设值为0xffffffff;
109.可选的,在本实施例中,步骤104之前还包括:区块链终端设备从预置的免密操作信息中获取限定次数;
110.步骤105:区块链终端设备判断当前的限定次数是否等于第四预设值,是则执行步骤106,否则更新限定次数,执行步骤108;
111.可选的,如限定次数的初始值为预置的限定次数时,第四预设值为0,更新限定次数为将当前的限定次数减第五预设值的结果更新限定次数;
112.可选的,如限定次数的初始值为0时,第四预设值为预置的限定次数,更新限定次数为将当前的限定次数加第五预设值的结果更新限定次数;
113.具体的,第五预设值为1;
114.步骤106:区块链终端设备返回限定次数到达阈值和需要验证pin码响应给上位机,当接收到上位机发送的验证pin码指令时判断pin码重试次数是否等于第一预设值,是则区块链终端设备锁死,结束;否则对pin码进行验证,验证成功则执行步骤108,验证失败则将pin码重试次数减第八预设值的结果更新pin码重试次数,返回步骤106;
115.可选的,在本实施例中,区块链终端设备返回限定次数到达阈值和需要验证pin码响应给上位机之后还包括:提示用户是否加载上一次限定次数方法,是则上位机发送加载上一次限定次数指令给区块链终端设备,区块链终端设备根据加载上一次限定次数指令对限定次数进行设置,返回设置成功响应给上位机;
116.可选的,在本实施例中,步骤106中还包括:接收到上位机发送的加载上一次限定次数指令;
117.具体的,上位机发送的验证pin码指令为3f23230013000000060a 0435333139;
118.具体的,对pin码进行验证具体为:从接收的验证pin码指令中获取pin码,与区块链终端设备硬件主安全区中存储的pin码进行匹配,匹配成功则验证成功,匹配失败则验证失败;
119.步骤107:区块链终端设备解析签名指令得到交互输入数值和交互数据,根据交互输入数值和交互数据得到交互数值,判断交互数值是否小于限定额度,是则执行步骤105,否则执行步骤102;
120.具体的,交互数据包括:交互版本号、输入交互个数、输入交互数据、输出交互个数、输出交互数据、交互锁定时间;
121.可选的,在本实施例中,步骤107中根据交互输入数值和交互数据得到交互数值具
体包括:
122.步骤b1:区块链终端设备获取交互数据中的输入交互个数,依次根据输入交互个数获取相应的输入交互数据;
123.具体的,输入交互数据包括:输入交互在其上一输出交互中的哈希值、输入交互在其上一输出交互中的序号和子密钥索引;
124.具体的,输入交互数据为:
[0125][0126]
步骤b2:区块链终端设备获取交互数据中的输出交互个数,依次根据输出交互个数获取相应的输出交互数据;
[0127]
具体的,输出交互数据包括:输出交互数值、输出交互序号和输出交互公钥哈希值;
[0128]
具体的,输出交互数据为:
[0129][0130]
步骤b3:区块链终端设备根据预设算法依次对输出交互数据中的输出交互公钥哈希值进行计算得到输出交互地址数据;
[0131][0132]
步骤b4:区块链终端设备将交互输入数值数据减输出交互数值得到交互费,并判断交互费是否合法,是则执行步骤b5,否则向上位机返回错误响应,结束;
[0133]
可选的,在本实施例中,判断交互费是否合法具体包括:
[0134]
步骤b4

1:区块链终端设备判断交互费是否大于第七预设值,是则执行步骤b4

2,否则向上位机返回错误响应,结束;
[0135]
具体的,第七预设值为0;
[0136]
步骤b4

2:区块链终端设备判断交互费是否小于交互输入数值数据的三分之一,是则执行步骤b5,否则向上位机返回错误响应,结束;
[0137]
步骤b5:区块链终端设备依次将计算得到的输出交互地址数据与签名指令中的非接收方地址数据进行比对,查询到与非接收方地址数据一致的输出交互地址数据,用将交互输入数值数据减查询到的输出交互地址数据对应的输出交互数值得到交互数值;
[0138]
步骤b6:区块链终端设备判断交互数值是否小于限定额度,是则执行步骤105,否
则执行步骤102;
[0139]
步骤108:区块链终端设备判断是否需要按键确认,是则执行步骤109,否则执行步骤110;
[0140]
可选的,在本实施例中,步骤108具体为:
[0141]
步骤108

1:区块链终端设备从预置的免密操作信息中获取第二标志位;
[0142]
步骤108

2:区块链终端设备判断第二标志位是否为置位状态,是则执行步骤109,否则执行步骤110;
[0143]
步骤109:区块链终端设备屏幕上显示交互数值,等待用户确认,当接收到用户触发时判断用户按键类型,如为确认键则执行步骤110,如为取消键则交互取消,更新限定次数,结束;
[0144]
可选的,更新限定次数为将当前的限定次数加第五预设值的结果更新限定次数;
[0145]
可选的,更新限定次数为将当前的限定次数减第五预设值的结果更新限定次数;
[0146]
步骤110:区块链终端设备对待签名数据进行签名得到签名结果,根据签名结果生成交互凭据,将交互凭据返回给上位机;
[0147]
可选的,在本实施例中,步骤110之后还包括清除限定次数;
[0148]
可选的,在本实施例中步骤110中区块链终端设备对待签名数据进行签名得到签名结果,根据签名结果生成交互凭据,将交互凭据返回给上位机具体为:
[0149]
步骤110

1:区块链终端设备获取交互数据中的子密钥索引;
[0150]
步骤110

2:区块链终端设备获取预先存储在安全存储区的主密钥,根据主密钥生成公钥;
[0151]
具体的,区块链终端设备将主密钥与椭圆曲线基点进行ecc点乘运算得到公钥;
[0152]
步骤110

3:区块链终端设备根据公钥和子密钥索引通过密钥派生算法派生出子密钥对,获取子密钥对中的子私钥;
[0153]
具体的,将公钥和当前子密钥索引顺序拼接,使用父链码作为哈希密钥,根据预设算法计算拼接数据的哈希值,根据哈希值截取得到子链码,对截取剩余数据做ecc加法模运算,若运算结果不为预设值,则将运算结果作为子私钥,对子私钥做ecc点乘运算,得到子公钥;
[0154]
[0155][0156]
步骤110

4:区块链终端设备根据签名指令中的输入交互数据和输出交互数据生成待签名数据,使用子私钥对待签名数据进行签名,生成签名结果;
[0157][0158]
具体的,待签名数据包括:所有输入交互在其上一输出交互中的哈希值和所有输入交互在其上一输出交互中的序号的顺序拼接值、该输入交互对应子公钥哈希值、所有输出交互数值和所有输出交互公钥哈希值的顺序拼接值;
[0159]
具体的,子私钥通过椭圆曲线数字签名算法对待签名数据进行签名,例如:本实施例中256比特的子私钥“6c5544797a91115dc3330ebd003851d239a706ff2aa2ab70039c5510ddf06420”通过椭圆曲线数字签名算法对待签名数据c9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab7000000001976a9149bcc25cea896e5ebf5e38850a2038e215f2393cb88acffffffffc9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab701000000ffffffffc98620a6c40fc7b3a506ad79af339541762facd1dd80ff0881d773fb72b230da01000000ffffffff00bd0105000000001976a914634228c26cf40a02a05db93f2f98b768a8e0e61b88acc096c7a6030000001976a9147514080ab2fcac0764de3a77d10cb790c71c74c288ac进行签名得到签名结果,
[0160]
生成的签名结果为
[0161]“048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbe”;
[0162]
步骤110

5:区块链终端设备获取子密钥对中的子公钥,根据子公钥和签名结果生成交互凭据;
[0163]
具体的,区块链终端设备根据子公钥长度、子公钥、签名结果长度和签名结果计算得到交互凭据长度;并将交互凭据长度、子公钥长度、子公钥、签名结果长度和签名结果顺序拼接生成交互凭据;将所有交互凭据顺序拼接,得到完整交互凭据;
[0164]
例如,本实施例中第一次签名得到的交互凭据具体为:
[0165]“0x
[0166]
8a473044022055bac1856ecbc377dd5e869b1a84ed1d5228c987b098c095030c12431a4d5249022055523130a9d0af5fc27828aba43b464ecb1991172ba2a509b5fbd6cac97ff3af0141048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbe”[0167]
其中,8a:表示交互凭据长度为1104比特,8a=138字节=1104比特位,“8a”这16比特位数据不包含在总交互凭据长度内。
[0168]
47:表示子公钥长度为568比特,47=71字节=568比特位
[0169]
子公钥为:0x
[0170]
3044022055bac1856ecbc377dd5e869b1a84ed1d5228c987b098c095030c12431a4d5249022062723130a9d0af5fc27828aba43b464ecb1991172ba2a509b5fbd6cac97ff3af01,共568比特位
[0171]
41:表示签名结果长度,41=65字节=520比特位
[0172]
签名结果为:0x
[0173]
048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbe,共520比特位;
[0174]
本实施例需要签名3次,共生成3条交互凭据,拼接后的交互凭据为:
[0175]
8a473044022055bac1856ecbc377dd5e869b1a84ed1d5228c987b098c095030c12431a4d5249022055523130a9d0af5fc27828aba43b464ecb1991172ba2a509b5fbd6cac97ff3af0141048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbe8a47304402206b993231adec55e6085e75f7dc5ca6c19e42e744cd60abaff957b1c352b3ef9a022022a22fec37dfa2c646c78d9a0753d56cb4393e8d0b22dc580ef1aa6cccef208d0141042ff65bd6b3ef04253225405ccc3ab2dd926ff2ee48aac210819698440f35d785ec3cec92a51330eb0c76cf49e9e474fb9159ab41653a9c1725c031449d31026a8b483045022040a5d957e087ed61e80f1110bcaf4901b5317c257711a6cbc54d6b98b6a8563f02210081e3697031fe82774b8f44dd3660901e61ac5a99bff2d0efc83ad261da5b4f1d014104a7d1a57e650613d3414ebd59e3192229dc09d3613e547bdd1f83435cc4ca0a11c679d96456cae75b1f5563728ec7da1c1f42606db15bf554dbe8a829f3a8fe2;
[0176]
步骤110

6:区块链终端设备将交互凭据返回给上位机。
[0177]
实施例三
[0178]
本发明实施例三提供一种区块链终端设备免密操作的设置方法,包括:
[0179]
步骤201:上位机发送查询免密操作信息请求给区块链终端设备;
[0180]
步骤202:区块链终端设备接收到上位机发送的查询免密操作信息请求时,获取存储区中免密操作信息,返回免密操作信息给上位机;
[0181]
具体的,免密操作信息包含第一标志位状态、第二标志位状态、限定额度和限定次数;其中第一标志位,用于判断是否需要用户输入pin码验证,当第一标志位为1时需要用户输入pin码验证,当第一标志位为0时不需要用户输入pin码验证;第二标志位,用于判断是否使用按键确认,当第二标志位为1时使用按键确认,当第二标志位为0时不使用按键确认;
[0182]
步骤203:上位机接收到区块链终端设备返回的免密操作信息时判断是否为第一预设数据,是则发送开启免密操作指令给区块链终端设备,执行步骤205,否则执行步骤204;
[0183]
具体的,第一预设数据为第一标志位=1,第二标志位=1,限定额度=0,限定次数=0;
[0184]
步骤204:上位机弹框提示用户已开启小额免密操作和具体的免密操作方式,判断用户是否更改免密操作方式,是则发送开启免密操作指令给区块链终端设备,执行步骤205,否则结束;
[0185]
步骤205:区块链终端设备返回需要验证pin码响应给上位机;
[0186]
步骤206:上位机发送验证pin码指令给区块链终端设备;
[0187]
具体的,上位机发送验证pin码指令为3f 23 23 00 13 00 00 00 06 0a 04 35 33 31 39;
[0188]
步骤207:区块链终端设备判断pin码可重试次数是否为第六预设值,是则返回区块链终端设备锁死给上位机,否则区块链终端设备对pin码进行验证,验证成功则返回pin验证成功响应给上位机,验证失败则将pin码重试次数减第八预设值的结果更新pin码重试次数,执行步骤205;
[0189]
具体的,第六预设值为0;第八预设值为1;
[0190]
步骤208:上位机根据用户设置对小额免密操作进行设置,将免密操作信息组成设置免密操作指令,发送设置免密操作指令给区块链终端设备;
[0191]
具体的,设置免密操作指令为3f 23 23 00 19 00 xx 60 80 68 81 70 80 0000 0000 001e 8480 78 80 00 00 00 0a;其中6080表示不需要用户输入pin码验证;6881表示开启屏幕显示和按键确认;70 80 00 00 00 00 00 1e 84 80表示限额2,000,000聪(0.02btc);78 80 00 00 00 0a表示限定次数10次;
[0192]
具体的,步骤208具体为:
[0193]
步骤208

1:判断是否触发用户输入pin码验证,是则将第一标志位置位,执行步骤208

2,否则将第一标志位重置,执行步骤208

4;
[0194]
具体的,当触发用户输入pin码验证时将第一标志位设为1,当触发用户不用输入pin码验证时将第一标志位设为0;
[0195]
步骤208

2:判断用户是否触发使用按键确认,是则弹框显示用户操作方式为不免密但需要按键确认,将第二标志位置位,执行步骤208

12,否则弹框显示用户操作方式为不免密且不需要按键确认,将第二标志位重置,执行步骤208

12;
[0196]
具体的,当用户触发使用按键确认时将第二标志位设为1,当用户触发不使用按键确认时将第二标志位设为0;
[0197]
步骤208

3:判断用户是否选择限定额度,是则执行步骤208

4,否则执行步骤208

8;
[0198]
步骤208

4:判断用户是否选择限定次数,是则提示用户输入免密限定额度和限定次数,执行步骤208

5,否则执行步骤208

6;
[0199]
步骤208

5:判断用户是否触发使用按键确认,是则显示用户免密操作方式为免密限定额度限定次数且需要按键确认,将第二标志位置位,执行步骤208

12,否则显示用户免密操作方式为免密限定额度限定次数但不需要按键确认,将第二标志位重置,执行步骤208

12;
[0200]
具体的,当用户触发使用按键确认,将第二标志位设为1,当用户触发不使用按键确认,将第二标志位设为0;
[0201]
步骤208

6:提示并等待接收用户输入免密限定额度,执行步骤208

7;
[0202]
具体的,设置免密限定额度,以比特币最小单位“聪”为基本单位,100,000,000(1亿)聪=1个比特币(1btc);
[0203]
例如2,000,000聪(0.02btc),以8字节16进制数字表示为0x00000000001e8480;
[0204]
步骤208

7:判断用户是否触发使用按键确认,是则显示用户免密操作方式为免密限定额度且需要按键确认,将第二标志位置位,执行步骤208

12,否则显示用户免密操作方式为免密限定额度但不需要按键确认,将第二标志位重置,执行步骤208

12;
[0205]
具体的,当用户触发使用按键确认时将第二标志位设为1,当用户触发不使用按键确认时将第二标志位设为0;
[0206]
步骤208

8:判断是否限定次数,是则执行步骤208

9,否则执行步骤208

11;
[0207]
步骤208

9:提示并等待接收用户输入免密限定次数,执行步骤208

10;
[0208]
步骤208

10:判断用户是否触发需要按键确认,是则显示用户免密操作方式为免密限定次数且需要按键确认,将第二标志位置位,执行步骤208

12,否则显示用户免密操作方式为免密限定次数但不需要按键确认,将第二标志位重置,执行步骤208

12;
[0209]
具体的,当用户触发需要按键确认则将第二标志位设为1,当用户触发不需要按键确认则将第二标志位设为0;
[0210]
步骤208

11:提示用户在免密操作时不限定次数且不限定额度交互风险大,弹框提示用户是否开启需要用户输入pin码验证,当接收到用户开启需要用户输入pin码验证则显示未开启免密支付,交互时需要用户输入pin,且需要按键确认,执行步骤208

12,当接收到用户不开启需要用户输入pin码验证则显示开启免密支付且不限定额度不限定次数,交互时不需要用户输入pin但需要按键确认,执行步骤208

12;
[0211]
步骤208

12:上位机根据第一标志位、第二标志位、限定额度和限定次数组成免密操作信息,根据免密操作信息组成免密操作指令,发送设置免密操作指令给区块链终端设备;
[0212]
步骤209:区块链终端设备接收上位机发送的设置免密操作指令,获取免密操作信息并显示在屏幕上等待用户确认;
[0213]
步骤210:当区块链终端设备接收到用户的触发时,判断按键类型,如为确认键则执行步骤211,如为取消键则返回错误响应给上位机;
[0214]
步骤211:区块链终端设备重置免密操作信息,根据接收的设置免密操作指令中的免密操作信息设置区块链终端设备中的免密操作信息;
[0215]
步骤212:区块链终端设备判断免密操作信息是否为第二预设数据,是则设置失败,将免密操作信息重置为第一预设数据,结束,否则返回设置成功响应给上位机,执行步骤213;
[0216]
具体的,第二预设数据为第一标志位=0,第二标志位=0,限定额度=0xffffffffffffffff;限定次数=0xffffffff;
[0217]
步骤213:上位机提示用户设置成功,结束。
[0218]
实施例四
[0219]
本发明实施例四提供一种区块链终端设备免密操作的方法,如图2所示,包括:
[0220]
步骤q1:当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令则执行步骤q2,如为验证pin码指令则执行步骤q6;
[0221]
步骤q2:区块链终端设备判断当前的限定次数是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,执行步骤q1,否则执行步骤q3;
[0222]
步骤q3:区块链终端设备判断是否需要按键确认,是则执行步骤q4,否则执行步骤
q5;
[0223]
步骤q4:区块链终端设备显示签名指令中的授权信息,等待用户操作,若接收到用户确认操作则执行步骤q5,若接收到用户取消操作则交互取消,结束;
[0224]
步骤q5:区块链终端设备根据签名指令中的子公钥查询密钥索引,根据查询到的密钥索引计算子私钥,使用子私钥对授权信息进行签名得到签名结果,根据签名结果生成交互凭据,返回交互凭据给上位机,返回步骤q1;
[0225]
步骤q6:区块链终端设备对pin码进行验证,如验证成功则执行步骤q7,如验证失败则结束;
[0226]
步骤q7:区块链终端设备判断未完成标识是否存在,是则执行步骤q3,否则返回验证pin码成功响应给上位机,执行步骤q1;
[0227]
步骤q2中判断当前的限定次数不等于阈值时和步骤q7中判断未完成标识存在时还包括:更新限定次数;交互取消之后还包括:更新限定次数。
[0228]
可选的,在本实施例中,执行步骤q2之前还包括:区块链终端设备判断是否开启了免密操作,是则执行步骤q2,否则返回需要验证pin码响应给上位机,执行步骤q1。
[0229]
可选的,在本实施例中,区块链终端设备判断是否开启了免密操作具体为:
[0230]
步骤a1:区块链终端设备从预置的免密操作信息中获取第一标志位;
[0231]
步骤a2:区块链终端设备判断第一标志位是否为置位状态,是则未开启免密操作,否则开启了免密操作。
[0232]
可选的,在本实施例中,如限定次数的初始值为预置的限定次数,步骤q2中判断当前的限定次数不等于阈值时和步骤q7中判断未完成标识存在时的更新限定次数具体为:用当前的限定次数减第五预设值的结果更新限定次数;交互取消之后的更新限定次数具体为:用当前的限定次数加第五预设值的结果更新限定次数;
[0233]
如阈值为预置的限定次数,步骤q2中判断当前的限定次数不等于阈值时和步骤q7中判断未完成标识存在时的更新限定次数具体为:用当前的限定次数加第五预设值的结果更新限定次数,交互取消之后的更新限定次数具体为:用当前的限定次数减第五预设值的结果更新限定次数。
[0234]
可选的,在本实施例中,区块链终端设备对pin码进行验证具体为:从接收的验证pin码指令中获取pin码,将获取的pin码与区块链终端设备硬件主安全区中存储的pin码进行匹配,如匹配成功则验证成功,如匹配失败则验证失败。
[0235]
可选的,在本实施例中,步骤q1还包括:当判断指令类型为加载上一次限定次数指令时,执行步骤n;
[0236]
步骤n:区块链终端设备根据加载上一次免密次数指令对限定次数进行设置,返回设置成功响应给上位机,返回步骤q1。
[0237]
可选的,在本实施例中,步骤q3具体包括:
[0238]
区块链终端设备从预置的免密操作信息中获取第二标志位,判断第二标志位是否为置位状态,是则需要按键确认,否则不需要按键确认。
[0239]
可选的,在本实施例中,区块链终端设备根据子公钥查询密钥索引之前还包括:区块链终端设备判断子公钥是否有效,是则根据子公钥查询密钥索引,否则报错。
[0240]
实施例五
[0241]
本发明实施例五提供一种区块链终端设备免密操作的方法,包括:
[0242]
步骤301:当区块链终端设备接收到上位机发送的签名指令时,判断是否需要用户输入pin码验证,是则执行步骤302,否则执行步骤303;
[0243]
具体的,签名指令为3f 23 23 00
ꢀꢀ
26 00 00 00
ꢀꢀ
27 08 ac 80
ꢀꢀ
80 80 08 08
ꢀꢀ
80 80 80 80
ꢀꢀ
08 08 80 80
ꢀꢀ
80 80 08 08
ꢀꢀ
00 08 00 12
ꢀꢀ
04 61 68 6f
ꢀꢀ
79 1a 07 42
ꢀꢀ
69 74 63 6f
ꢀꢀ
69 6e 20 00;其中3f 23 23为指令头;00 26为指令id,表示该指令为签名指令;00 00 00 27代表指令长度为39字节,其中08 ac 80
ꢀꢀ
80 80 08 08
ꢀꢀ
80 80 80 80
ꢀꢀ
08 08 80 80
ꢀꢀ
80 80 08 08
ꢀꢀ
00 08 00 12
ꢀꢀ
04 61 68 6f
ꢀꢀ
79 1a 07 42
ꢀꢀ
69 74 63 6f
ꢀꢀ
69 6e 20 00为授权信息;
[0244]
具体的,步骤301中判断是否需要用户输入pin码验证具体为:
[0245]
步骤a1:区块链终端设备从预置的免密操作信息中获取第一标志位;
[0246]
步骤a2:区块链终端设备判断第一标志位是否为置位状态,是则执行步骤302,否则执行步骤303;
[0247]
步骤302:区块链终端设备返回需要验证pin码响应给上位机,当接收到上位机发送的验证pin码指令时判断pin码重试次数是否等于第一预设值,是则区块链终端设备锁死,结束;否则对pin码进行验证,验证成功则执行步骤306,验证失败则将pin码重试次数减第八预设值的结果更新pin码重试次数,返回步骤302;
[0248]
具体的,第一预设值为0;第八预设值为1;
[0249]
步骤303:区块链终端设备判断限定次数是否等于第三预设值,是则执行步骤306,否则执行步骤304;
[0250]
具体的,第三预设值为0xffffffff;
[0251]
可选的,在本实施例中,步骤303之前还包括:区块链终端设备从预置的免密操作信息中获取限定次数;
[0252]
步骤304:区块链终端设备判断当前的限定次数是否等于第四预设值,是则执行步骤305,否则更新限定次数,执行步骤306;
[0253]
可选的,如限定次数的初始值为预置的限定次数,第四预设值为0,更新限定次数为将当前的限定次数减第五预设值的结果更新限定次数;
[0254]
可选的,如限定次数的初始值为0时,第四预设值为预置的限定次数,更新限定次数为将当前的限定次数加第五预设值的结果更新限定次数;
[0255]
具体的,第五预设值为1;
[0256]
步骤305:区块链终端设备返回限定次数到达阈值和需要验证pin码响应给上位机,当接收到上位机发送的验证pin码指令时判断pin码重试次数是否等于第一预设值,是则区块链终端设备锁死,结束;否则对pin码进行验证,验证成功则执行步骤306,验证失败则将pin码重试次数减第八预设值的结果更新pin码重试次数,返回步骤305;
[0257]
可选的,在本实施例中,区块链终端设备返回限定次数到达阈值和需要验证pin码响应给上位机之后还包括:提示用户是否加载上一次限定次数方法,是则上位机发送加载上一次限定次数指令给区块链终端设备,区块链终端设备根据加载上一次限定次数指令对限定次数进行设置,返回设置成功响应给上位机;
[0258]
步骤306:区块链终端设备判断是否需要按键确认,是则执行步骤307,否则执行步
骤308;
[0259]
可选的,在本实施例中,步骤306具体为:
[0260]
步骤306

1:区块链终端设备从预置的免密操作信息中获取第二标志位;
[0261]
步骤306

2:区块链终端设备判断第二标志位是否为置位状态,是则执行步骤307,否则执行步骤308;
[0262]
步骤307:区块链终端设备屏幕上显示签名指令中的授权信息,等待用户确认,当接收到用户触发时判断用户按键类型,如为确认键则执行步骤308,如为取消键则交互取消,更新限定次数,结束;
[0263]
可选的,更新限定次数为将当前的限定次数加第五预设值的结果更新限定次数;
[0264]
可选的,更新限定次数为将当前的限定次数减第五预设值的结果更新限定次数;
[0265]
步骤308:区块链终端设备对签名指令中的授权信息进行签名得到签名结果,根据签名结果生成交互凭据,将交互凭据返回给上位机;
[0266]
可选的,在本实施例中,步骤308之后还包括:清除限定次数;
[0267]
可选的,在本实施例中,步骤308中区块链终端设备对签名指令中的授权信息进行签名得到签名结果,根据签名结果生成交互凭据,将交互凭据返回给上位机具体为:
[0268]
步骤308

1:区块链终端设备从签名指令中获取授权信息和子公钥;
[0269]
具体的,授权信息为01 00 00
ꢀꢀ
00 01 c9 f3
ꢀꢀ
b0 7e bf ca 68 fd 1a 63
ꢀꢀ
39 d0 80 8f
ꢀꢀ
bb 01 3c 90
ꢀꢀ
c6 09 5f c9
ꢀꢀ
39 01 ea 77
ꢀꢀ
41 01 03 48
ꢀꢀ
9a b7 00 00
ꢀꢀ
00 00 ff ff ff ff 01 00
ꢀꢀ
bd 01 05 00
ꢀꢀ
00 00 00 19 76 a9 14 63
ꢀꢀ
42 28 c2 6c
ꢀꢀ
f4 0a 02 a0
ꢀꢀ
5d b9 3f 2f
ꢀꢀ
98 b7 68 a8
ꢀꢀ
e0 e6 1b 88
ꢀꢀ
ac 00 00 00 00;
[0270]
具体的,子公钥为1hzwkjkeaozftsajxdw6akkxp45agdiezn;
[0271]
步骤308

2:区块链终端设备判断子公钥是否有效,是则执行步骤308

3,否则报错;
[0272]
步骤308

3:区块链终端设备根据子公钥从安全存储区中查询对应的密钥索引;
[0273]
具体的,密钥索引为m/44'/0'/0'/0/0;
[0274]
步骤308

4:区块链终端设备根据查询到的密钥索引计算子私钥;
[0275]
具体的,子私钥为
[0276]
0x6c5544797a91115dc3330ebd003851d239a706ff2aa2ab70039c5510ddf06420;
[0277]
步骤308

5:区块链终端设备使用子私钥对授权信息进行签名得到签名结果;
[0278]
具体的,签名结果为jknxqiv/1ogudi3g sagjmkx3 yfc0g+y02uxnvdf895v+tobwvuo2dv2g ac6/uxnu tdnnxrli fjfbdna5 vhymuhq=;
[0279]
步骤308

6:区块链终端设备根据签名结果生成交互凭据,返回交互凭据给上位机;
[0280]
具体的,区块链终端设备将交互凭据长度、签名结果长度和签名结果顺序拼接生成交互凭据;
[0281]
具体的,交互凭据为3f 23 23 0028 00 00 0067 0a 22 3133 79 36 5453 41 44 6879 42 63 5761 79 6f 4a42 6b 56 7063 65 6e 4e45 4a 4a 4e69 77 64 5347 12 41 1f1b 92 af 05f2 cc 12 964d 75 0a bab5 d2 f1 1e1b cd ca96 b7 d7 88aa a5 3a 545d 16 f2 065c 66 9e e0c6 db 01 c8c0 79 84 1baa e1 b1 6b
c9 6b 85 f205 83 0b 4fc7 ff 2e 6331 fc 61 e5e5。
[0282]
实施例六
[0283]
本发明实施例六提供一种区块链终端设备免密操作的设置方法,包括:
[0284]
步骤401:上位机发送查询免密操作信息请求给区块链终端设备;
[0285]
步骤402:区块链终端设备接收到上位机发送的查询免密操作信息请求时,获取存储区中免密操作信息,返回免密操作信息给上位机;
[0286]
具体的,免密操作信息包含第一标志位状态、第二标志位状态和限定次数;其中第一标志位,用于判断是否需要用户输入pin码验证,当第一标志位为1时需要用户输入pin码验证,当第一标志位为0时不需要用户输入pin码验证;第二标志位,用于判断是否使用按键确认,当第二标志位为1时使用按键确认,当第二标志位为0时不使用按键确认;
[0287]
步骤403:上位机接收到区块链终端设备返回的免密操作信息时判断是否为第一预设数据,是则发送开启免密操作指令给区块链终端设备,执行步骤405,否则执行步骤404;
[0288]
具体的,第一预设数据为第一标志位=1,第二标志位=1,限定次数=0;
[0289]
步骤404:上位机弹框提示用户已开启小额免密操作和具体的免密操作方式,判断用户是否更改免密操作方式,是则发送开启免密操作指令给区块链终端设备,执行步骤405,否则结束;
[0290]
步骤405:区块链终端设备返回需要验证pin码响应给上位机;
[0291]
步骤406:上位机发送验证pin码指令给区块链终端设备;
[0292]
具体的,上位机发送验证pin码指令为3f 23 23 00 13 00 00 00 06 0a 04 35 33 31 39;
[0293]
步骤407:区块链终端设备判断pin码可重试次数是否为第六预设值,是则返回区块链终端设备锁死给上位机,否则区块链终端设备对pin码进行验证,验证成功则返回pin验证成功响应给上位机,验证失败则将pin码重试次数减第八预设值的结果更新pin码重试次数,执行步骤405;
[0294]
具体的,第六预设值为0;第八预设值为1;
[0295]
步骤408:上位机根据用户设置免密操作进行设置,将免密操作信息组成设置免密操作指令,发送设置免密操作指令给区块链终端设备;
[0296]
具体的,设置免密操作指令为3f 23 23 00 19 00 xx 60 80 68 81 78 80 00 00 00 0a;其中6080表示不需要用户输入pin码验证;6881表示开启屏幕显示和按键确认;78 80 00 00 00 0a表示限定次数10次;
[0297]
具体的,步骤408具体为:
[0298]
步骤408

1:判断是否触发用户输入pin码验证,是则将第一标志位置位,执行步骤408

2,否则将第一标志位重置,执行步骤408

3;
[0299]
具体的,当触发用户输入pin码验证时将第一标志位设为1,当触发用户不用输入pin码验证时将第一标志位设为0;
[0300]
步骤408

2:判断用户是否触发使用按键确认,是则弹框显示用户操作方式为不免密但需要按键确认,将第二标志位置位,执行步骤408

6,否则弹框显示用户操作方式为不免密且不需要按键确认,将第二标志位重置,执行步骤408

6;
[0301]
具体的,当用户触发使用按键确认时将第二标志位设为1,当用户触发不使用按键确认时将第二标志位设为0;
[0302]
步骤408

3:判断用户是否选择限定次数,是则提示用户输入免密限定次数,执行步骤408

4,否则执行步骤408

5;
[0303]
步骤408

4:判断用户是否触发使用按键确认,是则显示用户免密操作方式为免密限定次数且需要按键确认,将第二标志位置位,执行步骤408

6,否则显示用户免密操作方式为免密限定次数但不需要按键确认,将第二标志位重置,执行步骤408

6;
[0304]
具体的,当用户触发使用按键确认,将第二标志位设为1,当用户触发不使用按键确认,将第二标志位设为0;
[0305]
步骤408

5:提示用户在免密操作时不限定次数交互风险大,弹框提示用户是否开启需要用户输入pin码验证,当接收到用户开启需要用户输入pin码验证则显示未开启免密支付,交互时需要用户输入pin,且需要按键确认,执行步骤408

6,当接收到用户不开启需要用户输入pin码验证则显示开启免密支付且不限定次数,交互时不需要用户输入pin但需要按键确认,执行步骤408

6;
[0306]
步骤408

6:上位机根据第一标志位、第二标志位和限定次数组成免密操作信息,根据免密操作信息组成免密操作指令,发送设置免密操作指令给区块链终端设备;
[0307]
步骤409:区块链终端设备接收上位机发送的设置免密操作指令,获取免密操作信息并显示在屏幕上等待用户确认;
[0308]
步骤410:当区块链终端设备接收到用户的触发时,判断按键类型,如为确认键则执行步骤411,如为取消键则返回错误响应给上位机;
[0309]
步骤411:区块链终端设备重置免密操作信息,根据接收的设置免密操作指令中的免密操作信息设置区块链终端设备中的免密操作信息;
[0310]
步骤412:区块链终端设备判断免密操作信息是否为第二预设数据,是则设置失败,将免密操作信息重置为第一预设数据,结束,否则返回设置成功响应给上位机,执行步骤413;
[0311]
具体的,第二预设数据为第一标志位=0,第二标志位=0,限定次数=0xffffffff;
[0312]
步骤413:上位机提示用户设置成功,结束。
[0313]
实施例七
[0314]
本发明实施例七提供一种区块链终端设备免密操作的装置,如图3所示,包括:
[0315]
第一接收判断模块11,用于当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令,则触发解析判断模块12,如为验证pin码指令,则触发验证模块17;
[0316]
解析判断模块12,用于解析签名指令得到交互输入数值和交互数据,根据交互输入数值和交互数据得到交互数值,判断交互数值是否小于限定额度,是则触发第一判断模块13,否则保存未完成标识,返回需要验证pin码响应给上位机,触发第一接收判断模块11;
[0317]
第一判断模块13,用于判断当前的限定次数是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,触发第一接收判断模块11,否则触发第二判断模块14;
[0318]
第二判断模块14,用于判断是否需要按键确认,是则触发第一显示接收模块,否则触发签名模块16;
[0319]
第一显示接收模块15,用于显示交互数值,等待用户操作,若接收到用户确认操作则触发签名模块16,若接收到用户取消操作则交互取消,结束;
[0320]
签名模块16,用于获取交互数据中的子密钥索引,获取预先存储在安全存储区中的主密钥,根据主密钥生成公钥,根据公钥和子密钥索引通过密钥派生算法派生出子密钥对,获取子密钥对中的子私钥,根据交互数据生成待签名数据,使用子私钥对待签名数据进行签名生成签名结果,获取子密钥对中的子公钥,根据子公钥和签名结果生成交互凭据,将交互凭据返回给上位机,触发第一接收判断模块11;
[0321]
验证模块17,用于对pin码进行验证,如验证成功则触发第三判断模块18,如验证失败则结束;
[0322]
第三判断模块18,用于判断未完成标识是否存在,是则触发第二判断模块14,否则返回验证pin码成功响应给上位机,触发第一接收判断模块11;
[0323]
装置还包括第一更新次数模块和第二更新次数模块;
[0324]
第一更新次数模块,用于当第一判断模块13判断当前的限定次数不等于阈值时更新限定次数;还用于当第三判断模块18判断未完成标识存在时更新限定次数;
[0325]
第二更新次数模块,用于当第一显示接收模块15接收到用户取消操作时更新限定次数。
[0326]
可选的,在本实施例中,还包括:第四判断模块,用于判断是否开启了免密操作,是则触发解析判断模块,否则返回需要验证pin码响应给上位机,触发第一接收判断模块。
[0327]
可选的,在本实施例中,第四判断模块具体包括:
[0328]
第一获取子模块,用于区块链终端设备从预置的免密操作信息中获取第一标志位;
[0329]
第一判断子模块,用于区块链终端设备判断第一标志位是否为置位状态,是则未开启免密操作,返回需要验证pin码响应给上位机,触发第一接收判断模块,否则开启了免密操作,触发解析判断模块。
[0330]
可选的,在本实施例中,如限定次数的初始值为预置的限定次数,第一更新次数模块,具体用于用当前的限定次数减第五预设值的结果更新限定次数;第二更新次数模块,具体用于用当前的限定次数加第五预设值的结果更新限定次数;
[0331]
如阈值为预置的限定次数,第一更新次数模块,用于用当前的限定次数加第五预设值的结果更新限定次数,第二更新次数模块,用于用当前的限定次数减第五预设值的结果更新限定次数。
[0332]
可选的,在本实施例中,验证模块17,具体用于从接收的验证pin码指令中获取pin码,将获取的pin码与区块链终端设备硬件主安全区中存储的pin码进行匹配,如匹配成功则验证成功,触发第三判断模块,如匹配失败则验证失败,结束。
[0333]
可选的,在本实施例中,解析判断模块12具体包括:
[0334]
第二获取子模块,用于获取交互数据中的输入交互个数,依次根据输入交互个数获取相应的输入交互数据;
[0335]
第三获取子模块,用于获取交互数据中的输出交互个数,依次根据输出交互个数
获取相应的输出交互数据;
[0336]
第一计算子模块,用于根据预设算法对输出交互数据中的输出交互公钥哈希值进行计算得到输出交互地址数据;
[0337]
第二判断子模块,用于将交互输入数值数据减输出交互数值得到交互费,并判断交互费是否合法,是则触发第二计算子模块,否则向上位机返回错误响应,结束;
[0338]
第二计算子模块,用于依次将计算得到的输出交互地址数据与签名指令中的非接收方地址数据进行比对,查询到与非接收方地址数据一致的输出交互地址数据,用交互输入数值数据减查询到的输出交互地址数据对应的输出交互数值得到交互数值。
[0339]
可选的,在本实施例中,第二判断子模块,具体包括:
[0340]
第一计算单元,用于将交互输入数值数据减输出交互数值得到交互费;
[0341]
第一判断单元,用于判断交互费是否大于第七预设值,是则触发第二判断单元,否则判定为不合法,向上位机返回错误响应,结束;
[0342]
第二判断单元,用于判断交互费是否小于交互输入数值数据的三分之一,是则触发第二计算子模块,否则判定为不合法,向上位机返回错误响应,结束。
[0343]
可选的,在本实施例中,还包括设置模块;
[0344]
设置模块,用于当第一接收判断模块11判断指令的类型为加载上一次限定次数指令时,根据加载上一次限定次数指令对限定次数进行设置,返回设置成功响应给上位机,触发第一接收判断模块。
[0345]
可选的,在本实施例中,第二判断模块14具体包括:
[0346]
第四获取子模块,用于从预置的免密操作信息中获取第二标志位;
[0347]
第三判断子模块,用于判断第二标志位是否为置位状态,是则需要按键确认,触发第一显示接收模块,否则不需要按键确认,触发签名模块。
[0348]
实施例八
[0349]
本发明实施例八提供一种区块链终端设备免密操作的装置,如图4所示,包括:
[0350]
第一接收判断模块11,用于当区块链终端设备接收到上位机发送的指令时,判断指令类型,如为签名指令则触发第一判断模块12,如为验证pin码指令则触发验证模块16;
[0351]
第一判断模块12,用于判断当前的限定次数的值是否等于阈值,是则保存未完成标识,返回限定次数达到阈值和需要验证pin码响应给上位机,触发第一接收判断模块11,否则触发第二判断模块13;
[0352]
第二判断模块13,用于判断是否需要按键确认,是则触发第一显示接收模块14,否则触发签名模块15;
[0353]
第一显示接收模块14,用于显示签名指令中的授权信息,等待用户操作,若接收到用户确认操作则触发签名模块15,若接收到用户取消操作则交互取消,结束;
[0354]
签名模块15,用于根据签名指令中的子公钥查询密钥索引,根据查询到的密钥索引计算子私钥,使用子私钥对授权信息进行签名得到签名结果,根据签名结果生成交互凭据,返回交互凭据给上位机,触发第一接收判断模块11;
[0355]
验证模块16,用于对pin码进行验证,如验证成功则触发第三判断模块17,如验证失败则结束;
[0356]
第三判断模块17,用于判断未完成标识是否存在,是则触发第二判断模块13,否则
返回验证pin码成功响应给上位机,触发第一接收判断模块11;
[0357]
装置还包括第一更新次数模块和第二更新次数模块;
[0358]
第一更新次数模块,用于当第一判断模块12判断当前的限定次数不等于阈值时更新限定次数;还用于当第三判断模块17判断未完成标识存在时更新限定次数;
[0359]
第二更新次数模块,用于当第一显示接收模块14接收到用户取消操作时更新限定次数。
[0360]
可选的,在本实施例中,还包括:第四判断模块,用于判断是否开启了免密操作,是则触发第一判断模块,否则返回需要验证pin码响应给上位机,触发第一接收判断模块。
[0361]
可选的,在本实施例中,第四判断模块具体包括:
[0362]
第一获取子模块,用于从预置的免密操作信息中获取第一标志位;
[0363]
第一判断子模块,用于判断第一标志位是否为置位状态,是则未开启免密操作,返回需要验证pin码响应给上位机,触发第一接收判断模块,否则开启了免密操作,触发第一判断模块。
[0364]
可选的,在本实施例中,如限定次数的初始值为预置的限定次数,第一更新次数模块,具体用于用当前的限定次数减第五预设值的结果更新限定次数;第二更新次数模块,具体用于用当前的限定次数加第五预设值的结果更新限定次数;
[0365]
如阈值为预置的限定次数,第一更新次数模块,具体用于用当前的限定次数加第五预设值的结果更新限定次数,第二更新次数模块,具体用于用当前的限定次数减第五预设值的结果更新限定次数。
[0366]
可选的,在本实施例中,验证模块16,具体用于从接收的验证pin码指令中获取pin码,将获取的pin码与区块链终端设备硬件主安全区中存储的pin码进行匹配,如匹配成功则验证成功,触发第三判断模块17,如匹配失败则验证失败,结束。
[0367]
可选的,在本实施例中,还包括设置模块;
[0368]
设置模块,用于当第一接收判断模块11判断指令的类型为加载上一次限定次数指令时,根据加载上一次限定次数指令对限定次数进行设置,返回设置成功响应给上位机,触发第一接收判断模块11。
[0369]
可选的,在本实施例中,第二判断模块13具体包括:
[0370]
第四获取子模块,用于从预置的免密操作信息中获取第二标志位;
[0371]
第三判断子模块,用于判断第二标志位是否为置位状态,是则需要按键确认,触发第一显示接收模块,否则不需要按键确认,触发签名模块。
[0372]
可选的,在本实施例中,签名模块15,还用于判断子公钥是否有效,是则根据子公钥查询密钥索引,否则报错。
[0373]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1