CN117955639A - 一种密钥保存、密钥分发方法、装置、设备及介质 - Google Patents
一种密钥保存、密钥分发方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117955639A CN117955639A CN202211344644.3A CN202211344644A CN117955639A CN 117955639 A CN117955639 A CN 117955639A CN 202211344644 A CN202211344644 A CN 202211344644A CN 117955639 A CN117955639 A CN 117955639A
- Authority
- CN
- China
- Prior art keywords
- target
- value
- key
- natural number
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004321 preservation Methods 0.000 title claims description 13
- 238000009826 distribution Methods 0.000 title claims description 12
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012216 screening Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 238000012795 verification Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种密钥保存、密钥分发方法、装置、设备及介质。由于在本申请实施例中,服务器在生成第一目标密钥之后,先根据该第一目标密钥生成第一预设数量个为坐标值的子密钥,并分别发送给第一预设数量个目标设备,后续在对基于该第一目标密钥加密的目标数据进行解密时,即使用户不慎丢失第一目标密钥,也可以接收各个目标设备分别发送的为坐标值的子密钥,基于每个子密钥以及拉格朗日多项式插值算法,生成第一目标密钥,最后基于第一目标密钥对该目标数据进行解密,不会影响对目标数据的解密和访问,避免产生不可挽回的损失。
Description
技术领域
本申请涉及安全技术领域,尤其涉及一种密钥保存、密钥分发方法、装置、设备及介质。
背景技术
在一些对数据安全要求较高的场景下,用户希望自己的家庭数据能够得到较高级别的安全防护,不希望其他成员获取家庭数据,此时,就需要对家庭数据进行访问控制。
现有技术中,一般是基于密钥对家庭数据进行加密,获得目标数据的,以保护家庭数据的安全性,但是若用户不慎丢失密钥,则会无法基于密钥对目标数据进行解密,进而无法访问解密后获得的家庭数据,造成不可挽回的损失。
发明内容
本申请提供了一种密钥保存方法、装置、设备及介质,用以解决现有技术中密钥丢失时无法解密基于该密钥加密的目标数据,造成不可挽回的损失的问题。
本申请实施例提供了一种密钥保存方法,所述方法包括:
接收用户选择的待解密的目标数据;
分别向第一预设数量个目标设备中每个所述目标设备发送获得所述目标数据对应的子密钥的指令;
接收每个所述目标设备分别发送的所述目标数据对应的为坐标值的子密钥;其中,所述服务器根据第一目标密钥生成所述第一预设数量个为坐标值的子密钥且将所述第一预设数量个子密钥分别发送给各个所述目标设备;
基于每个所述为坐标值的子密钥以及拉格朗日多项式插值算法,获得所述第一目标密钥,基于所述第一目标密钥对所述目标数据进行解密。
本申请实施例还提供了一种密钥分发方法,所述方法包括:
接收服务器发送的获得目标数据对应的子密钥的指令;
确定预先保存的所述目标数据对应的为坐标值的子密钥;其中,所述为坐标值的子密钥为接收的所述服务器生成的,并保存的子密钥;
将所述为坐标值的子密钥发送给所述服务器。
本申请实施例还提供了一种密钥保存装置,所述装置包括:
第一接收模块,用于接收用户选择的待解密的目标数据;
第一发送模块,用于分别向第一预设数量个目标设备中每个所述目标设备发送获得所述目标数据对应的子密钥的指令;
所述第一接收模块,还用于接收每个所述目标设备分别发送的所述目标数据对应的为坐标值的子密钥;其中,所述服务器根据第一目标密钥生成所述第一预设数量个为坐标值的子密钥且将所述第一预设数量个子密钥分别发送给各个所述目标设备;
处理模块,用于基于每个所述为坐标值的子密钥以及拉格朗日多项式插值算法,获得所述第一目标密钥,基于所述第一目标密钥对所述目标数据进行解密。
本申请实施例还提供了一种密钥分发装置,所述装置包括:
第二接收模块,用于接收服务器发送的获得目标数据对应的子密钥的指令;
确定模块,用于确定预先保存的所述目标数据对应的为坐标值的子密钥;其中,所述为坐标值的子密钥为接收的所述服务器生成的,并保存的子密钥;
第二发送模块,用于将所述为坐标值的子密钥发送给所述服务器。
本申请实施例还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述密钥保存方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一所述密钥保存方法的步骤。
本申请实施例还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述密钥分发方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一所述密钥分发方法的步骤。
在本申请实施例中,接收用户选择的待解密的目标数据,分别向第一预设数量个目标设备中每个目标设备发送获得目标数据对应的子密钥的指令,接收每个目标设备分别发送的目标数据对应的为坐标值的子密钥,其中,服务器根据第一目标密钥生成第一预设数量个为坐标值的子密钥且将第一预设数量个子密钥分别发送给各个目标设备,基于每个为坐标值的子密钥以及拉格朗日多项式插值算法,获得第一目标密钥,基于第一目标密钥对目标数据进行解密。由于在本申请实施例中,服务器在生成第一目标密钥之后,先根据该第一目标密钥生成第一预设数量个为坐标值的子密钥,并分别发送给第一预设数量个目标设备,后续在对基于该第一目标密钥加密的目标数据进行解密时,即使用户不慎丢失第一目标密钥,也可以接收各个目标设备分别发送的为坐标值的子密钥,基于每个子密钥以及拉格朗日多项式插值算法,生成第一目标密钥,最后基于第一目标密钥对该目标数据进行解密,不会影响对目标数据的解密和访问,避免产生不可挽回的损失。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种密钥保存过程示意图;
图2为本申请一些实施例提供的一种基于Pedersen方法进行验证的过程示意图;
图3为本申请一些实施例提供的一种Shamir门限的原理示意图;
图4为本申请一些实施例提供的一种获得子密钥以及基于子密钥生成第一目标密钥的过程示意图;
图5为本申请一些实施例提供的另一种获得子密钥以及基于子密钥生成第一目标密钥的过程示意图;
图6为本申请一些实施例提供的一种数据加解密的过程示意图;
图7为本申请实施例提供的一种密钥保存过程示意图;
图8为本申请一些实施例提供的一种服务器和目标设备的功能结构示意图;
图9为本申请一些实施例提供的一种密钥保存装置结构示意图;
图10为本申请一些实施例提供的一种密钥分发装置结构示意图;
图11为本申请实施例提供的一种电子设备结构示意图;
图12为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了保证密钥丢失时也可以解密基于该密钥加密的目标数据,提高用户的体验,本申请实施例提供了一种密钥保存方法、装置、设备及介质。
在本申请实施例中,接收用户选择的待解密的目标数据,分别向第一预设数量个目标设备中每个目标设备发送获得目标数据对应的子密钥的指令,接收每个目标设备分别发送的目标数据对应的为坐标值的子密钥,其中,服务器根据第一目标密钥生成第一预设数量个为坐标值的子密钥且将第一预设数量个子密钥分别发送给各个目标设备,基于每个为坐标值的子密钥以及拉格朗日多项式插值算法,获得第一目标密钥,基于第一目标密钥对目标数据进行解密。
图1为本申请实施例提供的一种密钥保存过程示意图,该过程包括以下步骤:
S101:接收用户选择的待解密的目标数据。
本申请实施例提供的密钥保存方法应用于服务器。
为了准确的确定对哪个数据进行解密,服务器可以接收用户选择的待解密的目标数据,其中,该待解密的目标数据可以为1个,也可以为多个。
S102:分别向第一预设数量个目标设备中每个所述目标设备发送获得所述目标数据对应的子密钥的指令。
为了保证即使用户丢失密钥时,也可以访问基于密钥加密的数据,在本申请实施例中,预先针对每个加密的数据,基于该加密的数据对应的密钥生成了第一预设数量个该加密的数据对应的子密钥,并将第一预设数量个该加密的数据对应的子密钥分别发送到第一预设数量个目标设备。其中,一个子密钥发送给一个目标设备;其中,不同的加密的数据对应的密钥可能相同,也可能不相同;其中,该第一预设数量可以为2个、3个、4个等等,具体的,该第一预设数量可以根据需求进行设置。其中,该目标设备可以为智能终端、PC等等。
针对每个目标设备,该目标设备在接收到服务器发送的各个加密的数据对应的子密钥后,将接收到的各个加密的数据对应的子密钥进行保存,以使得后续在存在对加密的数据进行解密的需求时,服务器可以获得各个目标设备保存的加密的数据对应的子密钥,进而基于加密的数据对应的每个子密钥生成加密的数据对应的密钥,最后基于该密钥对加密的数据进行解密。
在本申请实施例中,服务器在接收到用户选择的待解密的目标数据之后,为了对该目标数据进行解密,服务器获得第一预设数量个每个目标设备中保存该目标数据对应的子密钥,为了获得每个目标设备中保存的该目标数据的子密钥,服务器分别向第一预设数量个目标设备中每个目标设备发送获得该目标数据对应的子密钥的指令,针对每个目标设备,以使该目标设备在接收到该获得该目标数据对应的子密钥的指令之后,将自身保存的该目标数据对应的子密钥发送给服务器。
S103:接收每个所述目标设备分别发送的所述目标数据对应的为坐标值的子密钥;其中,所述服务器根据第一目标密钥生成所述第一预设数量个为坐标值的子密钥且将所述第一预设数量个子密钥分别发送给各个所述目标设备。
服务器分别向第一预设数量个目标设备中每个目标设备发送获得该目标数据对应的子密钥的指令之后,服务器可以接收到每个目标设备分别发送的该目标数据对应的为坐标值的子密钥。比如,目标设备A发送的子密钥为(a,b)、目标设备B发送的子密钥为(c,d)等等。
S104:基于每个所述为坐标值的子密钥以及拉格朗日多项式插值算法,获得所述第一目标密钥,基于所述第一目标密钥对所述目标数据进行解密。
在获得每个目标设备发送的该目标数据对应的为坐标值的子密钥之后,为了生成第一目标密钥,在本申请实施例中,基于每个目标设备发送的该目标数据对应的为坐标值的子密钥以及拉格朗日多项式插值算法,获得该第一目标密钥。其中,该第一目标密钥为一个数值。
具体的,基于每个目标设备发送的该目标数据对应的为坐标值的子密钥以及拉格朗日多项式插值算法,确定第一目标密钥时,根据以下公式确定:
其中,s为第一目标密钥,ij为坐标值为(ij,f(ij))的子密钥的横坐标,f(ij)为坐标值为(ij,f(ij))的子密钥的纵坐标,il为坐标值为(il,f(il))的子密钥的横坐标,其中,q为第一数值。
在获得该第一目标密钥之后,基于该第一目标密钥对待解密的目标数据进行解密。
由于在本申请实施例中,服务器在生成第一目标密钥之后,先根据该第一目标密钥生成第一预设数量个为坐标值的子密钥,并分别发送给第一预设数量个目标设备,后续在对基于该第一目标密钥加密的目标数据进行解密时,即使用户不慎丢失第一目标密钥,也可以接收各个目标设备分别发送的为坐标值的子密钥,基于每个子密钥以及拉格朗日多项式插值算法,获得第一目标密钥,最后基于第一目标密钥对该目标数据进行解密,不会影响目标数据的解密和访问,避免产生不可挽回的损失。
为了生成第一目标密钥,在上述实施例的基础上,在本申请实施例中,生成所述第一目标密钥的过程包括:
从阶数为第一数值的整数集合中随机筛选出一个数值作为所述第一目标密钥。
在本申请实施例中,为了生成第一目标密钥,可以从阶数为第一数值的整数集合中随机筛选出一个数值作为该第一目标密钥。其中,该第一数值为大素数。
为了基于第一目标密钥,获得第一预设数量个为坐标值的子密钥,在上述各实施例的基础上,在本申请实施例中,所述根据第一目标密钥生成所述第一预设数量个为坐标值的所述子密钥包括:
从所述整数集合中筛选出另一个数值确定为秘密值;
从最高次幂为预设的第一目标数值的多项式集合中筛选出第一多项式和第二多项式,其中,所述第一多项式的常数项为所述第一目标密钥,所述第二多项式的常数项为所述秘密值;其中,所述第一目标数值小于所述第一预设数量;
按照自然数从小到大的顺序,依次将所述第一预设数量个自然数作为所述第一多项式的输入,确定所述第一预设数量个自然数分别对应的第二数值,并依次将所述第一预设数量个自然数作为所述第二多项式的输入,确定所述第一预设数量个自然数分别对应的第三数值;
针对所述第一预设数量个自然数中每个自然数,将该自然数对应的所述第二数值作为该自然数对应的子密钥的横坐标,将该自然数对应的所述第三数值确定为该自然数对应的子密钥的纵坐标。
为了基于第一目标密钥,获得第一预设数量个为坐标值的子密钥,在本申请实施例中,可以从阶数为第一数值的整数集合中筛选出另一个数值确定为秘密值,然后从最高次幂为预设的第一目标数值的多项式集合中筛选出第一多项式和第二多项式,其中,该第一多项式的常数项为该第一目标密钥,该第二多项式的常数项为该秘密值;其中,该第一目标数值小于第一预设数量。
比如,若该第一数值为q,则服务器在阶数为q的整数集合Zq[x]中随机选取两个最高幂次为k-1的第一多项式F(x)=s+F1x+…+Fk-1xk-1和第二多项式G(x)=t+G1x+…+Gk-1xk-1,其中,该k-1小于n;其中,n为第一预设数量,即基于第一目标密钥获得的子密钥的数量,也是目标设备的数量;其中,s为第一目标密钥,t为秘密值,F1、Fk-1、G1以及Gk-1等可以为任意数值,在此不做限制。
在确定出第一多项式和第二多项式之后,按照自然数从小到大的顺序,选择出第一预设数量个自然数,比如,若该第一预设数量为5个,则选择出的第一预设数量个自然数分别为0、1、2、3以及4。然后依次将该第一预设数量个自然数作为该第一多项式的输入,确定该第一预设数量个自然数分别对应的第二数值,并依次将该第一预设数量个自然数作为该第二多项式的输入,确定该第一预设数量个自然数分别对应的第三数值。最后针对第一预设数量个自然数中的每个自然数,将该自然数对应的第二数值作为该自然数对应的子密钥的横坐标,将该自然数对应的第三数值确定为该自然数对应的子密钥的纵坐标。
比如,若该第一多项式为F(x),第二多项式为G(x),该第一预设数量为5,则依次确定0对应的第二数值F(0)、1对应的第二数值F(1)、2对应的第二数值F(2)、3对应的第二数值F(3)以及4对应的第二数值F(4),以及0对应的第三数值G(0)、1对应的第三数值G(1)、2对应的第三数值G(2)、3对应的第三数值G(3)以及4对应的第三数值G(4),最后确定的0对应的子密钥为(F(0),G(0))、1对应的子密钥为(F(1),G(1))、2对应的子密钥为(F(2),G(2))、3对应的子密钥为(F(3),G(3))、4对应的子密钥为(F(4),G(4))。
在确定第一预设数量个自然数每个自然数对应的子密钥之后,针对每个自然数,将该自然数对应的子密钥发送给该自然数对应的目标设备,其中,针对每个目标设备,该目标设备对应哪个自然数是预先保存在服务器以及该目标设备中的。
为了验证接收到的目标设备发送的为坐标值的子私钥的可信度,进而提高服务器的安全,在上述各实施例的基础上,在本申请实施例中,所述将所述第一预设数量个子密钥分别发送给各个所述目标设备之前,所述方法还包括:
针对所述第一预设数量个自然数中的每个自然数,确定以第四数值为底数,以该自然数对应的子密钥的横坐标为指数的第五数值以及以第六数值为底数,以该自然数对应的子密钥的纵坐标为指数的第六数值的目标乘积;其中,所述第四数值以及所述第六数值分别为从预先保存的目标子群中随机筛选出的;
将每个自然数对应的所述目标乘积广播给各个目标设备,针对各个目标设备,以使该目标设备根据每个自然数对应的所述目标乘积以及该目标设备对应的自然数,生成对应的第一目标值;
所述基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥之前,所述方法还包括:
接收每个所述目标设备发送的第二目标值;
针对每个自然数,若该自然数对应的所述目标乘积与接收了该自然数的子密钥的目标设备发送的第二目标值一致,确定所述接收了该自然数的子密钥的目标设备发送的子密钥可信;
若每个所述目标设备发送的子密钥均可信,则进行基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥的操作。
在本申请实施例中,为了提高安全性,电子设备在接收到每个目标设备发送的该目标数据对应的子密钥之后,可以先验证每个目标设备发送的子密钥是否可信,若均可信,则进行基于每个子密钥的坐标值以及拉格朗日多项式插值算法,获得第一目标密钥的操作。
本申请,在验证子密钥是否可信时,考虑到了佩德森(Pedersen)方法,其中,Pedersen方法使用椭圆曲线生成密钥,并采用了同态加法特性。
图2为本申请一些实施例提供的一种基于Pedersen方法进行验证的过程示意图。
首先,C承诺者先随机选择r,生成承诺值c=r*G+v*H,其中,c为承诺者生成的承诺值,G、H为特定椭圆曲线上的生成点,r为盲因子(Blinding factor),v为原始信息,r*G以及v*H可以看为椭圆曲线上的公钥,r以及v可以视为私钥,然后将该c发送给验证者。承诺者再进行承诺揭露,向验证者发送v和r,验证者基于v和r确定c’=r*G+v*H,最后验证者确定c和c’是否一致,来实现验证。
结合上述的Pedersen方法,在本申请实施例中,为了便于服务器在接收到每个目标设备发送的该目标数据的子密钥之后,验证每个子密钥是否可信,服务器可以在将第一预设数量个子密钥发送给各个目标设备之前,先针对第一预设数量个自然数中的每个自然数,确定以第四数值为底数,以该自然数对应的子密钥的横坐标为指数的第五数值以及以第六数值为底数,以该自然数对应的子密钥的纵坐标为指数的第六数值的目标乘积。其中,该第四数值以及该第六数值分别为从预先保存的目标子群中随机筛选出的。
具体的,可以根据以下公式确定每个自然数对应的目标乘积:
其中,Ei为自然数i对应的目标乘积,Fi为自然数i对应的子密钥的横坐标,Gi为自然数i对应的子密钥的纵坐标,g为第四数值,h为第六数值。
在确定出第一预设数量个自然数中每个自然数对应的目标乘积之后,将每个自然数对应的目标乘积广播给各个目标设备,针对各个目标设备,以使该目标设备根据每个自然数对应的目标乘积以及该目标设备对应的自然数,生成对应的第一目标值。其中,针对每个目标设备,该目标设备对应哪个自然数是预先保存在服务器和该目标设备中的。
为了保证服务器在接收到每个目标设备发送的子密钥之后,可以验证每个目标设备发送的子密钥是否可信,在本申请实施例中,每个目标设备还向服务器发送第一目标值,此时服务器接收每个目标设备发送的第二目标值,其中,该第一目标值以及第二目标值可能相同,也可能不同。若第一目标值在传输的过程中未被恶意篡改者篡改,则该第一目标值与该第二目标值相同,否则,该第一目标值与该第二目标值可能不相同。
为了验证每个目标设备发送的子密钥是否可信,在本申请实施例中,服务器在接收到每个目标设备发送的第二目标值后,针对每个自然数,确定该自然数对应的目标乘积与接收了该自然数的子密钥的目标设备发送的第二目标值是否一致,即确定该自然数对应的目标乘积与该自然数对应的目标设备发送的第二目标值是否一致,若一致,则说明接收了该自然数的子密钥的目标设备发送的子密钥可信,否则,说明接收了该自然数的子密钥的目标设备发送的子密钥不可信,因此,可将该不可信的子密钥丢弃。
在针对每个目标设备发送到子密钥是否可信之后,若确定每个目标设备发送的子密钥均可信,则进行基于每个子密钥的坐标值以及拉格朗日多项式插值算法,获得第一目标密钥的操作。
为了获得预先保存的目标子群,在上述各实施例的基础上,在本申请实施例中,确定所述预先保存的目标子群的过程包括:
获得第一数值以及第七数值;其中,所述第一数值与所述第七数值均为大素数,且所述第一数值为所述第七数值与预设的第二目标数值的差值的大素数因子;
确定所述第七数值对应的乘法循环群;并将所述乘法循环群对应的阶数为所述第一数值的子群确定为所述目标子群。
在本申请实施例中,为了获得预先保存的目标子群,先获得第一数值以及第七数值,其中,该第一数值与该第七数值均为大素数,且该第一数值为该第七数值与预设的第二目标数值的差值的大素数因子。其中,该预设的第二目标数值为1,也就是说,该第一数值为第七数值-1的大素数因子。
然后确定该第七数值对应的乘法循环群,并将该乘法循环群对应的阶数为该第一数值的子群确定为该目标子群。
比如,若该第一数值为q,第七数值为p,该p、q均为大素数,其中q为p-1的大素数因子,为p对应的乘法循环群,Gq为该/>对应的阶数为q的唯一子群,即目标子群。
为了获得第一目标密钥,在上述各实施例的基础上,在本申请实施例中,所述基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥包括:
基于每个所述子密钥的坐标值中第二预设数量个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥;其中,所述第二预设数量小于所述第一预设数量,且所述第二预设数量等于预设的第一目标数值与预设的第二目标数值的和值。
图3为本申请一些实施例提供的一种Shamir门限的原理示意图,现针对图3进行说明。
假设(x1,y1)、(x2,y2)、(x3,y3)……(xk,yk)是平面上k个不同的点构成的点集,那么在平面上会存在唯一的k-1次多项式f(x)=a0+a1x1+a2x2+……ak-1xk-1通过这k个点,若把f(0)作为第一目标密钥,(i,f(i)),i=1,2……k,分别作为子密钥,那么即可以通过该(i,f(i)),i=1,2……k重构f(x),并确定x=0时,f(x)对应的取值,则可以确定第一目标密钥,比如,由两个坐标即可图2中的f(x)=3x+6,由三个坐标即可构建图2中的f(x)=3x2-9x+4。
基于第一目标密钥生成的第一预设数量个子密钥,并将该第一预设数量个子密钥发送给第一预设数量个目标设备后,为了避免某个或者某几个目标设备中保存的子密钥丢失后,无法生成第一目标密钥,进而无法对目标数据进行解密,在本申请实施例中,可以设置该第一预设数量大于能够生成该第一目标密钥的子私钥的最低数量。
比如,基于(i,f(i)),i=1,2……k能够重构f(x),那么则可以设置该第一预设数量大于k,即除了将(i,f(i)),i=1,2……k作为子密钥以外,还将几个除了(i,f(i)),i=1,2……k以外的位于f(x)=a0+a1x1+a2x2+……ak-1xk-1上的其他坐标也作为子密钥,比如,将(i,f(i)),i=k+1、k+2以及k+3,也作为子密钥,最后将该k+3个子密钥分别发送给k+3个目标设备,后续即使存在最多三个目标设备中的保存的子密钥丢失时,基于其他的目标设备发送的子私钥,服务器也可以获得第一目标密钥。
那么服务器在接收到该第一预设数量个子密钥之后,基于该第一预设数量个子密钥中的第二预设数量个子密钥的坐标值以及拉格朗日多项式插值算法,获得第一目标密钥;其中,该第二预设数量小于该第一预设数量,且该第二预设数量等于预设的第一目标数值与预设的第二目标数值的和值。其中,该预设的第二目标数值为1。
比如,若该第一预设数量为n,该第二预设数量为k,则该预设的第一目标数值为k-1,且该k小于n。
图4为本申请一些实施例提供的一种获得子密钥以及基于子密钥生成第一目标密钥的过程示意图;图5为本申请一些实施例提供的另一种获得子密钥以及基于子密钥生成第一目标密钥的过程示意图。
获得第一目标密钥s,基于该第一目标密钥s,获得n个子密钥,并将该n个子密钥分别发送给n个目标设备,针对每个目标设备,该目标设备在接收到子密钥之后,将子密钥保存在本地。
在一种可能的实施方式中,存在对目标数据进行解密的需求时,服务器可以向n个目标设备分别发送的获得目标数据对应的子密钥的指令,n个目标设备中的每个目标设备均将自身保存的该目标数据对应的子密钥发送给服务器,服务器在接收到n个目标设备发送的该目标数据对应的子密钥之后,基于该n个子密钥中的至少k个子密钥,即可获得第一目标密钥,如图4所示。
在一种可能的实施方式中,后续存在对目标数据进行解密的需求时,服务器可以向n个目标设备中的任意至少k个目标设备发送的获得目标数据对应的子密钥的指令,该至少k个目标设备均将自身保存的该目标数据对应的子密钥发送给服务器,服务器在接收到至少k个目标设备发送的该目标数据对应的子密钥之后,基于至少k个该目标数据对应的子密钥,获得第一目标密钥,如图5所示。
为了进一步保证目标数据的安全,在上述各实施例的基础上,在本申请实施例中,所述基于所述第一目标密钥对所述目标数据进行解密之前,所述方法还包括:
接收用户输入的第二目标密钥,确定所述第二目标密钥与所述第一目标密钥是否相同,若是,则进行基于所述第一目标密钥对所述目标数据进行解密的操作。
在本申请实施例中,为了进一步保证目标数据的安全性,基于第一目标密钥对目标数据进行解密之前,先接收用户输入的第二目标密钥,该第二目标密钥为之前对数据进行加密获得目标数据时用户已知的密钥。
然后确定该用户输入的第二目标密钥与该服务器生成的第一目标密钥是否相同,若相同,则确定该第一目标密钥生成正确,则进行基于第一目标密钥对目标数据进行解密的操作;否则,不进行基于第一目标密钥对目标数据进行解密的操作。
图6为本申请一些实施例提供的一种数据加解密的过程示意图,现针对图6进行说明。
先设置门限值k,即第二预设数量k,获得第一数值q、第七数值p、第四数值g以及第六数值h,其中,g以及h分别为从预先保存的目标子群中随机筛选出的,其中,q与p均为大素数,且q为p-1的大素数因子。
然后从阶数为q的整数集合中随机筛选出一个数值作为第一目标密钥s,并根据s生成n个为坐标值的子密钥,分别为s0、s1、s2、s3、s4……sn-1,其中,该s0对应的坐标值为(F(0),G(0))、该s1对应的坐标值为(F(1),G(1))、该s2对应的坐标值为(F(2),G(2))、该s3对应的坐标值为(F(3),G(3))……该sn-1对应的坐标值为(F(n-1),G(n-1)),针对自然数0,确定以g为底数,以F(0)为指数的g F(0)与以h为底数,以G(0)为指数的h G(0)的目标乘积E0;针对自然数1,确定以g为底数,以F(1)为指数的g F(1)与以h为底数,以G(1)为指数的hG(1)的目标乘积E1;针对自然数2,确定以g为底数,以F(2)为指数的g F(2)与以h为底数,以G(2)为指数的h G(2)的目标乘积E2……针对自然数n,确定以g为底数,以F(n)为指数的g F(n)与以h为底数,以G(n-1)为指数的h G(n-1)的目标乘积En-1,然后将E0、E1、E2……En-1广播给n个目标设备,其中,该n大于k,然后分别将该n个为坐标值的子密钥发送给n个目标设备,即将s0发送给自然数0对应的目标设备、将s1发送给自然数1对应的目标设备、将s2发送给自然数2对应的目标设备、将s3发送给自然数3对应的目标设备……将sn-1发送给自然数n-1对应的目标设备。
为了便于描述,以自然数j对应的子私钥的验证过程为例进行以下说明,其余自然数对应的验证过程同理,在此不做赘述。
自然数j对应的目标设备在接收到服务器发送的E0、E1、E2……En以及sj之后,根据确定自然数j对应的第一目标值;其中,Ei为自然数i对应的目标乘积,j为该目标设备对应的自然数,i表征自然数i,一共k个自然数。为了验证该自然数j对应的子私钥,确定该W(j)与该自然数j对应的目标设备中预先保存的自身对应的自然数对应的目标乘积Ej是否一致,若一致,则确定该自然数j对应的目标设备接收到的子密钥sj有效,并将该子密钥sj保存。
若服务器接收用户选择的待解密的目标数据,则分别向n个目标设备中每个目标设备发送获得目标数据对应的子密钥的指令,然后服务器接收到自然数0对应的电子设备发送到的s0以及W(0)、自然数1对应的电子设备发送到的s1以及W(1)、自然数2对应的电子设备发送到的s2以及W(2)……自然数n对应的电子设备发送到的sn-1以及W(n-1)。
服务器再确定W(0)与E0是否一致、W(1)与E1是否一致、W(2)与E2是否一致……W(n-1)与En-1是否一致,若均一致,则基于s0、s1、s2、s3、s4……sn-1中的任意k个子密钥的坐标值以及拉格朗日多项式插值算法,获得第一目标密钥s,在确定出第一目标密钥s之后,根据该第一目标密钥对待解密的目标数据进行解密。
需要说明的是,若需要基于该第一目标密钥对新的数据进行加密时,即服务器接收用户选择的待加密的数据之后,也可以基于上述方法获得第一目标密钥,并在获得第一目标密钥之后,基于该第一目标密钥对该待加密的数据进行加密。获得第一目标密钥的过程在上述实施例中已经描述,在此不做赘述。
若存在对保存目标数据对应的子密钥的目标设备进行更换的需求时,在一种可能的实施方式中,服务器可以基于上述方法获得更换前的每个目标设备发送的子私钥之后,基于不小于第二预设数量个子密钥生成第一目标密钥,根据更换后的目标设备对应的数量,重新基于该第一目标密钥,生成与更换后的目标设备对应的数量相同的子密钥,然后将重新生成的每个子密钥分别发送给更换后的各个目标设备中。需要说明的是,更换前的目标设备在将自身保存的目标数据对应的子私钥发送给服务器后,需要将自身保存的目标数据对应的子私钥进行删除。
需要说明的是,当某一个或者某几个目标设备停止服务时,服务器基于上述方法获得更换前的每个目标设备发送的子私钥之后,可以基于不小于第二预设数量个子密钥生成第一目标密钥,根据停止服务的目标设备以外的其他目标设备对应的数量,重新基于该第一目标密钥,生成与其他目标设备对应的数量相同的子密钥,如果需要,可以更改第二预设数量的大小,以保证密钥恢复功能保持正常。
同样地,如果需要对目标数据对应的第一目标密钥进行更换时,服务器基于上述方法获得更换前的每个目标设备发送的子私钥之后,可以基于不小于第二预设数量个子密钥生成第一目标密钥,并基于该第一目标密钥对目标数据进行解密后,再生成新的密钥,对该解密后获得的数据进行加密,然后将该新的密钥生成新的子密钥,并分别发送给各个目标设备。
图7为本申请实施例提供的一种密钥保存过程示意图,该过程包括以下步骤:
S701:接收服务器发送的获得目标数据对应的子密钥的指令。
本申请实施例提供的密钥保存方法应用于目标设备,该目标设备可以为智能终端、PC等等。
在本申请实施例中,目标设备接收到服务器发送的获得目标数据对应的子密钥的指令,其中,该指令中携带该目标数据的标识信息。
S702:确定预先保存的所述目标数据对应的为坐标值的子密钥;其中,所述为坐标值的子密钥为接收的所述服务器生成的,并保存的子密钥。
在本申请实施例中,目标设备重预先保存了各个加密的数据对应的为坐标值的子密钥,在接收到获得目标数据对应的子密钥的指令后,从预先保存的各个加密的数据对应的坐标值的子密钥中确定出目标数据对应的为坐标值的子密钥,其中,该目标数据对应的为坐标值的子密钥为接收到的该服务器生成后,发送给目标设备,目标设备接收到后保存的子密钥。
S703:将所述为坐标值的子密钥发送给所述服务器。
在确定出目标数据的为坐标值的子密钥后,将该为坐标值的子密钥发送给服务器,以使该服务器在接收到每个目标设备发送的为坐标值的子密钥后,后续基于每个目标设备发送的为坐标值的子密钥,生成第一目标密钥。
为了提高安全性,在上述各实施例的基础上,在本申请实施例中,保存所述为坐标值的子密钥之前,所述方法还包括:
接收每个自然数对应的目标乘积;
根据所述每个自然数对应的所述目标乘积以及预先保存的自身对应的自然数,生成第一目标值;
若所述第一目标值与所述自身对应的自然数对应的目标乘积一致,则确定所述子密钥有效,则进行保存所述为坐标值的子密钥的操作。
在本申请实施例中,为了提高安全性,目标设备在接收到服务器发送的为坐标值的子密钥之后,在保存该为坐标值的子密钥之前,可以先验证该为坐标值的子密钥是否有效,若有效,则进行保存为坐标值的子密钥的操作,否则,将该子密钥丢弃。
为了便于后续确定为坐标值的子密钥是否有效,目标设备先接收服务器发送的每个自然数对应的目标乘积,然后根据每个自然数对应的目标乘积以及预先保存的自身对应的自然数,生成第一目标值;若该第一目标值与该自身对应的自然数对应的目标乘积一致,则确定该子密钥有效,否则,确定该子密钥无效。
为了确定第一目标值,以便验证接收到的为坐标值的子密钥是否有效,在上述各实施例的基础上,在本申请实施例中,所述根据所述每个自然数对应的所述目标乘积以及自身对应的自然数,生成第一目标值包括:
针对每个自然数,以所述自身对应的自然数为底,以该自然数为指数,确定该自然数对应的第八数值;以该自然数对应的目标乘积为底数,以该自然数对应的所述第八数值为指数,确定该自然数对应的第九数值;
将每个自然数对应的第九数值进行累乘,生成所述第一目标值。
为了确定第一目标值,以便验证接收到的为坐标值的子密钥是否有效,在本申请实施例中,针对每个自然数,以该自身对应的自然数为底,以该自然数为指数,确定该自然数对应的第八数值;并以该自然数对应的目标乘积为底数,以该自然数对应的所述第八数值为指数,确定该自然数对应的第九数值;最后将每个自然数对应的第九数值进行累乘,生成第一目标值。
具体的,通过以下公式,生成第一目标值:
其中,A为第一目标值,Ei为自然数i对应的目标乘积,j为目标设备自身对应的自然数,共k个自然数。
为了提高效率,在上述各实施例的基础上,在本申请实施例中,所述将所述为坐标值的子密钥发送给所述服务器包括:
将所述为坐标值的子密钥以及所述第一目标值发送给服务器。
在本申请实施例中,为了提高效率,目标设备可以将该为坐标值的子密钥以及该第一目标值同时发送给服务器。
图8为本申请一些实施例提供的一种服务器和目标设备的功能结构示意图,现针对图8进行说明。
服务器作为主节点,主要包含数据管理服务和硬盘数据两部分,其中数据管理服务包含账号登录、帐号管理、数据加解密,数据读取、数据存储、密钥管理等功能。其中,密钥管理主要负责基于密钥确定子密钥、子密钥分发、子密钥收集、子密钥验证、密钥恢复等功能。其中,各个目标设备作为子节点,主要包括密钥管理功能,其中,密钥管理主要负责接收子密钥、子密钥验证、子密钥保存等功能。
图9为本申请一些实施例提供的一种密钥保存装置结构示意图,该装置包括:
第一接收模块901,用于接收用户选择的待解密的目标数据;
第一发送模块902,用于分别向第一预设数量个目标设备中每个所述目标设备发送获得所述目标数据对应的子密钥的指令;
所述第一接收模块901,还用于接收每个所述目标设备分别发送的所述目标数据对应的为坐标值的子密钥;其中,所述服务器根据第一目标密钥生成所述第一预设数量个为坐标值的子密钥且将所述第一预设数量个子密钥分别发送给各个所述目标设备;
处理模块903,用于基于每个所述为坐标值的子密钥以及拉格朗日多项式插值算法,获得所述第一目标密钥,基于所述第一目标密钥对所述目标数据进行解密。
在一种可能的实施方式中,所述装置还包括:
生成模块904,用于从阶数为第一数值的整数集合中随机筛选出一个数值作为所述第一目标密钥。
在一种可能的实施方式中,所述生成模块904,还用于从所述整数集合中筛选出另一个数值确定为秘密值;从最高次幂为预设的第一目标数值的多项式集合中筛选出第一多项式和第二多项式,其中,所述第一多项式的常数项为所述第一目标密钥,所述第二多项式的常数项为所述秘密值;其中,所述第一目标数值小于所述第一预设数量;按照自然数从小到大的顺序,依次将所述第一预设数量个自然数作为所述第一多项式的输入,确定所述第一预设数量个自然数分别对应的第二数值,并依次将所述第一预设数量个自然数作为所述第二多项式的输入,确定所述第一预设数量个自然数分别对应的第三数值;针对所述第一预设数量个自然数中每个自然数,将该自然数对应的所述第二数值作为该自然数对应的子密钥的横坐标,将该自然数对应的所述第三数值确定为该自然数对应的子密钥的纵坐标。
在一种可能的实施方式中,所述生成模块904,还用于针对所述第一预设数量个自然数中的每个自然数,确定以第四数值为底数,以该自然数对应的子密钥的横坐标为指数的第五数值以及以第六数值为底数,以该自然数对应的子密钥的纵坐标为指数的第六数值的目标乘积;其中,所述第四数值以及所述第六数值分别为从预先保存的目标子群中随机筛选出的;将每个自然数对应的所述目标乘积广播给各个目标设备,针对各个目标设备,以使该目标设备根据每个自然数对应的所述目标乘积以及该目标设备对应的自然数,生成对应的第一目标值;
所述装置还包括:
第一验证模块905,用于接收每个所述目标设备发送的第二目标值;针对每个自然数,若该自然数对应的所述目标乘积与接收了该自然数的子密钥的目标设备发送的第二目标值一致,确定所述接收了该自然数的子密钥的目标设备发送的子密钥可信;若每个所述目标设备发送的子密钥均可信,则进行基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥的操作。
在一种可能的实施方式中,所述生成模块904,还用于获得第一数值以及第七数值;其中,所述第一数值与所述第七数值均为大素数,且所述第一数值为所述第七数值与预设的第二目标数值的差值的大素数因子;确定所述第七数值对应的乘法循环群;并将所述乘法循环群对应的阶数为所述第一数值的子群确定为所述目标子群。
在一种可能的实施方式中,所述处理模块903,具体用于基于每个所述子密钥的坐标值中第二预设数量个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥;其中,所述第二预设数量小于所述第一预设数量,且所述第二预设数量等于预设的第一目标数值与预设的第二目标数值的和值。
图10为本申请一些实施例提供的一种密钥分发装置结构示意图,该装置包括:
第二接收模块1001,用于接收服务器发送的获得目标数据对应的子密钥的指令;
确定模块1002,用于确定预先保存的所述目标数据对应的为坐标值的子密钥;其中,所述为坐标值的子密钥为接收的所述服务器生成的,并保存的子密钥;
第二发送模块1003,用于将所述为坐标值的子密钥发送给所述服务器。
在一种可能的实施方式中,所述装置还包括:
第二验证模块1004,用于接收每个自然数对应的目标乘积;根据所述每个自然数对应的所述目标乘积以及预先保存的自身对应的自然数,生成第一目标值;若所述第一目标值与所述自身对应的自然数对应的目标乘积一致,则确定所述子密钥有效,则进行保存所述为坐标值的子密钥的操作。
在一种可能的实施方式中,所述第二验证模块1004,具体用于针对每个自然数,以所述自身对应的自然数为底,以该自然数为指数,确定该自然数对应的第八数值;以该自然数对应的目标乘积为底数,以该自然数对应的所述第八数值为指数,确定该自然数对应的第九数值;将每个自然数对应的第九数值进行累乘,生成所述第一目标值。
在一种可能的实施方式中,所述第二发送模块1003,具体用于将所述为坐标值的子密钥以及所述第一目标值发送给服务器。
在上述实施例的基础上,本申请实施例还提供了一种电子设备,图11为本申请实施例提供的一种电子设备结构示意图,如图11所示,包括:处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信;
存储器1103中存储有计算机程序,当程序被处理器1101执行时,使得处理器1101执行如下步骤:
接收用户选择的待解密的目标数据;
分别向第一预设数量个目标设备中每个所述目标设备发送获得所述目标数据对应的子密钥的指令;
接收每个所述目标设备分别发送的所述目标数据对应的为坐标值的子密钥;其中,所述服务器根据第一目标密钥生成所述第一预设数量个为坐标值的子密钥且将所述第一预设数量个子密钥分别发送给各个所述目标设备;
基于每个所述为坐标值的子密钥以及拉格朗日多项式插值算法,获得所述第一目标密钥,基于所述第一目标密钥对所述目标数据进行解密。
在一种可能的实施方式中,所述处理器1101,还用于从阶数为第一数值的整数集合中随机筛选出一个数值作为所述第一目标密钥。
在一种可能的实施方式中,所述处理器1101,还用于从所述整数集合中筛选出另一个数值确定为秘密值;从最高次幂为预设的第一目标数值的多项式集合中筛选出第一多项式和第二多项式,其中,所述第一多项式的常数项为所述第一目标密钥,所述第二多项式的常数项为所述秘密值;其中,所述第一目标数值小于所述第一预设数量;按照自然数从小到大的顺序,依次将所述第一预设数量个自然数作为所述第一多项式的输入,确定所述第一预设数量个自然数分别对应的第二数值,并依次将所述第一预设数量个自然数作为所述第二多项式的输入,确定所述第一预设数量个自然数分别对应的第三数值;针对所述第一预设数量个自然数中每个自然数,将该自然数对应的所述第二数值作为该自然数对应的子密钥的横坐标,将该自然数对应的所述第三数值确定为该自然数对应的子密钥的纵坐标。
在一种可能的实施方式中,所述处理器1101,还用于针对所述第一预设数量个自然数中的每个自然数,确定以第四数值为底数,以该自然数对应的子密钥的横坐标为指数的第五数值以及以第六数值为底数,以该自然数对应的子密钥的纵坐标为指数的第六数值的目标乘积;其中,所述第四数值以及所述第六数值分别为从预先保存的目标子群中随机筛选出的;将每个自然数对应的所述目标乘积广播给各个目标设备,针对各个目标设备,以使该目标设备根据每个自然数对应的所述目标乘积以及该目标设备对应的自然数,生成对应的第一目标值;
所述处理器1101,还用于接收每个所述目标设备发送的第二目标值;针对每个自然数,若该自然数对应的所述目标乘积与接收了该自然数的子密钥的目标设备发送的第二目标值一致,确定所述接收了该自然数的子密钥的目标设备发送的子密钥可信;若每个所述目标设备发送的子密钥均可信,则进行基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥的操作。
在一种可能的实施方式中,所述处理器1101,还用于获得第一数值以及第七数值;其中,所述第一数值与所述第七数值均为大素数,且所述第一数值为所述第七数值与预设的第二目标数值的差值的大素数因子;确定所述第七数值对应的乘法循环群;并将所述乘法循环群对应的阶数为所述第一数值的子群确定为所述目标子群。
在一种可能的实施方式中,所述处理器1101,具体用于基于每个所述子密钥的坐标值中第二预设数量个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥;其中,所述第二预设数量小于所述第一预设数量,且所述第二预设数量等于预设的第一目标数值与预设的第二目标数值的和值。
在一种可能的实施方式中,所述处理器1101,还用于接收用户输入的第二目标密钥,确定所述第二目标密钥与所述第一目标密钥是否相同,若是,则进行基于所述第一目标密钥对所述目标数据进行解密的操作。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1102用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-VolatileMemory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述实施例的基础上,本申请实施例还提供了一种电子设备,图12为本申请实施例提供的一种电子设备结构示意图,如图12所示,包括:处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信;
存储器1203中存储有计算机程序,当程序被处理器1201执行时,使得处理器1201执行如下步骤:
接收服务器发送的获得目标数据对应的子密钥的指令;
确定预先保存的所述目标数据对应的为坐标值的子密钥;其中,所述为坐标值的子密钥为接收的所述服务器生成的,并保存的子密钥;
将所述为坐标值的子密钥发送给所述服务器。
在一种可能的实施方式中,所述处理器1201,还用于接收所述服务器发送的每个自然数对应的目标乘积;根据所述每个自然数对应的所述目标乘积以及预先保存的自身对应的自然数,生成第一目标值;若所述第一目标值与所述自身对应的自然数对应的目标乘积一致,则确定所述子密钥有效,则进行保存所述为坐标值的子密钥的操作。
在一种可能的实施方式中,所述处理器1201,具体用于针对每个自然数,以所述自身对应的自然数为底,以该自然数为指数,确定该自然数对应的第八数值;以该自然数对应的目标乘积为底数,以该自然数对应的所述第八数值为指数,确定该自然数对应的第九数值;将每个自然数对应的第九数值进行累乘,生成所述第一目标值。
在一种可能的实施方式中,所述处理器1201,具体用于将所述为坐标值的子密钥以及所述第一目标值发送给服务器。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1202用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-VolatileMemory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有可由处理器执行的计算机程序,当程序在处理器上运行时,使得处理器执行时实现如下步骤:
接收用户选择的待解密的目标数据;
分别向第一预设数量个目标设备中每个所述目标设备发送获得所述目标数据对应的子密钥的指令;
接收每个所述目标设备分别发送的所述目标数据对应的为坐标值的子密钥;其中,所述服务器根据第一目标密钥生成所述第一预设数量个为坐标值的子密钥且将所述第一预设数量个子密钥分别发送给各个所述目标设备;
基于每个所述为坐标值的子密钥以及拉格朗日多项式插值算法,获得所述第一目标密钥,基于所述第一目标密钥对所述目标数据进行解密。
进一步地,生成所述第一目标密钥的过程包括:
从阶数为第一数值的整数集合中随机筛选出一个数值作为所述第一目标密钥。
进一步地,所述根据第一目标密钥生成所述第一预设数量个为坐标值的所述子密钥包括:
从所述整数集合中筛选出另一个数值确定为秘密值;
从最高次幂为预设的第一目标数值的多项式集合中筛选出第一多项式和第二多项式,其中,所述第一多项式的常数项为所述第一目标密钥,所述第二多项式的常数项为所述秘密值;其中,所述第一目标数值小于所述第一预设数量;
按照自然数从小到大的顺序,依次将所述第一预设数量个自然数作为所述第一多项式的输入,确定所述第一预设数量个自然数分别对应的第二数值,并依次将所述第一预设数量个自然数作为所述第二多项式的输入,确定所述第一预设数量个自然数分别对应的第三数值;
针对所述第一预设数量个自然数中每个自然数,将该自然数对应的所述第二数值作为该自然数对应的子密钥的横坐标,将该自然数对应的所述第三数值确定为该自然数对应的子密钥的纵坐标。
进一步地,所述将所述第一预设数量个子密钥分别发送给各个所述目标设备之前,所述方法还包括:
针对所述第一预设数量个自然数中的每个自然数,确定以第四数值为底数,以该自然数对应的子密钥的横坐标为指数的第五数值以及以第六数值为底数,以该自然数对应的子密钥的纵坐标为指数的第六数值的目标乘积;其中,所述第四数值以及所述第六数值分别为从预先保存的目标子群中随机筛选出的;
将每个自然数对应的所述目标乘积广播给各个目标设备,针对各个目标设备,以使该目标设备根据每个自然数对应的所述目标乘积以及该目标设备对应的自然数,生成对应的第一目标值;
所述基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥之前,所述方法还包括:
接收每个所述目标设备发送的第二目标值;
针对每个自然数,若该自然数对应的所述目标乘积与接收了该自然数的子密钥的目标设备发送的第二目标值一致,确定所述接收了该自然数的子密钥的目标设备发送的子密钥可信;
若每个所述目标设备发送的子密钥均可信,则进行基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥的操作。
进一步地,确定所述预先保存的目标子群的过程包括:
获得第一数值以及第七数值;其中,所述第一数值与所述第七数值均为大素数,且所述第一数值为所述第七数值与预设的第二目标数值的差值的大素数因子;
确定所述第七数值对应的乘法循环群;并将所述乘法循环群对应的阶数为所述第一数值的子群确定为所述目标子群。
进一步地,所述基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥包括:
基于每个所述子密钥的坐标值中第二预设数量个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥;其中,所述第二预设数量小于所述第一预设数量,且所述第二预设数量等于预设的第一目标数值与预设的第二目标数值的和值。
进一步地,所述基于所述第一目标密钥对所述目标数据进行解密之前,所述方法还包括:
接收用户输入的第二目标密钥,确定所述第二目标密钥与所述第一目标密钥是否相同,若是,则进行基于所述第一目标密钥对所述目标数据进行解密的操作。
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有可由处理器执行的计算机程序,当程序在处理器上运行时,使得处理器执行时实现如下步骤:
接收服务器发送的获得目标数据对应的子密钥的指令;
确定预先保存的所述目标数据对应的为坐标值的子密钥;其中,所述为坐标值的子密钥为接收的所述服务器生成的,并保存的子密钥;
将所述为坐标值的子密钥发送给所述服务器。
进一步地,保存所述为坐标值的子密钥之前,所述方法还包括:
接收所述服务器发送的每个自然数对应的目标乘积;
根据所述每个自然数对应的所述目标乘积以及预先保存的自身对应的自然数,生成第一目标值;
若所述第一目标值与所述自身对应的自然数对应的目标乘积一致,则确定所述子密钥有效,则进行保存所述为坐标值的子密钥的操作。
进一步地,所述根据所述每个自然数对应的所述目标乘积以及自身对应的自然数,生成第一目标值包括:
针对每个自然数,以所述自身对应的自然数为底,以该自然数为指数,确定该自然数对应的第八数值;以该自然数对应的目标乘积为底数,以该自然数对应的所述第八数值为指数,确定该自然数对应的第九数值;
进一步地,所述将所述为坐标值的子密钥发送给所述服务器包括:
将所述为坐标值的子密钥以及所述第一目标值发送给服务器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种密钥保存方法,其特征在于,应用于服务器,包括:
接收用户选择的待解密的目标数据;
分别向第一预设数量个目标设备中每个所述目标设备发送获得所述目标数据对应的子密钥的指令;
接收每个所述目标设备分别发送的所述目标数据对应的为坐标值的子密钥;其中,所述服务器根据第一目标密钥生成所述第一预设数量个为坐标值的子密钥且将所述第一预设数量个子密钥分别发送给各个所述目标设备;
基于每个所述为坐标值的子密钥以及拉格朗日多项式插值算法,获得所述第一目标密钥,基于所述第一目标密钥对所述目标数据进行解密。
2.根据权利要求1所述的方法,其特征在于,生成所述第一目标密钥的过程包括:
从阶数为第一数值的整数集合中随机筛选出一个数值作为所述第一目标密钥。
3.根据权利要求2所述的方法,其特征在于,所述根据第一目标密钥生成所述第一预设数量个为坐标值的所述子密钥包括:
从所述整数集合中筛选出另一个数值确定为秘密值;
从最高次幂为预设的第一目标数值的多项式集合中筛选出第一多项式和第二多项式,其中,所述第一多项式的常数项为所述第一目标密钥,所述第二多项式的常数项为所述秘密值;其中,所述第一目标数值小于所述第一预设数量;
按照自然数从小到大的顺序,依次将所述第一预设数量个自然数作为所述第一多项式的输入,确定所述第一预设数量个自然数分别对应的第二数值,并依次将所述第一预设数量个自然数作为所述第二多项式的输入,确定所述第一预设数量个自然数分别对应的第三数值;
针对所述第一预设数量个自然数中每个自然数,将该自然数对应的所述第二数值作为该自然数对应的子密钥的横坐标,将该自然数对应的所述第三数值确定为该自然数对应的子密钥的纵坐标。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一预设数量个子密钥分别发送给各个所述目标设备之前,所述方法还包括:
针对所述第一预设数量个自然数中的每个自然数,确定以第四数值为底数,以该自然数对应的子密钥的横坐标为指数的第五数值以及以第六数值为底数,以该自然数对应的子密钥的纵坐标为指数的第六数值的目标乘积;其中,所述第四数值以及所述第六数值分别为从预先保存的目标子群中随机筛选出的;
将每个自然数对应的所述目标乘积广播给各个目标设备,针对各个目标设备,以使该目标设备根据每个自然数对应的所述目标乘积以及该目标设备对应的自然数,生成对应的第一目标值;
所述基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥之前,所述方法还包括:
接收每个所述目标设备发送的第二目标值;
针对每个自然数,若该自然数对应的所述目标乘积与接收了该自然数的子密钥的目标设备发送的第二目标值一致,确定所述接收了该自然数的子密钥的目标设备发送的子密钥可信;
若每个所述目标设备发送的子密钥均可信,则进行基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥的操作。
5.根据权利要求4所述的方法,其特征在于,确定所述预先保存的目标子群的过程包括:
获得第一数值以及第七数值;其中,所述第一数值与所述第七数值均为大素数,且所述第一数值为所述第七数值与预设的第二目标数值的差值的大素数因子;
确定所述第七数值对应的乘法循环群;并将所述乘法循环群对应的阶数为所述第一数值的子群确定为所述目标子群。
6.根据权利要求1所述的方法,其特征在于,所述基于每个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥包括:
基于每个所述子密钥的坐标值中第二预设数量个所述子密钥的坐标值以及拉格朗日多项式插值算法,获得所述第一目标密钥;其中,所述第二预设数量小于所述第一预设数量,且所述第二预设数量等于预设的第一目标数值与预设的第二目标数值的和值。
7.一种密钥分发方法,其特征在于,应用于目标设备,包括:
接收服务器发送的获得目标数据对应的子密钥的指令;
确定预先保存的所述目标数据对应的为坐标值的子密钥;其中,所述为坐标值的子密钥为接收的所述服务器生成的,并保存的子密钥;
将所述为坐标值的子密钥发送给所述服务器。
8.根据权利要求7所述的方法,其特征在于,保存所述为坐标值的子密钥之前,所述方法还包括:
接收所述服务器发送的每个自然数对应的目标乘积;
根据所述每个自然数对应的所述目标乘积以及预先保存的自身对应的自然数,生成第一目标值;
若所述第一目标值与所述自身对应的自然数对应的目标乘积一致,则确定所述子密钥有效,则进行保存所述为坐标值的子密钥的操作。
9.根据权利要求8所述的方法,其特征在于,所述根据所述每个自然数对应的所述目标乘积以及自身对应的自然数,生成第一目标值包括:
针对每个自然数,以所述自身对应的自然数为底,以该自然数为指数,确定该自然数对应的第八数值;以该自然数对应的目标乘积为底数,以该自然数对应的所述第八数值为指数,确定该自然数对应的第九数值;
将每个自然数对应的第九数值进行累乘,生成所述第一目标值。
10.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-6任一所述密钥保存方法或7-9任一所述密钥分发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211344644.3A CN117955639A (zh) | 2022-10-31 | 2022-10-31 | 一种密钥保存、密钥分发方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211344644.3A CN117955639A (zh) | 2022-10-31 | 2022-10-31 | 一种密钥保存、密钥分发方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117955639A true CN117955639A (zh) | 2024-04-30 |
Family
ID=90803713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211344644.3A Pending CN117955639A (zh) | 2022-10-31 | 2022-10-31 | 一种密钥保存、密钥分发方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117955639A (zh) |
-
2022
- 2022-10-31 CN CN202211344644.3A patent/CN117955639A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378139B (zh) | 一种数据密钥保护方法、系统及电子设备和存储介质 | |
US9973334B2 (en) | Homomorphically-created symmetric key | |
EP2526505B1 (en) | Device and method for obtaining a cryptographic key | |
EP3363142B1 (en) | A cryptographic device and an encoding device | |
CN113904808B (zh) | 一种私钥分发、解密方法、装置、设备及介质 | |
US9680647B2 (en) | Method of using a token in cryptography | |
JP5648177B2 (ja) | サイドチャネル攻撃に対する素数生成の保護 | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
JP2010277085A (ja) | Rsaアルゴリズムにおける素数生成の保護 | |
CN104969508A (zh) | 用于保护固定长度的数据结构的完整性的方法 | |
CN109359471B (zh) | 基于用户身份的加密方法、装置、系统、设备和介质 | |
CN104854814A (zh) | 密钥共享网络设备及其配置 | |
CN113051590A (zh) | 一种数据处理方法和相关设备 | |
EP3010173B1 (en) | Key storage device, key storage method, and program therefor | |
CN112868202B (zh) | 强空间证明中有空间限制的连续不可延展代码 | |
CN113645022B (zh) | 一种确定隐私集合交集方法、装置、电子设备及存储介质 | |
CN117955639A (zh) | 一种密钥保存、密钥分发方法、装置、设备及介质 | |
US20240106639A1 (en) | Method of Calculating Cipher and Electronic Device Performing the Method | |
JP5268413B2 (ja) | 開示制限処理装置及びデータ処理システム及びプログラム | |
CN113536355B (zh) | 会话密钥的生成方法及装置 | |
JP2018005089A (ja) | 分散値更新装置及び分散値更新プログラム、分散値計算装置及び分散値計算プログラム、分散値検証装置及び分散値検証プログラム | |
CN117556476A (zh) | 一种数据验证方法、装置、设备及介质 | |
CN117251884A (zh) | 一种数据验证方法及装置 | |
CN118264426A (zh) | 一种数据加密及解密方法、装置、电子设备及存储介质 | |
KR20240048985A (ko) | 투표 분석 정보를 포함하는 동형 암호문을 생성하는 방법 및 그 전자 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |