H04L9/08 H04L9/06
1.一种信息处理方法,包括:
接收请求端发送的密钥申请,所述密钥申请携带有第一中间值;所述第一中间值为所述请求端基于所述第一密钥参数生成;
基于所述第一中间值,生成至少两级的第二密钥参数;
将所述至少两级的第二密钥参数发送给所述请求端;所述至少两级的第二密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
2.根据权利要求1所述的方法,所述基于所述第一中间值,生成至少两级的第二密钥参数,包括:
若当前响应端为第一级响应端,接收所述第一中间值;基于所述第一中间值,生成所述第一级响应端的第二密钥参数;将所述第一级响应端的第二密钥参数发送给第二级响应端;
若当前响应端为中间级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述中间级响应端的第二密钥参数;将所述中间级响应端的第二密钥参数发送给后一级响应端;
若当前响应端为最后一级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述最后一级响应端的第二密钥参数。
3.根据权利要求1所述的方法,所述第二密钥参数包括:公钥参数;
所述方法还包括:
将所述至少两级的所述公钥参数通过区块链的共识验证之后,记录在区块链中。
4.根据权利要求1所述的方法,所述第二密钥参数包括:私钥参数;
所述基于所述第一中间值,生成至少两级的第二密钥参数,包括:
获取请求端发送的标识信息;
生成随机数以及第三密钥参数;
基于所述第一中间值、所述标识信息及所述随机数,生成哈希值;
利用第一函数以所述哈希值、所述随机数及所述第三密钥参数为已知量,计算获得私钥参数。
5.根据权利要求4所述的方法,所述利用第一函数以所述哈希值、所述随机数及所述第三密钥参数为已知量,计算获得私钥参数,包括:
将所述哈希值进行二进制转换,获得32位的第一数值;
获得所述第一数值的高16位二进制以及低16位二进制;
将所述高16位二进制进行十进制转换,获得第一子数值;
将所述低16位二进制进行十进制转换,获得第二子数值;
基于所述第一子数值与所述随机数的乘积,及所述第二子数值与所述第三密钥参数的乘积,计算获得私钥参数。
6.一种信息处理方法,包括:
基于第一密钥参数,获得第一中间值;
向响应端发送携带有所述第一中间值的密钥申请;
接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数;
基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥。
7.根据权利要求6所述的方法,所述接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数,包括:
接收所述响应端返回的第一级响应端的第二密钥参数、中间级响应端的第二密钥参数及最后一级响应端的第二密钥参数;
其中,所述第一级响应端的第二密钥参数基于所述第一中间值生成;所述第一级响应端的第二密钥参数用于发送给第二级响应端;
所述中间级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述中间级响应端的第二密钥参数用于发送给后一级响应端;
所述最后一级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述最后一级响应端的第二密钥参数用于发送给请求端。
8.根据权利要求6所述的方法,所述第二密钥参数包括:私钥参数和公钥参数;
所述基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥,包括:
基于最后一级响应端的私钥参数和所述第一密钥参数,确定临时私钥参数;
验证所述临时私钥参数与所述至少两级的公钥参数的对应关系;
若验证通过,确定所述临时私钥参数为私钥。
9.一种电子设备,包括:
第一接收模块,用于接收请求端发送的密钥申请,所述密钥申请携带有第一中间值;所述第一中间值为所述请求端基于所述第一密钥参数生成;
第一生成模块,用于基于所述第一中间值,生成至少两级的第二密钥参数;
第一发送模块,用于将所述至少两级的第二密钥参数发送给所述请求端;所述至少两级的第二密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
10.一种电子设备,包括:
计算模块,用于基于第一密钥参数,获得第一中间值;
第二发送模块,用于向响应端发送携带有所述第一中间值的密钥申请;
第二接收模块,用于接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数;
第二生成模块,用于基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥。
本发明涉及通信领域的技术领域,尤其涉及一种信息处理方法、电子设备。
目前公钥密码体制有以下三种方案:基于证书的公钥密码体制PKI、基于标识的公钥密码体制IBC以及无证书公钥密码体制CLPKC。其中,采用PKI需要使用证书权威机构CA颁发证书来建立用户实体与公钥之间的联系,然而证书的管理(例如颁发、更新、撤销)不仅操作复杂,还需要消耗很多计算资源和存储资源。其中IBC虽然消除了对证书的依赖;但是用户的公钥由用户标识唯一确定,用户的私钥由信任权威机构生成。因而采用IBC会引入了私钥托管问题,且用户签名不具有唯一性和不可否认性。其中CLPKC虽然不使用证书,但是该CLPKC是仅采用一个密钥生成中心的架构,因而使用该方案存在因该密钥生成中心作恶或被攻破而带来的系统安全性问题。
本发明实施例提供了一种信息处理方法、电子设备。
本发明的技术方案是这样实现的:
一种信息处理方法,包括:
接收请求端发送的密钥申请,所述密钥申请携带有第一中间值;所述第一中间值为所述请求端基于所述第一密钥参数生成;
基于所述第一中间值,生成至少两级的第二密钥参数;
将所述至少两级的第二密钥参数发送给所述请求端;所述至少两级的第二密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
上述方案中,所述基于所述第一中间值,生成至少两级的第二密钥参数,包括:
若当前响应端为第一级响应端,接收所述第一中间值;基于所述第一中间值,生成所述第一级响应端的第二密钥参数;将所述第一级响应端的第二密钥参数发送给第二级响应端;
若当前响应端为中间级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述中间级响应端的第二密钥参数;将所述中间级响应端的第二密钥参数发送给后一级响应端;
若当前响应端为最后一级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述最后一级响应端的第二密钥参数。
上述方案中,所述将所述至少两级的第二密钥参数发送给所述请求端,包括:
将所述第一级响应端的第二密钥参数、所述中间级响应端的第二密钥参数及所述最后一级响应端的第二密钥参数发送给所述请求端。
上述方案中,所述第二密钥参数包括:公钥参数;
所述方法还包括:
将所述至少两级的所述公钥参数通过区块链的共识验证之后,记录在区块链中。
上述方案中,所述第二密钥参数包括:私钥参数;
所述基于所述第一中间值,生成至少两级的第二密钥参数,包括:
获取请求端发送的标识信息;
生成随机数以及第三密钥参数;
基于所述第一中间值、所述标识信息及所述随机数,生成哈希值;
利用第一函数以所述哈希值、所述随机数及所述第三密钥参数为已知量,计算获得私钥参数。
上述方案中,所述利用第一函数以所述哈希值、所述随机数及所述第三密钥参数为已知量,计算获得私钥参数,包括:
将所述哈希值进行二进制转换,获得32位的第一数值;
获得所述第一数值的高16位二进制以及低16位二进制;
将所述高16位二进制进行十进制转换,获得第一子数值;
将所述低16位二进制进行十进制转换,获得第二子数值;
基于所述第一子数值与所述随机数的乘积,及所述第二子数值与所述第三密钥参数的乘积,计算获得私钥参数。
上述方案中,所述方法还包括:
若当前响应端为第一级响应端,将所述第一级响应端的第三密钥参数中公钥参数发送给中间级响应端和/或最后一级响应端;
若当前响应端为中间级响应端,将所述中间级响应端的第三密钥参数中公钥参数发送给第一级响应端和/或最后一级响应端;
若当前响应端为最后一级响应端,将所述最后一级响应端的第三密钥参数中公钥参数发送给第一级响应端和/或中间级响应端。
本发明实施例还提供了一种信息处理方法,包括:
基于第一密钥参数,获得第一中间值;
向响应端发送携带有所述第一中间值的密钥申请;
接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数;
基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥。
上述方案中,所述基于第一密钥参数,获得第一中间值,包括:
利用单向函数以所述第一密钥参数为已知量,计算得到第一中间值。
上述方案中,所述接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数,包括:
接收所述响应端返回的第一级响应端的第二密钥参数、中间级响应端的第二密钥参数及最后一级响应端的第二密钥参数;
其中,所述第一级响应端的第二密钥参数基于所述第一中间值生成;所述第一级响应端的第二密钥参数用于发送给第二级响应端;
所述中间级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述中间级响应端的第二密钥参数用于发送给后一级响应端;
所述最后一级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述最后一级响应端的第二密钥参数用于发送给请求端。
上述方案中,所述第二密钥参数包括:私钥参数和公钥参数;
所述基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥,包括:
基于最后一级响应端的私钥参数和所述第一密钥参数,确定临时私钥参数;
验证所述临时私钥参数与所述至少两级的公钥参数的对应关系;
若验证通过,确定所述临时私钥参数为私钥。
上述方案中,所述第二密钥参数包括:公钥参数;
所述方法还包括:
获取至少两级的第三密钥参数以及所述至少两级的所述公钥参数;
基于所述至少两级的公钥参数、标识信息及所述至少两级的第三密钥参数,生成公钥。
上述方案中,所述获取至少两级的所述公钥参数,包括:
获取记录在区块链中的至少两级的所述公钥参数;所述记录在区块链中的公钥参数为通过区块链共识验证后的公钥参数。
上述方案中,所述获取至少两级的第三密钥参数,包括:
基于第一级响应端、中间级响应端以及最后一级响应端中的至少一个响应端获取各响应端的第三密钥参数中公钥参数。
本发明实施例还提供了一种电子设备,包括:
第一接收模块,用于接收请求端发送的密钥申请,所述密钥申请携带有第一中间值;所述第一中间值为所述请求端基于所述第一密钥参数生成;
第一生成模块,用于基于所述第一中间值,生成至少两级的第二密钥参数;
第一发送模块,用于将所述至少两级的第二密钥参数发送给所述请求端;所述至少两级的第二密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
本发明实施例还提供了一种电子设备,包括:
计算模块,用于基于第一密钥参数,获得第一中间值;
第二发送模块,用于向响应端发送携带有所述第一中间值的密钥申请;
第二接收模块,用于接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数;
第二生成模块,用于基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥。
本发明实施例所述提供的信息处理方法,响应端接收请求端发送的密钥申请,所述密钥申请携带有第一中间值;所述第一中间值为所述请求端基于所述第一密钥参数生成;基于所述第一中间值,生成至少两级的第二密钥参数,而并非直接生成私钥,而私钥的生成由请求端基于所述至少两级的第二密钥参数以及第一密钥参数生成;如此,响应端无需托管请求端的私钥,在网络中也没有传输私钥,减少了私钥在托管和传输过程中的泄露现象,减少了因为泄露导致的安全问题。
且,本发明实施例中,由于可以基于第一中间值,生成至少两级的第二密钥参数,也就是说私钥的生成并非基于一个响应端的第二密钥参数生成,而是基于至少两个级别的响应端的第二密钥参数生成;如此,即便至少两个级别的响应端中部分响应端被攻破或者作恶(例如部分第二密钥参数泄露),私钥也不容易被破解,从而进一步提高了私钥的安全性。
图1为本发明实施例提供的一种信息处理方法的流程示意图;
图2为本发明一实施例中的区块链结构示意图;
图3为本发明实施例提供的另一种信息处理方法的流程示意图;
图4为本发明实施例提供的一种信息处理装置示意图;
图5为本发明实施例提供的另一种信息处理装置示意图;
图6为本发明实施例提供的又一种信息处理方法的流程示意图;
图7为本发明一实施例中验签算法签名的示意图;
图8为本发明实施例提供的一种电子设备的硬件结构示意图。
下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如图1所示,本发明实施例提供了一种信息处理方法,包括:
步骤S110:接收请求端发送的密钥申请,所述密钥申请携带有第一中间值;所述第一中间值为所述请求端基于所述第一密钥参数生成;
步骤S120:基于所述第一中间值,生成至少两级的第二密钥参数;
步骤S130:将所述至少两级的第二密钥参数发送给所述请求端;所述至少两级的第二密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
这里,所述第一密钥参数可以是请求端随机生成的秘密值;所述第二密钥参数包括但不限于各响应端的私钥参数和/或私钥参数。
本发明实施例所提供的信息处理方法,应用于响应端;所述响应端包括至少两级的响应端;所述响应端为各种类型的电子设备;所述电子设备包括终端、服务器或者通信网元等。
在一些实施例中,所述响应端包括N个密钥生成中心(KGC);所述N为大于或等于2的自然数。
响应端会从请求端接收密钥申请,在本发明实施例中,密钥申请携带的是第一中间值;所述第一中间值可以是请求端基于第一密钥参数生成的。所述响应端接收到第一中间值后,基于所述第一中间值生成第二密钥参数,而非直接生成私钥。所述第二密钥参数用于请求端根据所述第一密钥参数以及第二密钥参数生成私钥。如此,响应端不用管理请求端的私钥,也不用将私钥通过网络传输给请求端,减少了托管和传输私钥导致的私钥泄露现象,减少了因为泄露导致的安全问题。
且,由于所述响应端为包括至少两级的响应端,生成至少两级的第二密钥参数;也就是说私钥的生成并非基于一个响应端的第二密钥参数生成,而是基于至少于两个级别的响应端的第二密钥参数生成;如此,即便至少两个级别的响应端中的部分响应端被攻破或者作恶(例如部分第二密钥参数泄露),私钥也不容易被破解,从而进一步提高了私钥的安全性。
在一些实施例中,所述步骤S120,包括:
若当前响应端为第一级响应端,接收所述第一中间值;基于所述第一中间值,生成所述第一级响应端的第二密钥参数;将所述第一级响应端的第二密钥参数发送给第二级响应端;
若当前响应端为中间级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述中间级响应端的第二密钥参数;将所述中间级响应端的第二密钥参数发送给后一级响应端;
若当前响应端为最后一级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述最后一级响应端的第二密钥参数。
例如,若所述响应端包括N个密钥生成中心;所述N个密钥生成中心分别为第1个密钥生成中心、第2个密钥生成中心、……第N-1个密钥生成中心、第N个密钥生成中心;所述N为大于或等于2的自然数;则所述第1个密钥生成中心为第一级响应端,所述2个密钥生成中心、……、所述第N-1个密钥生成中心为中间级响应端;所述第N个密钥生成中心为最后一级响应端。
在一些实施例中,所述将所述至少两级的第二密钥参数发送给所述请求端,包括:
将所述第一级响应端的第二密钥参数、所述中间级响应端的第二密钥参数及所述最后一级响应端的第二密钥参数发送给所述请求端。
在一实施例中,所述响应端包括N个密钥生成中心;所述N个密钥生成中心分别为第1个密钥生成中心、第2个密钥生成中心、……第N-1个密钥生成中心、第N个密钥生成中心;所述第1个密钥生成中心接收请求端发送的密钥申请,所述密钥申请中携带第一中间值XA;并基于所述XA,生成所述第1个密钥生成中心的第二密钥参数(PA1、z1);所述第2个密钥生成中心接收所述第1个密钥生成中心发送的(PA1、z1);基于所述(PA1、z1),生成第2个密钥生成中心的第二密钥参数(PA2、z2);并将所述(PA2、z2)发送给第3个密钥生成中心;依次类推;所述第N-1密钥生成中心接收第N-2个密钥生成中心发送的(PAN-2、zn-2);基于所述(PAN-2、zn-2)生成第N-1个密钥生成中心的第二密钥参数(PAN-1、zn-1);并将所述(PAN-1、zn-1)发送个第N个密钥生成中心;所述第N个密钥生成中心接收所述第N-1个密钥生成发送的(PAN-1、zn-1);基于所述(PAN-1、zn-1)生成所述第N个密钥生成中心的第二密钥参数(PAn、zn);其中,所述PA1、PA2、……PAN-1、PAN为所述第二密钥参数中的公钥参数;所述z1、z2、……zn-1、zn为所述第二密钥参数的私钥参数;所述第1个密钥生成中心、第2个密钥生成中心、……第N-1个密钥生成中心、第N个密钥生成中心分别将PA1、PA2、……PAN-1、PAN发送给所述请求端;所述第N个密钥生成中心将所述zn发送给所述请求端。
在另一实施例中,所述响应端包括N个密钥生成中心;所述N个密钥生成中心分别为第1个密钥生成中心、第2个密钥生成中心、……第N-1个密钥生成中心、第N个密钥生成中心;所述第1个密钥生成中心接收请求端发送的密钥申请,所述密钥申请中携带第一中间值XA;并基于所述XA,生成所述第1个密钥生成中心的第二密钥参数(PA1、z1);所述第2个密钥生成中心接收所述第1个密钥生成中心发送的(PA1、z1);基于所述(PA1、z1),生成第2个密钥生成中心的第二密钥参数(PA2、z2);并将所述(PA1、PA2、z2)发送给第3个密钥生成中心;依次类推;所述第N-1密钥生成中心接收第N-2个密钥生成中心发送的(PA1、PA2、……PAN-2、zN-2);基于所述(PAN-2、zn-2)生成第N-1个密钥生成中心的第二密钥参数(PAN-1、zn-1);并将所述(PA1、PA2、……PAN-2、PAN-1、zn-1)发送个第N个密钥生成中心;所述第N个密钥生成中心接收所述第N-1个密钥生成发送的(PA1、PA2、……PAn-2、PAN-1、zn-1);基于所述(PAN-1、zn-1)生成所述第N个密钥生成中心的第二密钥参数(PAN、zn);其中,所述PA1、PA2、……PAN-1、PAN为所述第二密钥参数中的公钥参数;所述z1、z2、……zn-1、zn为所述第二密钥参数的私钥参数;所述第N个密钥生成中心将(PA1、PA2、……PAN-1、PAN、zn)发送给所述请求端。
在一些实施例中,所述响应端还接收用户的标识信息,所述标识信息用于与所述第二密钥参数中的公钥参数,共同用于生成哈希值;基于所述哈希值,生成所述第二密钥参数的私钥参数。
本发明实施例,构建了一个多响应端的密钥生成体制,可以基于多个响应端生成多个第二密钥参数,且其中多个响应端中后一个响应端的第二密钥参数是基于前一个响应端的密钥生成参数而生成的,而私钥是基于所有响应端的第二密钥参数才能生成;如此,当其中部分响应端作恶或者部分响应端的第二密钥生成参数被泄露,所述私钥也不容易被破解。如此,采用本发明实施例的多响应端的密钥生成体制,能够具备容忍一定数量的响应端被攻破的情况发生,能够大大提高私钥的安全性。
在一些应用中,所述多响应端的密钥生成体制可应用在区块链中,可以解决联盟链中CA证书体制过于臃肿的问题。
例如,在一些实施例中,所述第二密钥参数包括:公钥参数;所述方法还包括:将所述至少两级的所述公钥参数通过区块链的共识验证之后,记录在区块链中。
在本发明实施例中,可以通过共识验证,使得所述公钥参数获得区块链中的每个节点的信任。而将所述密钥参数记录在区块链中,可以使得任意一个节点都可以从区块链中获取用户对应的各个KGC(即响应端)的公钥参数;如此,可以使得多方运营商不需要各自保存各用户对应的各个KGC的公钥参数,能够节约存储资源;同时,由于是使用了本发明实施例中的多响应端的密钥生成体制替代了联盟链中CA证书体制,从而可以解决联盟链中CA证书体制过于臃肿的问题。。
在一些实施例中,所述方法还包括:若当前响应端为第一级响应端,将所述第一级响应端的第三密钥参数中公钥参数发送给中间级响应端和/或最后一级响应端;
若当前响应端为中间级响应端,将所述中间级响应端的第三密钥参数中公钥参数发送给第一级响应端和/或最后一级响应端;
若当前响应端为最后一级响应端,将所述最后一级响应端的第三密钥参数中公钥参数发送给第一级响应端和/或中间级响应端。
在本发明实施例中,区块链中的各节点都可以获取其它节点对应的响应端(例如KGC)的公钥参数,可使得各个KGC的公钥参数可以共享;如此,有利于某个节点获取部分或者全部KGC进行加密、解密和/或签名认证等操作。
在实际应用中,应用上述多响应端的密钥生成体制代替现有的CA体制。如图2所示,联盟链中以节点作为基本单元,一个联盟链中可包含若干个组织,每个组织可包含若干个节点;其中,一个组织可包括一个KGC。所述多响应端的密钥生成体制包括KGC1、KGC2和KGC3;所述KGC1、所述KGC2和所述KGC3分别与多个节点Peer连接。应用在区块链中的多响应端的密钥生成体制的信息处理方法包括以下步骤:
步骤S1:区块链系统初始化阶段;
具体地,各组织启动各自的KGC;所述KGC之间使用可信手段分享主公钥。各节点peer基于注册的标识信息ID以及各自的第三密钥参数中的主私钥,生成第二密钥参数。其中,所述第二密钥参数包括公钥参数和私钥参数;所述第三密钥参数包括主公钥和主私钥。
在一可选实施例中,将各KGC所属组织下节点的部分公钥参数写入创世块。
步骤S2:背书环节;
具体地,发起节点将交易消息进行封装;并使用所述私钥参数进行签名,获得所述签名结果;将所述身份标识、所述交易消息、所述公钥参数、所述签名结果发送给背书节点。所述背书节点执行验签算法,若验签通过则进行交易的模拟执行,将执行结果返回给所述发起节点;若确定所述发起节点收到足够的所述背书节点通过的交易消息后,将所述交易消息的封装发给排序节点。
在一可选实施例中,所述发起节点不发送公钥参数;所述背书节点通过区块链的创始块信息获取所述公钥参数。
步骤S3:排序环节;
具体的,所述排序节点对时间窗内的所有有效交易进行排序、出块;使用反熵算法将块信息广播给区块链中的所有节点。
步骤S4:确认环节。
具体地,所有节点验证、记录、并确认块信息内的交易,将所述交易写入区块链,并更新账本状态。
在一些实施例中,所述第二密钥参数包括:私钥参数;
所述步骤S120,包括:
获取请求端发送的标识信息;
生成随机数以及第三密钥参数;
基于所述第一中间值、所述标识信息及所述随机数,生成哈希值;
利用第一函数以所述哈希值、所述随机数及所述第三密钥参数为已知量,计算获得私钥参数。
其中,所述基于所述第一中间值、所述标识信息及所述随机数,生成哈希值的一种实现方式是:可以基于所述第一中间参数以及所述随机数,生成第二密钥参数的公钥参数;基于所述标识信息以及所述第二密钥参数的公钥参数生成哈希值。
这里,所述哈希值可以为所述标识信息与所述第二密钥参数的公钥参数的串接。例如,所述ID为1212,所述第二密钥参数的公钥参数为21345;则所述哈希值为121221345。
在本发明实施例中,是利用用户的标识信息与第二密钥参数的公钥参数,共同生成第二密钥的私钥参数,即将用户的标识信息与所述公钥参数绑定在一起,可以大大降低替换公钥攻击、假冒身份攻击和伪造签名攻击的情况出现。
在一实施例中,所述利用第一函数以所述哈希值、所述随机数及所述第三密钥参数为已知量,计算获得私钥参数,包括:
将所述哈希值进行二进制转换,获得32位的第一数值;
获得所述第一数值的高16位二进制以及低16位二进制;
将所述高16位二进制进行十进制转换,获得第一子数值;
将所述低16位二进制进行十进制转换,获得第二子数值;
基于所述第一子数值与所述随机数的乘积,及所述第二子数值与所述第三密钥参数的乘积,计算获得私钥参数。
例如,所述哈希值为220进行二进制转换,获得32位的第一数值为:00000000000100000000000000000000;获得所述第一数值的高16位二进制为:0000000000010000,以及所述第一数值的低16位二进制为:0000000000000000;将所述高16位二进制进行十进制转换,获得第一子数值为:16;将所述低16位二进制进行十进制转换,获得第二子数值为:0;这里,由于所述第二子数值为0,则所述第二子数值与所述第三密钥参数的乘积为0;所述基于所述第一子数值与所述随机数的乘积,及所述第二子数值与所述第三密钥参数的乘积,计算获得私钥参数为基于所述第一子数值与所述随机数的乘积计算获得私钥参数。
在本实施例中,可以将哈希值进行高16位二进制以及低16位二进制的拆分,基于高16位二进制进行十进制转换获得的第一子数值以及低16位二进制进行十进制转换第二进行计算;如此,提供了一种获取私钥参数的算法,同时该算法比较简单易实现,可以简化私钥参数的计算。且,由于本发明实施例是利用基于第一子数值与所述随机数的乘积、以及所述第二子数值与第三密钥参数的乘积,计算获得所述私钥参数;而该种计算方式与椭圆曲线的计算式相关,若所述第一中间值的获取是基于椭圆曲线的生成元为已知量而利用单线函数获取的,则该种计算方式与椭圆曲线算法相匹配,能够进一步优化算法,提升计算效率。
如图3所示,本发明实施例提供了一种信息处理方法,包括:
步骤S210:基于第一密钥参数,获得第一中间值;
步骤S220:向响应端发送携带有所述第一中间值的密钥申请;
步骤S230:接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数;
步骤S240:基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥。
本发明实施例所提供的信息处理方法,应用于请求端;所述请求端为各种类型的电子设备;所述电子设备包括终端、服务器或者通信网元等。
其中,所述第一密钥参数为所述请求端生成随机参数,所述随机参数为秘密值。
在本发明实施例中,请求端可以随机生成第一密钥参数,基于所述第一密钥参数获得第一中间值;使响应端会从基于所述第一中间值生成第二密钥参数,而非直接生成私钥;所述私钥仍是由所述请求端基于所述第一密钥参数生成以及第二密钥参数生成。如此,请求端对所述私钥有绝对的生成管理权限,且响应端不用管理请求端的私钥,也不用将私钥通过网络传输给请求端,减少了托管和传输私钥导致的私钥泄露现象,减少了因为泄露导致的安全问题。
且,在本发明实施例中,由于是获取响应端返回的至少两级的第二密钥参数,基于所述至少两级的第二密钥参数和所述第一密钥参数是,生成私钥;如此,即便所述至少两级的第二密钥参数的部分第二密钥参数被泄露,私钥也不容易被破解,从而进一步提高了私钥的安全性。
在一些实施例中,所述步骤S210,包括:
利用单向函数以所述第一密钥参数为已知量,计算得到第一中间值。
为了防止第一中间值在网络中进行了传输,被非法端获取到了之后,基于第一中间值以及获取所述第一中间值的函数自行推导出第一密钥参数,再通过拦截第二密钥参数推导出请求端的私钥的现象,在本实施例中,所述第一函数为单向函数。
单向函数又称之为单射函数,单向函数具有如下特点:
对于每一个输入,函数值都容易计算(多项式时间),但是给出一个随机输入的函数值,算出原始输入却比较困难(无法在多项式时间内使用确定性图灵机计算)。如此,即便非法端拿到了第二密钥参数和所述单向函数,推导出所述第一密钥参数的难度也是非常大的,如此,大大增加了第一密钥参数被破解的难度,降低了私钥被泄露的风险,提升了私钥的安全性。
在一些实施例中,所述步骤S230,包括:
接收所述响应端返回的第一级响应端的第二密钥参数、中间级响应端的第二密钥参数及最后一级响应端的第二密钥参数;
其中,所述第一级响应端的第二密钥参数基于所述第一中间值生成;所述第一级响应端的第二密钥参数用于发送给第二级响应端;
所述中间级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述中间级响应端的第二密钥参数用于发送给后一级响应端;
所述最后一级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述最后一级响应端的第二密钥参数用于发送给请求端。
其中,所述接收所述响应端返回的第一级响应端的第二密钥参数、中间级响应端的第二密钥参数及最后以及响应端的第二密钥参数的一种实现方式是:从所述最后一级响应端,接收所述第一级响应端的第二密钥参数、所述中间级响应端的第二密钥参数以及所述最后一级响应端的第二密钥参数。
所述接收所述响应端返回的第一级响应端的第二密钥参数、中间级响应端的第二密钥参数及最后以及响应端的第二密钥参数的另一种实现方式是:从所述第一级响应端接收所述第一级响应端的第二密钥参数,从所述中间级响应端接收所述中间级响应端的第二密钥参数,从所述最后一级响应端接收所述最后一级响应端的第二密钥参数。
在本发明实施例中,各响应端的第二密钥参数都是基于前一个响应端的第二密钥参数生成;如此,当即便其中部分响应端的第二密钥参数被泄露,也不容易获得私钥,从而可以大大提高破解私钥的难度,提高私钥的安全性。
在一些实施例中,所述第二密钥参数包括:私钥参数和公钥参数;
所述基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥,包括:
基于最后一级响应端的私钥参数和所述第一密钥参数,确定临时私钥参数;
验证所述临时私钥参数与所述至少两级的公钥参数的对应关系;
若验证通过,确定所述临时私钥参数为私钥。
在请求端获得公钥参数和私钥参数之后,需要对公钥和私钥进行验证,减少请求端和/或响应端在密钥生成过程中的错误导致的生成的密钥对无法使用的现象。如此,在本实施例中,会验证所述私钥和公钥的验证关系,从而获得正确的私钥。
在另一些实施例中,所述方法还包括:获取至少两级的第三密钥参数以及所述至少两级的所述公钥参数;
基于所述至少两级的公钥参数、标识信息及所述至少两级的第三密钥参数,生成公钥。
这里,所述第三密钥参数包括:公钥参数和私钥参数;所述第三密钥参数的公钥参数为响应端的主公钥;所述第三密钥参数的私钥参数为所述响应端的主私钥;所述主公钥对其它响应端或请求端公开;例如,在区块链系统中,所述主公钥被记录在区块链中;所述主私钥不对其它响应端以及请求端公开。
在本发明实施例中,请求端并非直接从响应端获取公钥,而是基于第二密钥参数的公钥参数以及标识信息获取;如此,可以实现自动隐藏对用户公钥的认证,只有标识信息为特定的标识信息的用户才具有与所述私钥对应的公钥。
在一些实施例中,所述方法还包括:基于所述公钥对消息进行加密;获得加密后的密文。
在另一些实施例中,所述方法还包括:基于所述私钥对密文进行解密;所述密文为利用所述私钥对应的公钥进行加密的消息。
在一些实施例中,所述获取至少两级的所述公钥参数,包括:
获取记录在区块链中的至少两级的所述公钥参数;所述记录在区块链中的公钥参数为通过区块链共识验证后的公钥参数。
例如,当所述多响应端的密钥生成体制应用于区块链中,若响应端将其第二密钥参数中的公钥参数记录在区块链中,所述请求端可以从区块链中获取多响应端生成的第二密钥参数中的公钥参数;如此,能够使得系统节省存储空间,能够简化获取公钥参数的操作。
在一些实施例中,所述获取至少两级的第三密钥参数,包括:
基于第一级响应端、中间级响应端以及最后一级响应端中的至少一个响应端获取各响应端的第三密钥参数中公钥参数。
在本发明实施例中,所述各响应端的第三密钥参数的公钥参数是可以公开的;所述响应端为区块链系统中的各节点时,可通过将各节点信息之间的共享实现各第三密钥参数的公钥参数的共享,从而使得所述请求端可以仅基于一个或几个响应端获取公钥参数以及私钥参数,从而进一步简化了获得公钥和私钥的操作。
如图4所示,本发明实施例还提供了一种电子设备,包括:
第一接收模块31,用于接收请求端发送的密钥申请,所述密钥申请携带有第一中间值;所述第一中间值为所述请求端基于所述第一密钥参数生成;
第一生成模块32,用于基于所述第一中间值,生成至少两级的第二密钥参数;
第一发送模块33,用于将所述至少两级的第二密钥参数发送给所述请求端;所述至少两级的第二密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
本发明实施例所述的电子设备即对应于前述的响应端。
在一些实施例中,所述第一生成模块32,用于若当前响应端为第一级响应端,接收所述第一中间值;基于所述第一中间值,生成所述第一级响应端的第二密钥参数;将所述第一级响应端的第二密钥参数发送给第二级响应端;
若当前响应端为中间级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述中间级响应端的第二密钥参数;将所述中间级响应端的第二密钥参数发送给后一级响应端;
若当前响应端为最后一级响应端,接收前一级响应端的第二密钥参数;基于所述前一级响应端的第二密钥参数,生成所述最后一级响应端的第二密钥参数。
在一些实施例中,所述第一发送模块33,用于将所述第一级响应端的第二密钥参数、所述中间级响应端的第二密钥参数及所述最后一级响应端的第二密钥参数发送给所述请求端。
在一些实施例中,所述第二密钥参数包括:公钥参数;
所述电子设备还包括:第一处理模块34,用于将所述至少两级的所述公钥参数通过区块链的共识验证之后,记录在区块链中。
在一些实施例中,所述第一发送模块33,还用于若当前响应端为第一级响应端,将所述第一级响应端的第三密钥参数中公钥参数发送给中间级响应端和/或最后一级响应端;若当前响应端为中间级响应端,将所述中间级响应端的第三密钥参数中公钥参数发送给第一级响应端和/或最后一级响应端;若当前响应端为最后一级响应端,将所述最后一级响应端的第三密钥参数中公钥参数发送给第一级响应端和/或中间级响应端。
在一些实施例中,所述第二密钥参数包括:私钥参数;
所述第一生成模块32,还用于获取请求端发送的标识信息;生成随机数以及第三密钥参数;基于所述第一中间值、所述标识信息及所述随机数,生成哈希值;利用第一函数以所述哈希值、所述随机数及所述第三密钥参数为已知量,计算获得私钥参数。
在一些实施例中,所述第一生成模块32,还用于将所述哈希值进行二进制转换,获得32位的第一数值;获得所述第一数值的高16位二进制以及低16位二进制;将所述高16位二进制进行十进制转换,获得第一子数值;将所述低16位二进制进行十进制转换,获得第二子数值;基于所述第一子数值与所述随机数的乘积,及所述第二子数值与所述第三密钥参数的乘积,计算获得私钥参数。
如图5所示,本发明实施例还提供一种电子设备,包括:
计算模块41,用于基于第一密钥参数,获得第一中间值;
第二发送模块42,用于向响应端发送携带有所述第一中间值的密钥申请;
第二接收模块43,用于接收所述响应端基于所述第一中间值返回的至少两级的第二密钥参数;
第二生成模块44,用于基于所述至少两级的第二密钥参数和所述第一密钥参数,生成私钥。
本发明实施例所述的电子设备即对应于前述的请求端。
在一些实施例中,所述计算模块41,用于利用单向函数以所述第一密钥参数为已知量,计算得到第一中间值。
在一些实施例中,所述第二接收模块,用于接收所述响应端返回的第一级响应端的第二密钥参数、中间级响应端的第二密钥参数及最后一级响应端的第二密钥参数;
其中,所述第一级响应端的第二密钥参数基于所述第一中间值生成;所述第一级响应端的第二密钥参数用于发送给第二级响应端;
所述中间级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述中间级响应端的第二密钥参数用于发送给后一级响应端;
所述最后一级响应端的第二密钥参数基于前一级响应端的第二密钥参数生成;所述最后一级响应端的第二密钥参数用于发送给请求端。
在一些实施例中,所述第二密钥参数包括:私钥参数和公钥参数;
所述第二生成模块44,用于基于最后一级响应端的私钥参数和所述第一密钥参数,确定临时私钥参数;
验证所述临时私钥参数与所述至少两级的公钥参数的对应关系;
若验证通过,确定所述临时私钥参数为私钥。
在一些实施例中,所述第二密钥参数包括:公钥参数;
所述第二接收模块42,用于获取至少两级的第三密钥参数以及所述至少两级的所述公钥参数;
所述第二生成模块44,用于基于所述至少两级的公钥参数、标识信息及所述至少两级的第三密钥参数,生成公钥。
在一些实施例中,所述第二接收模块42,还用于获取记录在区块链中的至少两级的所述公钥参数;所述记录在区块链中的公钥参数为通过区块链共识验证后的公钥参数。
在一些实施例中,所述第二接收模块42,还用于基于第一级响应端、中间级响应端以及最后一级响应端中的至少一个响应端获取各响应端的第三密钥参数中公钥参数。
以下结合上述任意实施例提供一个具体示例:
在本方案中涉及三个算法:系统初始化算法、私钥生成算法、公钥生成算法。如图6所示,本示例提供的方法可包括如下步骤:
S21.系统初始化:
(1)设有N个KGC;所述N个KGC使用统一的椭圆曲线参数{E,G,n};其中,所述E:y2=x3+ax+b为有限域Fq上的椭圆曲线;n为素数;G是E上的一个n阶基点;h0(),h1()...hm()是一组{0,1}*→[1,n-1]的哈希(hash)函数;其中,所述m为大于或等于1的正整数。
(2)所述N个KGC生成各自的主公钥Pi和主私钥si;所述si不公开,所述Pi公开;其中,所述i为大于或等于1的正整数;所述N个KGC包括:KGC1、KGC2、……、KGCN;所述N为大于或等于2的正整数。
这里,所述主公钥为上述实施例中的第三密钥参数的公钥参数;所述主私钥为上述实施例中的第三密钥参数的私钥参数。
步骤S22.私钥生成:
(1)标识信息为ID的用户实体A随机生成秘密值xA(基于公开参数n),计算椭圆曲线上点XA=xA*G,将所述ID、XA发送给KGC1。
这里,所述xA为上述实施例中的第一密钥参数;所述XA为上述实施例中的第一中间值。
(2)KGC1收到(ID,XA)后,检验其合法性;若确定所述(ID,XA)合法,随机生成y1;计算椭圆曲线上点PA1=XA+y1*G;计算摘要e1=h(ID||PA1),将e1拆分并计算z1=e1[0:15]*y1+e1[16:31]*s1;将所述PA1、所述ID及所述z1发送给KGC2。
这里,所述“||”表示数据的串接;所述e1=h(ID||PA1)表示所述ID后面串接PA1。
这里,所述y1为上述实施例的随机数。
这里,所述e1[0:15]表示所述e1转换为32位的二进制后,提取该32位二进制的高16位二进制,基于所述高16位二进制获取的十进制数;所述e1[16:31]表示所述e1转换为32位的二进制后,提取该32位二进制的低16位二进制,基于所述低16位二进制获取的十进制数。
这里,所述PA1为上述实施例中的第二密钥参数的公钥参数;所述z1为上述实施例中的第二密钥参数的私钥参数。可以理解的是,所述PA1可以认为是部分公钥;所述z1可以认为是部分私钥。
(3)所述KGC2接收所述PA1、所述ID及所述z1;并随机生成y2;计算PA2=PA1+y2*G;计算摘要e2=h(ID||PA2),将e2拆分并计算z2=z1+e2[0:15]*y2+e2[16:31]*s2,并将{PA1,PA2}、所述ID及所述z2发送给后面的KGC3。
这里,所述y2为上述实施例的随机数。
这里,所述e2[0:15]表示所述e2转换为32位的二进制后,提取该32位二进制的高16位二进制,基于所述高16位二进制获取的十进制数;所述e2[16:31]表示所述e2转换为32位的二进制后,提取该32位二进制的低16位二进制,基于所述低16位二进制获取的十进制数。
这里,所述PA2为上述实施例中的第二密钥参数的公钥参数;所述z2为上述实施例中的第二密钥参数的私钥参数。可以理解的是,所述PA2可以认为是部分公钥;所述z2可以认为是部分私钥。
(4)依次类推,直到最后一个KGCN收到KGCN-1发来的{PA1,PA2,…,PAN-1}、所述ID及所述zn-1;并随机生成yn;计算PAN=PAN-1+yn*G;计算摘要en=h(ID||PAN);将en拆分并计算zn=zn-1+en[0:15]*yn+en[16:31]*sn;并将{PA1,PA2,…,PAN}及所述zn发送给用户实体A。
这里,所述yn为上述实施例的随机数。
这里,所述en[0:15]表示所述en转换为32位的二进制后,提取该32位二进制的高16位二进制,基于所述高16位二进制获取的十进制数;所述en[16:31]表示所述en转换为32位的二进制后,提取该32位二进制的低16位二进制,基于所述低16位二进制获取的十进制数。
这里,所述PAN为上述实施例中的第二密钥参数的公钥参数;所述zn为上述实施例中的第二密钥参数的私钥参数。可以理解的是,所述PAN可以认为是部分公钥;所述zn可以认为是部分私钥。
(5)用户接收到{PA1,PA2,…,PAN}及所述zn后,计算ei=h(ID||PAi),然后验证如果该公式验证通过,获取用户的私钥dA=e1[0:15]*xA+zn。
S23.公钥生成:
获取所述N个KGC的公钥参数{PA1,PA2,…,PAN}以及所述N个KGC的主公钥{P1,P2,…,PN};计算摘要ei=h(ID||PAi);计算公钥:
在实际应用中,可将上述方案可应用与密钥签名中。例如,用户实体A使用私钥dA=e1[0:15]*xA+zn对消息msg进行签名,可基于上述的椭圆曲线参数,获得签名值sig;所述用户实体A将所述sig、所述ID、所述msg以及{PA1,PA2,…,PAN}发送给用户实体B;用户实体B接收到所述sig、所述ID、所述msg以及{PA1,PA2,…,PAN},计算摘要ei=h(ID||PAi);然后计算并使用标准验签算法验证签名verify(sig,msg,QA);所述标准验签算法如图7所示。
在另一些实施例中,上述方案也可应用于加密、解密算法中。例如,用户实体B获取用户实体A的部分公钥{PA1,PA2,…,PAN};基于所述部分公钥计算实际公钥QA;用户实体B用户实体A的实际公钥加密消息sig;并加密的密文发送给用户实体A;用户实体A可基于所述自身的私钥dA=e1[0:15]*xA+zn对所述密文进行解密。
这里需要指出的是:以下电子设备和存储介质的描述,与上述信息处理方法项描述是类似的,同方法的有益效果描述,不做赘述。对于本发明电子设备实施例中未披露的技术细节,请参照本发明信息处理方法实施例的描述而理解。
如图8所述,本发明实施例公开了一种电子设备,所述电子设备包括:所述电子设备包括:处理器51、通信接口52和存储器53;其中,
所述处理器51通常控制终端设备或网络设备的总体操作。
通信接口52可以使终端设备或网络设备通过网络与其他终端或服务器通信。
存储器53配置为存储由处理器51可执行的指令和应用,还可以缓存待处理器51以及终端中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
可以理解的是,本文描述的处理器51可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器51中的硬件的集成逻辑电路或者软件形式的指令完成。该存储介质位于存储器53,处理器51读取存储器53中的信息,结合其硬件完成上述方法的步骤。
本发明又一实施例提供了一种计算机存储介质,该计算机可读存储介质存储有可执行程序,所述可执行程序被处理器执行时,可实现应用于所述电子设备的信息处理方法的步骤。例如,如图1、图3、图6所示的方法中的一个或多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
本文发布于:2023-04-15 02:48:47,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/4/86890.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |