密钥生成方法、装置、计算机设备和存储介质与流程
未命名
09-29
阅读:61
评论:0
1.本技术涉及密码学技术领域,特别是涉及一种密钥生成方法、装置、计算机设备和存储介质。
背景技术:
2.随着密码学技术的发展,出现了门限加密技术,门限加密方案是门限密码算法常见应用之一,常常体现为一类分布式加解密协议,目前的门限加密技术将密文拆分为密钥分片并分发给秘密持有者,只有满足数目的秘密持有者合作,将密钥分片聚合,才能实现解密。
3.然而,目前的门限加密方法,存在多个主体参与数据协作的可控性差,无法确定参与主体的优先级。
技术实现要素:
4.基于此,有必要针对上述技术问题,提供一种能够指定参与密钥的密钥生成方法、装置、计算机设备和计算机可读存储介质。
5.第一方面,本技术提供了一种密钥生成方法。所述方法包括:
6.将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成;
7.将第一临时密钥分量拆分得到至少一个指定参与的密钥分量;
8.将第二临时密钥分量拆分得到非指定参与的密钥分量;
9.合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有密钥分量。
10.在其中一个实施例中,将密文拆分为第一临时密钥分量和第二临时密钥分量,包括:
11.随机构建第一多项式;
12.基于第一多项式,对密文按照指定参与的密钥分量和非指定参与的密钥分量两种类型进行拆分,得到第一临时密钥分量和第二临时密钥分量。
13.在其中一个实施例中,将第一临时密钥分量拆分得到至少一个指定参与的密钥分量,包括:
14.随机构建第二多项式;
15.基于第二多项式,对第一临时密钥分量按照指定参与的密钥分量的数量m进行拆分,得到m个指定参与的密钥分量,m为大于或等于1的自然数,且小于k,k为最少需要的密钥分量的数量。
16.在其中一个实施例中,将第二临时密钥分量拆分得到非指定参与的密钥分量,包括:
17.随机构建第三多项式;
18.基于第三多项式,对第二临时密钥分量按照非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m)进行拆分,得到(n-m)个非指定参与的密钥分量;其中指定参与的密钥分量的数量m大于0小于最少参与的密钥分量的数量k,最少参与的密钥分量的数量k小于所有密钥分量的数量n。
19.在其中一个实施例中,密钥生成方法还包括:
20.在指定参与的密钥分量的数量为0的情况下,对密文按照最少需要的密钥分量的数量k、所有密钥分量的数量n进行拆分。
21.第二方面,本技术提供了一种密钥解密方法。所述方法包括:
22.基于m个指定参与的密钥分量,得到第一临时密钥分量;
23.基于k-m个最少参与的非指定参与的密钥分量,得到第二临时密钥分量;
24.基于第一临时密钥分量和第二临时密钥分量,恢复密文,其中m为大于或等于1的自然数,且小于k,所述k为最少需要的密钥分量的数量。
25.在其中一个实施例中,在基于m个指定参与的密钥分量,得到第一临时密钥分量之前,还包括:
26.校验所有密钥分量中是否存在k个最少需要的密钥分量,若存在,则校验k个所述最少需要的密钥分量中是否存在m个指定参与的密钥分量;
27.若存在m个指定参与的密钥分量,则执行所述基于m个指定参与的密钥分量,得到第一临时密钥分量的步骤。
28.第三方面,本技术还提供了一种密钥生成装置。所述装置包括:
29.第一拆分模块,用于将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成;
30.第二拆分模块,用于将第一临时密钥分量拆分得到至少一个指定参与的密钥分量;
31.第三拆分模块,用于将第二临时密钥分量拆分得到非指定参与的密钥分量;
32.合并模块,用于合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有参与密钥分量。
33.第四方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
34.将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成;
35.将第一临时密钥分量拆分得到至少一个指定参与的密钥分量;
36.将第二临时密钥分量拆分得到非指定参与的密钥分量;
37.合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有密钥分量。
38.第五方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
39.将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成;
40.将第一临时密钥分量拆分得到至少一个指定参与的密钥分量;
41.将第二临时密钥分量拆分得到非指定参与的密钥分量;
42.合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有密钥分量。
43.上述密钥生成及密钥解密方法、装置、计算机设备和存储介质。在密钥生成阶段,通过将密文拆分为指定参与的密钥分量组成的第一临时密钥分量和非指定参与的密钥分量组成的第二临时密钥分量;将第一临时密钥分量拆分为指定参与的密钥分量,将第二临时密钥分量拆分得到非指定参与的密钥分量,合并拆分后的指定参与密钥分量和非指定参与的密钥分量,形成存在指定参与密钥分量的所有密钥分量的集合,在秘密分割时实现了区分指定参与的密钥分量。在密钥解密阶段,通过基于m个指定参与的密钥分量,得到第一临时密钥分量;基于k-m个最少参与的非指定参与的密钥分量,得到第二临时密钥分量;基于第一临时密钥分量和第二临时密钥分量,恢复密文。将所有密钥分量分发给对应的密钥持有者,指定参与的密钥分量的持有者在恢复密文的进行数据协作时的优先级高于非指定参与的密钥分量的持有者,实现在数据的联合授权的情况下,能够指定必须参与方参与秘密恢复的过程,确定数据优先级,提高数据协作的可控性。
附图说明
44.图1为一个实施例中密钥生成方法的应用环境图;
45.图2为一个实施例中密钥生成方法的流程示意图;
46.图3为一个实施例中将密文拆分为第一临时密钥分量和第二临时密钥分量的流程示意图;
47.图4为另一个实施例中将所述第一临时密钥分量拆分得到至少一个指定参与的密钥分量的流程示意图;
48.图5为另一个实施例中将所述第二临时密钥分量拆分得到非指定参与的密钥分量的流程示意图;
49.图6为一个实施例中密钥解密方法的流程示意图;
50.图7为一个实施例中密钥生成方法的流程图;
51.图8为一个实施例中密钥解密方法的流程图;
52.图9为一个实施例中密钥生成装置的结构框图;
53.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
54.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
55.本技术实施例提供的密钥生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与
的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成;将第一临时密钥分量拆分得到至少一个指定参与的密钥分量;将第二临时密钥分量拆分得到非指定参与的密钥分量;合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有密钥分量。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
56.在一个实施例中,如图2所示,提供了一种密钥生成方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤s202到步骤s208:
57.步骤s202,将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成。
58.其中,密文是指密文是由密码系统产生的报文和信号,是一种隐私数据。秘密拆分是一种密码学技术,用于将一个秘密拆分成多个部分,使得只有在满足特定条件下,才能将这些部分重新组合还原为完整的秘密。将密文(secret,s)按照字节(byte)来拆分,即字节是秘密拆分的最小单位,每个字节能表示的范围是[0-255),构造1字节的伽罗华域(galois field,gf,有限域)gf(256)有限域上的加减乘除,这样就可以使用有限域gf(256)作为生成密钥算法的有限域,秘密拆分长度从1字节扩展到任意字节长度。密钥分量也可以叫密钥分片,将密钥分量分发给不同的持有者,在满足特定条件下,将不同的持有者持有的密钥分量重新组合才能得到完整的秘密。
[0059]
第一临时密钥分量和第二临时密钥分量是秘密拆分形成的中间密钥,需要对中间密钥继续加密得到最终的全部密钥分量。第一临时密钥分量指由指定参与的密钥分量组成的中间密钥;第二临时密钥分量是指非指定参与的密钥分量组成的中间密钥。指定参与的密钥分量是指必须参与密钥恢复密文过程中的隐私数据;非指定参与的密钥分量是指不一定会参与密钥恢复密文过程中的隐私数据;从非指定参与的密钥分量中选择出参与密钥恢复密文过程中的隐私数据。
[0060]
定义一个有限域f,a和b属于有限域中的元素,满足:
[0061][0062]
其中(1)描述了加法与乘法的封闭性,(2),(3),(4)则是交换律、结合律和分配律,而(4),(5)分别是对单位元与逆元的定义。在上述定义的有限域内对密文按照字节进行拆分计算。
[0063]
密文在满足全部指定参与的密钥分量参与计算的同时选择满足一定条件的非指定参与的密钥分量参与计算才能恢复为完整的秘密。
[0064]
可选地,处理器可以将密钥分量进行分类,分为指定参与的密钥分量和非指定参
与的密钥分量两类,按照两种类型的密钥分量对密文在有限域内进行拆分。将密文拆解两个分块,第一临时密钥分量和第二临时密钥分量,每个分块都处于属于某个固定的有限域内。以每个分块作为分割密钥的内容,可以利用固定的有限域实现算法。
[0065]
步骤s204,将第一临时密钥分量拆分得到至少一个指定参与的密钥分量。
[0066]
可选地,处理器可以将第一临时密钥分量拆分为多个指定参与的密钥分量,指定参与的密钥分量的数量为至少一个。
[0067]
步骤s206,将第二临时密钥分量拆分得到非指定参与的密钥分量。
[0068]
可选地,处理器可以将第二临时密钥分量拆分得到多个非指定参与的密钥分量。
[0069]
步骤s208,合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有密钥分量。
[0070]
可选地,处理器可以将拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量合并起来,形成一个存在所有密钥分量的集合。此时密钥分量的集合中存在了指定参与的密钥分量和非指定参与的密钥分量,在秘密恢复时,在满足解密条件下,选取所有指定参与的密钥分量和一部分非指定参与的密钥分量进行计算来恢复密文。
[0071]
上述密钥生成方法中,通过将密文拆分为指定参与的密钥分量组成的第一临时密钥分量和非指定参与的密钥分量组成的第二临时密钥分量;将第一临时密钥分量拆分为指定参与的密钥分量,将第二临时密钥分量拆分得到非指定参与的密钥分量,合并拆分后的指定参与密钥分量和非指定参与的密钥分量,形成存在指定参与密钥分量的所有密钥分量的集合,在秘密分割时实现了区分指定参与的密钥分量,将所有密钥分量分发给对应的密钥持有者,相应的出现了指定参与的密钥分量的持有者,能够提高数据协作的可控性。
[0072]
在一个实施例中,如图3所示,将密文拆分为第一临时密钥分量和第二临时密钥分量,包括:
[0073]
步骤s302,随机构建第一多项式。
[0074]
假设s为秘密,a0,...a
k-1
,为gf(256)上的常量,存在唯一的次数不超过(k-1)的抛物线公式:,使得通过平面上任意的k个点可计算出任意的。
[0075]
可选地,处理器可以在有限域内随机构建第一多项式:
[0076]
。
[0077]
步骤s304,基于第一多项式,对密文按照指定参与的密钥分量和非指定参与的密钥分量两种类型进行拆分,得到第一临时密钥分量和第二临时密钥分量。
[0078]
可选地,基于第一多项式,对密文按照指定参与的密钥分量和非指定参与的密钥分量两种类型进行拆分,即对密文按照(2,2)门限方案进行分割,基于第一多项式,取两个数x
1 x2分别代入第一多项式中,计算得到两个密钥分量ts1(x1,f1(x1))和ts2(x2,f1(x2)),密钥分量以密钥对的形式呈现,即第一临时密钥分量ts1(x1,f1(x1))和第二临时密钥分量ts2(x2,f1(x2))。在得到第一临时密钥分量和第二临时密钥分量之后,对第一多项式进行销毁。
[0079]
其中,门限方案是通过构造一个(k-1)次多项式,并将需共享的秘密作为该多项式
的常数项,将秘密分成n部分分别给n个参与者,使k个参与者联合可恢复秘密,但少于k个参与者联合不能得到共享秘密的任何信息。k为大于或等于1的自然数。
[0080]
本实施例中,根据密钥分量的类型将密钥分为指定参与的密钥分量和非指定参与的密钥分量,通过代入第一多项式能够得到第一临时密钥分量和第二临时密钥分量。
[0081]
在一个实施例中,如图4所示,将第一临时密钥分量拆分得到至少一个指定参与的密钥分量,包括:
[0082]
步骤s402,随机构建第二多项式。
[0083]
可选地,处理器可以在有限域内随机构建第二多项式:
[0084]
,其中f1(x1)是第一临时密钥分量对应的函数值,基于第一多项式计算得出的值f1(x1)。
[0085]
步骤s404,基于第二多项式,对第一临时密钥分量按照指定参与的密钥分量的数量m进行拆分,得到m个指定参与的密钥分量,m为大于或等于1的自然数,且小于k,k为最少需要的密钥分量的数量。
[0086]
可选地,基于第二多项式,对第一临时密钥分量按照指定参与的密钥分量的数量m进行拆分,即对密文按照(m,m)门限方案进行分割,基于第二多项式,取m个数,x
1 x
2 ...
xm分别代入第二多项式中,计算得到m个指定参与的密钥分量(x1,f2(x1)),(x2,f2(x2)),...,(xm,f2(xm)),密钥分量以密钥对的形式呈现。在得到m个指定的密钥分量之后,对第二多项式进行销毁,并将m个密钥分量分发给指定密钥持有者。
[0087]
本实施例中,根据指定参与的密钥分量的数量,通过代入第二多项式能够得到m个指定参与的密钥分量。
[0088]
在一个实施例中,如图5所示,将第二临时密钥分量拆分得到非指定参与的密钥分量,包括:
[0089]
步骤s502,随机构建第三多项式。
[0090]
可选地,处理器可以在有限域内随机构建第三多项式:
[0091]
,其中f1(x2)是第二临时密钥分量x2对应的函数值,基于第一多项式计算得出的值f1(x2)。
[0092]
步骤s504,基于第三多项式,对第二临时密钥分量按照非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m)进行拆分,得到(n-m)个非指定参与的密钥分量;其中指定参与的密钥分量的数量m大于0小于最少参与的密钥分量的数量k,最少参与的密钥分量的数量k小于所有密钥分量的数量n。
[0093]
可选地,基于第三多项式,对第二临时密钥分量按照非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m)进行拆分,即对密文按照(k-m,n-m)门限方案进行分割,基于第三多项式,取(n-m)个数,x
m+1 x
m+2...
xn分别代入第三多项式中,计算得到(n-m)个非指定参与的密钥分量(x
m+1
,f3(x
m+1
)),(x
m+2
,f3(x
m+2
))...(xn,f3(xn)),密钥分量以密钥对的形式呈现。在得到(n-m)个指定的密钥分量之后,对第二多项式进行销毁,并将(n-m)个密钥分量分发给非指定密钥持有者。
[0094]
本实施例中,根据非指定参与的密钥分量的数量,通过代入第三多项式能够得到(n-m)个指定参与的密钥分量。
[0095]
在一个实施例中,上述密钥生成方法还包括:
[0096]
在指定参与的密钥分量的数量为0的情况下,对密文按照最少需要的密钥分量的数量k、所有密钥分量的数量n进行拆分。
[0097]
可选地,在指定参与的密钥分量的数量m=0时,处理器可以按照(k,n)门限方案对密文进行拆分,共拆分为n个密钥分量,必须存在至少k个密钥分量才能对密文进行恢复。
[0098]
本实施例中,在没有指定参与的密钥分量的情况下,按照(k,n)门限方案对密文进行拆分。
[0099]
在一个实施例中,如图6所示,密钥解密方法,包括:
[0100]
步骤s602,基于m个指定参与的密钥分量,得到第一临时密钥分量。
[0101]
可选地,处理器从所有密钥分量中选取所有指定参与的密钥分量m,基于m个密钥分量计算可以得到第一临时密钥分量。m是大于等于1的自然数。
[0102]
将m个密钥分量代入第二多项式,其中
[0103]
p
m-1
(x)是的变形。
[0104]
取x=0,可以计算出第一临时密钥分量的值。
[0105]
步骤s604,基于(k-m)个最少参与的非指定参与的密钥分量,得到第二临时密钥分量。
[0106]
其中,m为大于或等于1的自然数,且小于k,所述k为最少需要的密钥分量的数量。
[0107]
从(n-m)个非指定参与的密钥分量中选取(k-m)个最少参与的非指定参与的密钥分量,代入第三多项式,其中pk(x)是的变形。
[0108]
取x=0,可以计算出第二临时密钥分量的值。
[0109]
步骤s606,基于第一临时密钥分量和第二临时密钥分量,恢复密文。
[0110]
将第一临时密钥分量(x1,f2(x1))和第二临时密钥分量(x2,f1(x2))代入第一多项式,p2(x)是的变形。
[0111]
取x=0,可以计算出原始秘密。
[0112]
本实施例中,指定参与的密钥分量的持有者在恢复密文的进行数据协作时的优先级高于非指定参与的密钥分量的持有者,实现在数据的联合授权的情况下,能够指定必须参与方参与秘密恢复的过程,确定数据优先级,提高数据协作的可控性。
[0113]
在一个实施例中,密钥解密方法,在基于m个指定参与的密钥分量,得到第一临时密钥分量之前,还包括:
[0114]
校验所有密钥分量中是否存在k个最少需要的密钥分量,若存在,则校验k个最少需要的密钥分量中是否存在m个指定参与的密钥分量。
[0115]
可选地,处理器在恢复密文之前,需要对密钥分量的数量进行校验。首先校验密钥分量中是否存在k个最少需要的密钥分量,若不存在,则表示当前无法恢复密文;若存在,则进一步校验k个最少需要的密钥分量中是否存在m个指定参与的密钥分量,若不存在,则表示当前无法恢复密文;若存在,则可以进行密钥解密的过程。
[0116]
本实施例中,通过预先判断是否存在合法的密钥分量数量,在合法的情况下,能够精准的实现密钥的解密和恢复。
[0117]
下面结合一个示例来说明密钥生成阶段和密钥解码过程:
[0118]
密钥生成阶段,如图7所示,将密文s(m,k,n)拆分,其中:必须参与计算的密钥分量数量;k是最少需要的密钥分量份数;n是全部的密钥分量。首先判断是否存在必须参与计算的密钥分量,即判断m是否大于0,当m大于0时,对密文进行(2,2)拆分,得到第一临时分量ts1和第二临时分量ts2。对第一临时分量ts1(m,m)拆分,得到s1,s2...sm密钥分量;对第二临时分量ts2(k-m,n-m)拆分,得到s
m+1
...sn密钥分量;将密钥分量s1,s2...sm和s
m+1
...sn合并,得到n个密钥分量,s1...sn。具体步骤为随机构建第一多项式,其中x为0时,可计算出所述密文;基于所述第一多项式,对所述密文按照所述指定参与的密钥分量和所述非指定参与的密钥分量两种类型(2,2)门限方案进行拆分,得到代入所述第一临时密钥分量ts1和所述第二临时密钥分量ts2。
[0119]
随机构建第二多项式,其中x为0时,可计算出所述第一临时密钥分量ts1;基于所述第二多项式,对所述第一临时密钥分量按照所述指定参与的密钥分量的数量m,即按照(m,m)门限方案进行拆分,得到m个指定参与的密钥分量,m为大于或等于1的自然数,且小于k,所述k为最少需要的密钥分量的数量。
[0120]
随机构建第三多项式,其中x为0时,可计算出所述第二临时密钥分量ts2,基于所述第三多项式,对所述第二临时密钥分量按照所述非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m),即按照(k-m,n-m)门限进行拆分,得到(n-m)个非指定参与的密钥分量;其中指定参与的密钥分量的数量m大于0小于最少参与的密钥分量的数量k,最少参与的密钥分量的数量k小于所有密钥分量的数量n。
[0121]
合并拆分得到的m个指定参与的密钥分量和拆分得到的n-m个非指定参与的密钥分量,得到所有密钥分量。将m个指定参与的密钥分量分发给m个持有者,这m个持有者在密文恢复阶段,必须贡献自己持有的密钥分量,否则密文无法恢复。将n-m个指定参与的密钥分量分发给n-m个持有者,密文恢复阶段,从n-m个持有者中选取k-m个持有者贡献持有的密钥分量,与m个指定参与的密钥分量共同计算才能恢复密文。
[0122]
密钥解密阶段,如图8所示,n个密钥分量s1...sn的恢复,首先校验分量是否合法,即判断所有密钥分量中是否存在k个最少需要的密钥分量,若存在,则校验k个所述最少需要的密钥分量中是否存在m个指定参与的密钥分量;若存在m个指定参与的密钥分量,则执行取m个密钥分量s1,s2...sm代入对应的多项式中计算第一临时分量ts1,取(k-m)个密钥分
量s
m+1
...sn代入对应的多项式中计算第二临时分量ts2,再将第一临时分量ts1和第二临时分量ts2代入对应的多项式中即可恢复密文s。
[0123]
具体步骤为:将m个密钥分量代入第二多项式,其中p
m-1
(x)是的变形。取x=0,可以计算出第一临时密钥分量的值。
[0124]
从(n-m)个非指定参与的密钥分量中选取(k-m)个最少参与的非指定参与的密钥分量,代入第三多项式,其中pk(x)是的变形。取x=0,可以计算出第二临时密钥分量的值。
[0125]
将第一临时密钥分量(x1,f1(x1))和第二临时密钥分量(x2,f1(x2))代入第一多项式,p2(x)是的变形。取x=0,可以计算出原始秘密。
[0126]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0127]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的密钥生成方法的密钥生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个密钥生成装置实施例中的具体限定可以参见上文中对于密钥生成方法的限定,在此不再赘述。
[0128]
在一个实施例中,如图9所示,提供了一种密钥生成装置,包括:第一拆分模块901、第二拆分模块902、第三拆分模块903和合并模块904,其中:
[0129]
第一拆分模块901,用于将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成。
[0130]
第二拆分模块902,用于将第一临时密钥分量拆分得到至少一个指定参与的密钥分量。
[0131]
第三拆分模块903,用于将第二临时密钥分量拆分得到非指定参与的密钥分量。
[0132]
合并模块904,用于合并拆分得到的指定参与的密钥分量和拆分得到的非指定参
与的密钥分量,得到所有参与密钥分量。
[0133]
在一个实施例中,第一拆分模块901,包括:
[0134]
第一公式构建单元,用于随机构建第一多项式。
[0135]
第一拆分单元,用于基于第一多项式,对密文按照指定参与的密钥分量和非指定参与的密钥分量两种类型进行拆分,得到第一临时密钥分量和第二临时密钥分量。
[0136]
在一个实施例中,第二拆分模块902,包括:
[0137]
第二公式构建单元,用于随机构建第二多项式。
[0138]
第二拆分单元,用于基于第二多项式,对第一临时密钥分量按照指定参与的密钥分量的数量m进行拆分,得到m个指定参与的密钥分量,m为大于或等于1的自然数,且小于k,k为最少需要的密钥分量的数量。
[0139]
在一个实施例中,第三拆分模块903,包括:
[0140]
第三公式构建单元,用于随机构建第三多项式;
[0141]
第三拆分单元,用于基于第三多项式,对第二临时密钥分量按照非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m)进行拆分,得到(n-m)个非指定参与的密钥分量;其中指定参与的密钥分量的数量m大于0小于最少参与的密钥分量的数量k,最少参与的密钥分量的数量k小于所有密钥分量的数量n。
[0142]
在一个实施例中,密钥生成装置,还包括:
[0143]
第四拆分单元,用于在指定参与的密钥分量的数量为0的情况下,对密文按照最少需要的密钥分量的数量k、所有密钥分量的数量n进行拆分。
[0144]
在一个实施例中,提供了一种密钥解密装置,包括:第一计算模块、第二计算模块和第三计算模块,其中:
[0145]
第一计算模块,用于基于m个指定参与的密钥分量,得到第一临时密钥分量;
[0146]
第二计算模块,用于基于k-m个最少参与的非指定参与的密钥分量,得到第二临时密钥分量;
[0147]
第三计算模块,用于基于第一临时密钥分量和第二临时密钥分量,恢复密文。
[0148]
在一个实施例中,密钥解密装置,还包括:
[0149]
判断模块,用于校验所有密钥分量中是否存在k个最少需要的密钥分量,若存在,则校验k个所述最少需要的密钥分量中是否存在m个指定参与的密钥分量;若存在m个指定参与的密钥分量,则执行所述基于m个指定参与的密钥分量,得到第一临时密钥分量的步骤。
[0150]
上述密钥生成装置和密钥解密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0151]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储
有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储密文及密钥分量数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种密钥生成方法。
[0152]
本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0153]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0154]
将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成;
[0155]
将第一临时密钥分量拆分得到至少一个指定参与的密钥分量;
[0156]
将第二临时密钥分量拆分得到非指定参与的密钥分量;
[0157]
合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有密钥分量。
[0158]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0159]
随机构建第一多项式;基于第一多项式,对密文按照指定参与的密钥分量和非指定参与的密钥分量两种类型进行拆分,得到第一临时密钥分量和第二临时密钥分量。在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0160]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0161]
随机构建第二多项式;基于第二多项式,对第一临时密钥分量按照指定参与的密钥分量的数量m进行拆分,得到m个指定参与的密钥分量,m为大于或等于1的自然数,且小于k,k为最少需要的密钥分量的数量。
[0162]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0163]
随机构建第三多项式;基于第三多项式,对第二临时密钥分量按照非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m)进行拆分,得到(n-m)个非指定参与的密钥分量;其中指定参与的密钥分量的数量m大于0小于最少参与的密钥分量的数量k,最少参与的密钥分量的数量k小于所有密钥分量的数量n。
[0164]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0165]
在指定参与的密钥分量的数量为0的情况下,对密文按照最少需要的密钥分量的数量k、所有密钥分量的数量n进行拆分。
[0166]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0167]
基于m个指定参与的密钥分量,得到第一临时密钥分量;
[0168]
基于k-m个最少参与的非指定参与的密钥分量,得到第二临时密钥分量;
[0169]
基于第一临时密钥分量和第二临时密钥分量,恢复密文。
[0170]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0171]
校验所有密钥分量中是否存在k个最少需要的密钥分量,若存在,则校验k个所述最少需要的密钥分量中是否存在m个指定参与的密钥分量;若存在m个指定参与的密钥分
量,则执行所述基于m个指定参与的密钥分量,得到第一临时密钥分量的步骤。
[0172]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0173]
将密文拆分为第一临时密钥分量和第二临时密钥分量;第一临时密钥分量由指定参与的密钥分量组成;第二临时密钥分量由非指定参与的密钥分量组成;
[0174]
将第一临时密钥分量拆分得到至少一个指定参与的密钥分量;
[0175]
将第二临时密钥分量拆分得到非指定参与的密钥分量;
[0176]
合并拆分得到的指定参与的密钥分量和拆分得到的非指定参与的密钥分量,得到所有密钥分量。
[0177]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0178]
随机构建第一多项式;基于第一多项式,对密文按照指定参与的密钥分量和非指定参与的密钥分量两种类型进行拆分,得到第一临时密钥分量和第二临时密钥分量。
[0179]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0180]
随机构建第二多项式;基于第二多项式,对第一临时密钥分量按照指定参与的密钥分量的数量m进行拆分,得到m个指定参与的密钥分量,m为大于或等于1的自然数,且小于k,k为最少需要的密钥分量的数量。
[0181]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0182]
随机构建第三多项式;基于第三多项式,对第二临时密钥分量按照非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m)进行拆分,得到(n-m)个非指定参与的密钥分量;其中指定参与的密钥分量的数量m大于0小于最少参与的密钥分量的数量k,最少参与的密钥分量的数量k小于所有密钥分量的数量n。
[0183]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0184]
在指定参与的密钥分量的数量为0的情况下,对密文按照最少需要的密钥分量的数量k、所有密钥分量的数量n进行拆分。
[0185]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0186]
基于m个指定参与的密钥分量,得到第一临时密钥分量;
[0187]
基于k-m个最少参与的非指定参与的密钥分量,得到第二临时密钥分量;
[0188]
基于第一临时密钥分量和第二临时密钥分量,恢复密文。
[0189]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0190]
校验所有密钥分量中是否存在k个最少需要的密钥分量,若存在,则校验k个所述最少需要的密钥分量中是否存在m个指定参与的密钥分量;若存在m个指定参与的密钥分量,则执行所述基于m个指定参与的密钥分量,得到第一临时密钥分量的步骤。
[0191]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器
(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0192]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0193]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
技术特征:
1.一种密钥生成方法,其特征在于,所述方法包括:将密文拆分为第一临时密钥分量和第二临时密钥分量;所述第一临时密钥分量由指定参与的密钥分量组成;所述第二临时密钥分量由非指定参与的密钥分量组成;将所述第一临时密钥分量拆分得到至少一个指定参与的密钥分量;将所述第二临时密钥分量拆分得到非指定参与的密钥分量;合并拆分得到的所述指定参与的密钥分量和拆分得到的所述非指定参与的密钥分量,得到所有密钥分量。2.根据权利要求1所述的方法,其特征在于,所述将密文拆分为第一临时密钥分量和第二临时密钥分量,包括:随机构建第一多项式;基于所述第一多项式,对所述密文按照所述指定参与的密钥分量和所述非指定参与的密钥分量两种类型进行拆分,得到所述第一临时密钥分量和所述第二临时密钥分量。3.根据权利要求1所述的方法,其特征在于,所述将所述第一临时密钥分量拆分得到至少一个指定参与的密钥分量,包括:随机构建第二多项式;基于所述第二多项式,对所述第一临时密钥分量按照所述指定参与的密钥分量的数量m进行拆分,得到m个指定参与的密钥分量,m为大于或等于1的自然数,且小于k,所述k为最少需要的密钥分量的数量。4.根据权利要求1所述的方法,其特征在于,所述将所述第二临时密钥分量拆分得到非指定参与的密钥分量,包括:随机构建第三多项式;基于所述第三多项式,对所述第二临时密钥分量按照所述非指定参与的密钥分量的数量(n-m)、最少参与的非指定参与的密钥分量的数量(k-m)进行拆分,得到(n-m)个非指定参与的密钥分量;其中指定参与的密钥分量的数量m大于0小于最少参与的密钥分量的数量k,最少参与的密钥分量的数量k小于所有密钥分量的数量n。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:在所述指定参与的密钥分量的数量为0的情况下,对所述密文按照最少需要的密钥分量的数量k、所有密钥分量的数量n进行拆分;其中k是小于n,大于1的自然数。6.一种密钥解密方法,其特征在于,所述方法包括:基于m个指定参与的密钥分量,得到第一临时密钥分量;基于(k-m)个最少参与的非指定参与的密钥分量,得到第二临时密钥分量;基于所述第一临时密钥分量和所述第二临时密钥分量,恢复密文;其中m为大于或等于1的自然数,且小于k,所述k为最少需要的密钥分量的数量。7.根据权利要求6所述的方法,其特征在于,在所述基于m个指定参与的密钥分量,得到第一临时密钥分量之前,还包括:校验所有密钥分量中是否存在k个最少需要的密钥分量,若存在,则校验k个所述最少需要的密钥分量中是否存在m个指定参与的密钥分量;若存在m个指定参与的密钥分量,则执行所述基于m个指定参与的密钥分量,得到第一临时密钥分量的步骤。
8.一种密钥生成装置,其特征在于,所述装置包括:第一拆分模块,用于将密文拆分为第一临时密钥分量和第二临时密钥分量;所述第一临时密钥分量由指定参与的密钥分量组成;所述第二临时密钥分量由非指定参与的密钥分量组成;第二拆分模块,用于将所述第一临时密钥分量拆分得到至少一个指定参与的密钥分量;第三拆分模块,用于将所述第二临时密钥分量拆分得到非指定参与的密钥分量;合并模块,用于合并拆分得到的所述指定参与的密钥分量和拆分得到的所述非指定参与的密钥分量,得到所有参与密钥分量。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
技术总结
本申请涉及一种密钥生成方法、装置、计算机设备和存储介质。所述方法包括:将密文拆分为第一临时密钥分量和第二临时密钥分量;所述第一临时密钥分量由指定参与的密钥分量组成;所述第二临时密钥分量由非指定参与的密钥分量组成;将所述第一临时密钥分量拆分得到至少一个指定参与的密钥分量;将所述第二临时密钥分量拆分得到非指定参与的密钥分量;合并拆分得到的所述指定参与的密钥分量和拆分得到的所述非指定参与的密钥分量,得到所有密钥分量。采用本方法实现在数据的联合授权的情况下,能够在秘密分割的过程形成包含指定参与的密钥分量的全部密钥分量,确定数据优先级,提高数据协作的可控性。高数据协作的可控性。高数据协作的可控性。
技术研发人员:罗星 谢坚 何涛 张立杰
受保护的技术使用者:深圳竹云科技股份有限公司
技术研发日:2023.08.14
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种乳酸菌分离筛选培养装置 下一篇:一种快速获得荷兰鸢尾后代幼苗及优异种球的方法