CN113824713B - 一种密钥生成方法、系统及存储介质 - Google Patents
一种密钥生成方法、系统及存储介质 Download PDFInfo
- Publication number
- CN113824713B CN113824713B CN202111095979.1A CN202111095979A CN113824713B CN 113824713 B CN113824713 B CN 113824713B CN 202111095979 A CN202111095979 A CN 202111095979A CN 113824713 B CN113824713 B CN 113824713B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- key
- equipment
- server
- public key
- 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.)
- Active
Links
Images
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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Abstract
本申请实施例提供了一种密钥生成方法、系统及存储介质,本申请涉及密码技术领域,方法包括:代理设备根据第一设备发送的重加密密钥生成请求,发送第一公钥至第一设备以及目标设备,目标设备为第二设备或第一数量个服务器;第二设备根据第一数量个服务器中每个服务器返回的密文处理得到第一密文以发送至第一设备;第一设备根据第一公钥对第一设备的私钥加密处理得到第二密文,并根据第一密文和第二密文处理得到第三密文以发送至代理设备;代理设备根据第一私钥对第三密文解密处理得到重加密密钥。采用本申请,可以有效避免重加密密钥生成过程中的密钥泄露问题。本申请涉及区块链技术,第一设备待发送至第二设备的目标数据可从区块链获取。
Description
技术领域
本申请涉及密码技术领域,尤其涉及一种密钥生成方法、系统及存储介质。
背景技术
大部分的云服务供应商等并不能完全值得信任,因为它们可能会在未经用户允许的情况下,擅自泄露用户数据,比如用户的隐私数据或重要文件。为了避免数据泄露,可以将数据加密后上传,这样数据发送者只需保管好解密密钥即可。但是,在需要共享数据的场景下,这种简单的数据加密上传方式,导致加密文件只能被用户自行解密,并不能通过云服务器分享给他人。为此,便引入了代理重加密的方案,对存储在云服务器上的密文进行安全有效的转换。
云服务提供商等作为代理人,当用户A要和用户B共享文件时,在不解密用户A的密文的前提下,可以将其密文通过一把重加密密钥将此密文转成用户B所需要的密文。然而,重加密密钥依赖用户A的私钥和B的公钥生成、在一些场景下,用户A的私钥和用户B的公钥需要被保护,也就是既需要完成重加密密钥的生成,又不能让其在系统中出现以免被恶意窃取。因此,如何避免生成重加密密钥的过程中数据发送方的私钥和数据接收方的公钥的泄露成为亟待解决的问题。
发明内容
本申请实施例提供了一种密钥生成方法、系统及存储介质,可以有效的避免在生成重加密密钥的过程中数据发送方的私钥和数据接收方的公钥的泄露。
第一方面,本申请实施例提供了一种密钥生成方法,包括:
第一设备发送重加密密钥生成请求至代理设备,所述重加密密钥生成请求用于请求所述代理设备生成所述第一设备与第二设备之间的重加密密钥;
所述代理设备接收所述重加密密钥生成请求,并根据所述重加密密钥生成请求将第一公钥发送至所述第一设备以及目标设备,所述目标设备为所述第二设备或第一数量个服务器,所述第一公钥为所述代理设备的公钥;
所述第二设备获取所述第一数量个服务器中每个服务器返回的密文;所述密文是所述服务器在接收到由所述代理设备或所述第二设备发送的密文生成指令后,利用密文生成指令携带的所述第一公钥对所述服务器存储的第二公钥的分片数据进行加密处理后得到的,所述第二公钥为所述第二设备的公钥;
所述第二设备根据所述每个服务器返回的密文处理得到第一密文,并将所述第一密文发送至所述第一设备;
所述第一设备利用所述第一公钥对第一设备的私钥进行加密处理,得到第二密文;
所述第一设备根据所述第一密文和所述第二密文处理得到第三密文,并将所述第三密文发送至所述代理设备;
所述代理设备接收所述第三密文,并利用第一私钥对所述第三密文进行解密处理,得到重加密密钥,所述第一私钥为所述代理设备的私钥。
可选的,所述每个服务器存储的第二公钥的分片数据之间的乘积为所述第二公钥;
所述加密处理采用的加密算法为乘法同态加密算法。
可选的,所述第二设备根据所述每个服务器返回的密文处理得到第一密文,包括:
所述第二设备计算所述每个服务器返回的密文之间的乘积;
所述第二设备将所述每个服务器返回的密文之间的乘积确定为第一密文。
可选的,所述第一设备根据所述第一密文和所述第二密文处理得到第三密文,包括:
所述第一设备计算所述第一密文与所述第二密文之间的乘积;
所述第一设备将所述第一密文与所述第二密文之间的乘积确定为第三密文。
可选的,所述每个服务器存储的第二公钥的分片数据之间的和为所述第二公钥;
所述加密处理采用的加密算法为加法同态加密算法。
可选的,所述第二设备根据所述每个服务器返回的密文处理得到第一密文,包括:
所述第二设备计算所述每个服务器返回的密文之间的和;
所述第二设备将所述每个服务器返回的密文之间的和确定为第一密文。
可选的,所述第一设备根据所述第一密文和所述第二密文处理得到第三密文,包括:
所述第一设备计算所述第一密文与所述第二密文之间的和;
所述第一设备将所述第一密文与所述第二密文之间的和确定为第三密文。
可选的,所述方法还包括:
所述代理设备接收所述第一设备发送的第一加密数据,所述第一加密数据为所述第一设备利用所述第一设备的公钥对待发送至所述第二设备的目标数据进行加密处理后得到;
所述代理设备利用所述重加密密钥将所述第一加密数据转换为第二加密数据,并将所述第二加密数据发送至所述第二设备;
所述第二设备利用第二私钥对所述第二加密数据进行解密处理,得到所述目标数据,所述第二私钥为所述第二设备的私钥。
第二方面,本申请实施例提供了一种密钥生成系统,包括:
第一设备,用于发送重加密密钥生成请求至代理设备,所述重加密密钥生成请求用于请求所述代理设备生成所述第一设备与第二设备之间的重加密密钥;
所述代理设备,用于接收所述重加密密钥生成请求,并根据所述重加密密钥生成请求将第一公钥发送至所述第一设备以及目标设备,所述目标设备为所述第二设备或第一数量个服务器,所述第一公钥为所述代理设备的公钥;
所述第二设备,用于获取所述第一数量个服务器中每个服务器返回的密文;所述密文是所述服务器在接收到由所述代理设备或所述第二设备发送的密文生成指令后,利用密文生成指令携带的所述第一公钥对所述服务器存储的第二公钥的分片数据进行加密处理后得到的,所述第二公钥为所述第二设备的公钥;
所述第二设备,还用于根据所述每个服务器返回的密文处理得到第一密文,并将所述第一密文发送至所述第一设备;
所述第一设备,还用于利用所述第一公钥对第一设备的私钥进行加密处理,得到第二密文,并根据所述第一密文和所述第二密文处理得到第三密文,并将所述第三密文发送至所述代理设备;
所述代理设备,还用于接收所述第三密文,并利用第一私钥对所述第三密文进行解密处理,得到重加密密钥,所述第一私钥为所述代理设备的私钥。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述的方法。
综上所述,第一设备可以发送重加密密钥生成请求至代理设备;代理设备在接收重加密密钥生成请求后,可以根据重加密密钥生成请求将第一公钥发送至第一设备以及目标设备(为第二设备或第一数量个服务器);第二设备可以获取第一数量个服务器中每个服务器返回的密文,并根据每个服务器返回的密文处理得到第一密文以发送至第一设备;第一设备利用第一公钥对第一设备的私钥进行加密处理,得到第二密文,并根据第一密文和第二密文处理得到第三密文以发送至代理设备,从而使得代理设备利用第一私钥对第三密文进行解密处理,得到重加密密钥,上述过程不涉及第二设备的公钥以及第一设备的私钥的传输,能够有效的避免在生成重加密密钥的过程中数据发送方的私钥和数据接收方的公钥的泄露,保障这些密钥的安全性,进而避免出现用户数据泄露等问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种密钥生成方法的流程示意图;
图2是本申请再一实施例提供的一种密钥生成方法的流程示意图;
图3是本申请实施例提供的一种密钥生成系统的网络架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,为本申请实施例提供的一种密钥生成方法的流程示意图。具体地,该方法可以包括如下步骤:
S101、第一设备发送重加密密钥生成请求至代理设备,所述重加密密钥生成请求用于请求所述代理设备生成所述第一设备与第二设备之间的重加密密钥。
本申请实施例中,第一设备可以向代理设备请求生成自己与第二设备之间的重加密密钥。其中,第一设备可以为智能终端或服务设备。代理设备可以为代理服务器。第二设备可以为智能终端或服务设备。其中,智能终端可以为智能手机、平板电脑、笔记本电脑等智能终端。服务设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、网络服务、中间件服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
S102、所述代理设备接收所述重加密密钥生成请求,并根据所述重加密密钥生成请求将第一公钥发送至所述第一设备以及目标设备,所述目标设备为所述第二设备或第一数量个服务器,所述第一公钥为所述代理设备的公钥,所述第一公钥为所述代理设备的公钥。
其中,代理设备具有第一密钥对。第一密钥对为代理设备的密钥对。该第一密钥对可以包括第一公钥和第一私钥。在一个实施例中,第一密钥对可以是代理设备自己创建的密钥对,或可以是代理设备被分配到的密钥对。第一数量个服务器中每个服务器存有第二公钥的分片数据。
S103、所述第二设备获取所述第一数量个服务器中每个服务器返回的密文,所述密文是所述服务器在接收到由所述代理设备或所述第二设备发送的密文生成指令后,利用密文生成指令携带的所述第一公钥对所述服务器存储的第二公钥的分片数据进行加密处理后得到的,所述第二公钥为所述第二设备的公钥。
其中,第二设备具有第二密钥对,第二密钥对为第二设备的密钥对,第二密钥对包括第二公钥和第二私钥。在一个实施例中,第二密钥对可以是第二设备自己创建的密钥对,或还可以是第二设备被分配到的密钥对。每个服务器存储的第二公钥的分片数据之间的乘积为第二公钥。例如,第二公钥为PKB,第一数量个服务器包括服务器1和服务器2。服务器1存储的第二公钥的分片数据为PKB1,服务器2存储的第二公钥的分片数据为PKB2。PKB=PKB1PKB2。服务器利用第一公钥对该服务器存储的第二公钥的分片数据进行加密处理时采用的加密算法为乘法同态加密算法,如RSA算法。
在一个实施例中,第二设备可以在接收到第一公钥后,发送密文生成指令至第一数量个服务器,密文生成指令携带第一公钥。第一数量个服务器中每个服务器在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥以及对该服务器存储的第二公钥的分片数据进行加密处理得到密文。第二设备可以接收第一数量个服务器中每个服务器返回的密文。举例来说,假设第一数量个服务器包括服务器1和服务器2,第二公钥为PKB,服务器1存储的第二公钥的分片数据为PKB1,服务器2存储的第二公钥的分片数据为PKB2。第二设备可以在接收到第一公钥后,发送密文生成指令至服务器1和服务器2,密文生成指令携带第一公钥。服务器1在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥对PKB1进行加密处理得到密文XB1。服务器1在得到XB1后,可以将XB1返回至第二设备。第二设备可以接收服务器1返回的XB1。服务器2在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥对PKB2进行加密处理,得到密文XB2。服务器2在得到XB2后,可以将XB2返回至第二设备。第二设备可以接收服务器2返回的XB2。
在一个实施例中,代理设备可以在将第一公钥发送至第一设备以及第二设备后,发送密文生成指令至第一数量个服务器中每个服务器,密文生成指令携带第一公钥。或,代理设备可以在接收到重加密密钥生成请求后,发送密钥生成指令至第一数量个服务器。第一数量个服务器中每个服务器在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥以及对该服务器存储的第二公钥的分片数据进行加密处理得到密文。第二设备可以接收第一数量个服务器中每个服务器返回的密文。举例来说,假设第一数量个服务器包括服务器1和服务器2,第二公钥为PKB,服务器1存储的第二公钥的分片数据PKB1,服务器2存储的第二公钥的分片数据PKB2。代理设备可以在将第一公钥发送到第一设备及第二设备后,发送密文生成指令至服务器1和服务器2,密文生成指令携带第一公钥。或,代理设备可以在接收到重加密密钥生成请求后,发送密文生成指令至服务器1和服务器2。服务器1在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥对PKB1进行加密处理得到密文XB1。服务器1在得到XB1后,可以将XB1返回至第二设备。第二设备可以接收服务器1返回的XB1。服务器2在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥对PKB2进行加密处理,得到密文XB2。服务器2在得到XB2后,可以将XB2返回至第二设备。第二设备可以接收服务器2返回的XB2。
在上述示例中,假设第一公钥为PKt,则获取XB1的方式可以如下:XB1=EncPKt(PKB1)。相应地,获取XB2的方式可以如下:XB2=EncPKt(PKB2)。
S104、所述第二设备根据所述每个服务器返回的密文处理得到第一密文,并将所述第一密文发送至所述第一设备。
本申请实施例中,第二设备可以计算每个服务器返回的密文之间的乘积,并将每个服务器返回的密文之间的乘积确定为第一密文。第二设备在得到第一密文后,可以将第一密文发送至第一设备,第一设备可以接收第一密文。举例来说,假设第一数量个服务器包括服务器1和服务器2。服务器1返回的密文为XB1,服务器2返回的密文为XB2,第一密文为XB。第二设备可以通过如下方式得到XB:XB=XB1XB2。第二设备在得到XB后,可以将XB发送至第一设备,第一设备可以接收XB。相较于现有技术直接传输第二设备的公钥的方式,本申请实施例传输第一密文的方式,能够有效避免出现第二设备的公钥泄露的情况。
S105、所述第一设备利用所述第一公钥对第一设备的私钥进行加密处理,得到第二密文。
举例来说,假设第一公钥为PKB1,第一设备的私钥为SKA,第二密文为XA,第一设备可以通过如下方式获得XA:XA=EncPKt(SKA)。
其中,第一设备具有第三密钥对。第三密钥对为第一设备的密钥对。第三密钥对包括第一设备的公钥以及第一设备的私钥。在一个实施例中,第三密钥对可以是第一设备自己创建的密钥对,或还可以是第三设备被分配到的密钥对。
其中,第一设备利用第一公钥对第一设备的私钥进行加密处理所采用的加密算法为前述提及的乘法同态加密算法。
S106、所述第一设备根据所述第一密文和所述第二密文处理得到第三密文,并将所述第三密文发送至所述代理设备。
本申请实施例中,第一设备可以计算所述第一密文与所述第二密文之间的乘积,并将所述第一密文与所述第二密文之间的乘积确定为第三密文。举例来说,假设第一密文为XB,第二密文为XA,第三密文为Xrk,第一设备可以通过如下方式获得Xrk:Xrk=XAXB。第一设备在得到Xrk后,可以将Xrk发送至代理设备。代理设备可以接收第一设备发送的Xrk。
S107、所述代理设备接收所述第三密文,并利用第一私钥对所述第三密文进行解密处理,得到重加密密钥,所述第一私钥为所述代理设备的私钥。
其中,通过步骤S107得到的重加密密钥可以为第一设备的私钥和第二公钥之间的乘积。举例来说,假设第一私钥为SKt,第三密文为Xrk,重加密密钥为rk,则得到rk的方式可以为rk=DecSKt(Xrk),此处的rk=SKAPKB。
在一个实施例中,除了将第二设备的公钥以分片形式存储在第二数量个服务器中,也可以将第一设备的私钥以分片形式存储在第二数量个服务器中,具体地,可以将第一设备的私钥以分片数据形式存储在的第二数量个服务器中。也就是说,第二数量个服务器中每个服务器存有第一设备的私钥的分片数据。在一个实施例中,第一设备利用第一公钥对第一设备的私钥进行加密处理,得到第二密文可以替换为如下步骤:第一设备获取第二数量个服务器中各个服务器返回的密文,并根据各个服务器返回的密文处理得到第二密文。所述的各个服务器返回的密文可以是服务器在接收到由代理设备或第一设备发送的密文生成指令后,利用密文生成指令携带的第一公钥对服务器存储的第一设备的私钥的分片数据进行加密处理后得到的。此处所述的各个服务器存储的第一设备的私钥的分片数据之间的乘积可以为第一设备的私钥,利用第一公钥对服务器存储的第一设备的私钥的分片数据进行加密处理采用的加密算法可以为本申请实施例提及的乘法同态加密算法。相应地,第一设备根据各个服务器返回的密文处理得到第二密文的方式可以为:计算各个服务器返回的密文之间的乘积,并将各个服务器返回的密文之间的乘积确定为第二密文。
在一个实施例中,第一设备可以在接收到第一公钥后,发送密文生成指令至第二数量个服务器,密文生成指令携带第一公钥。第二数量个服务器中各个服务器在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥以及对该服务器存储的第一设备的私钥的分片数据进行加密处理得到密文,第一设备可以接收第二数量个服务器中各个服务器返回的密文。
在一个实施例中,代理设备可以在将第一公钥发送至第一设备以及第二设备后,发送密文生成指令至第二数量个服务器中各个服务器,密文生成指令携带第一公钥。或,代理设备可以在接收到重加密密钥生成请求后,发送密钥生成指令至第二数量个服务器。第二数量个服务器中各个服务器在接收到密文生成指令后,可以获取密文生成指令携带的第一公钥,并利用第一公钥以及对该服务器存储的第一设备的私钥的分片数据进行加密处理得到密文。第一设备可以接收第二数量个服务器中各个服务器返回的密文。
在一个实施例中,代理设备可以接收第一设备发送的第一加密数据,第一加密数据为第一设备利用第一设备的公钥对待分享至第二设备的目标数据进行加密处理后得到;代理设备利用重加密密钥将第一加密数据转换为第二加密数据,并将第二加密数据发送至第二设备;第二设备利用第二私钥对第二加密数据进行解密处理,得到目标数据。
可见,图1所示的实施例中,第一设备可以发送重加密密钥生成请求至代理设备;代理设备在接收重加密密钥生成请求后,可以根据重加密密钥生成请求将第一公钥发送至第一设备以及目标设备(为第二设备或第一数量个服务器);第二设备可以获取第一数量个服务器中每个服务器返回的密文,并根据每个服务器返回的密文处理得到第一密文以发送至第一设备;第一设备利用第一公钥对第一设备的私钥进行加密处理,得到第二密文,并根据第一密文和第二密文处理得到第三密文以发送至代理设备,从而使得代理设备利用第一私钥对第三密文进行解密处理,得到重加密密钥,上述过程不涉及第二设备的公钥以及第一设备的私钥的传输,能够有效保护这些密钥的安全,保障数据传输过程的安全性。
请参见图2,为本申请再一实施例提供的一种密钥生成方法的流程示意图。具体地,该方法可以包括以下步骤:
S201、第一设备发送重加密密钥生成请求至代理设备,所述重加密密钥生成请求用于请求所述代理设备生成所述第一设备与第二设备之间的重加密密钥。
S202、所述代理设备接收所述重加密密钥生成请求,并根据所述重加密密钥生成请求将第一公钥发送至所述第一设备以及目标设备,所述目标设备为所述第二设备或第一数量个服务器,所述第一公钥为所述代理设备的公钥。
其中,步骤S201和步骤S202可以参见图1实施例的步骤S101和步骤S102,本申请实施例在此不做赘述。
S203、所述第二设备获取所述第一数量个服务器中每个服务器返回的密文,所述密文是所述服务器在接收到由所述代理设备或所述第二设备发送的密文生成指令后,利用密文生成指令携带的所述第一公钥对所述服务器存储的第二公钥的分片数据进行加密处理后得到的。
其中,每个服务器存储的第二公钥的分片数据之间的和为第二公钥。例如,第二公钥为PKB,第一数量个服务器包括服务器1和服务器2。服务器1存储的第二公钥的分片数据为PKB1,服务器2存储的第二公钥的分片数据为PKB2。PKB=PKB1+PKB2。在利用第一公钥对服务器存储的第二公钥的分片数据进行加密处理时采用的加密算法为加法同态加密算法,如Paillier算法。
S204、所述第二设备计算所述每个服务器返回的密文之间的和。
S205、所述第二设备将所述每个服务器返回的密文之间的和确定为第一密文。
S206、所述第二设备将所述第一密文发送至所述第一设备。
在步骤S204-步骤S206中,第二设备计算所述每个服务器返回的密文之间的和,并将每个服务器返回的密文之间的和确定为第一密文。在得到第一密文后,第二设备可以将第一密文发送至第一设备。举例来说,假设第一数量个服务器包括服务器1和服务器2。服务器1返回的密文为XB1,服务器2返回的密文为XB2,第一密文为XB。第二设备可以通过如下方式得到XB:XB=XB1+XB2。第二设备在得到XB后,可以将XB发送至第一设备,第一设备可以接收XB。相较于现有技术直接传输第二设备的公钥的方式,本申请实施例传输第一密文的方式,能够有效避免出现第二设备的公钥泄露的情况。
S207、所述第一设备利用所述第一公钥对第一设备的私钥进行加密处理,得到第二密文。
举例来说,假设第一公钥为PKB1,第一设备的私钥为SKA,第二密文为XA,第一设备可以通过如下方式获得XA:XA=EncPKt(SKA)。第一设备利用第一公钥对第一设备的私钥进行加密处理所采用的加密算法为前述提及的加法同态加密算法。
S208、所述第一设备计算所述第一密文与所述第二密文之间的和。
S209、所述第一设备将所述第一密文与所述第二密文之间的和确定为第三密文。
S210、所述第一设备将所述第三密文发送至所述代理设备。
在步骤S208-步骤S210中,第一设备可以计算第一密文与第二密文之间的和,并将第一密文与第二密文之间的和确定为第三密文。在得到第三密文后,第一设备可以将第三密文发送至代理设备。举例来说,假设第一密文为XB,第二密文为XA,第三密文为Xrk,第一设备可以通过如下方式获得Xrk:Xrk=XA+XB。第一设备在得到Xrk后,可以将Xrk发送至代理设备。代理设备可以接收第一设备发送的Xrk。
S211、所述代理设备利用第一私钥对所述第三密文进行解密处理,得到重加密密钥,所述第一私钥为所述代理设备的私钥。
通过步骤S211得到的重加密密钥可以为第一设备的私钥和第二公钥之间的和。举例来说,假设第一私钥为SKt,第三密文为Xrk,重加密密钥为rk,则得到rk的方式可以为rk=DecSKt(Xrk),此处的rk=SKA+PKB。
在一些可能的实施例中,除了将第二设备的公钥以分片形式存储在第二数量个服务器中,也可以将第一设备的私钥以分片形式存储在第二数量个服务器中,具体地,可以将第一设备的私钥以分片数据形式存储在的第二数量个服务器中。也就是说,第二数量个服务器中每个服务器存有第一设备的私钥的分片数据。
在一个实施例中,第一设备利用第一公钥对第一设备的私钥进行加密处理,得到第二密文可以替换为如下步骤:第一设备获取第二数量个服务器中各个服务器返回的密文,并根据各个服务器返回的密文处理得到第二密文。所述的各个服务器返回的密文可以是服务器在接收到由代理设备或第一设备发送的密文生成指令后,利用密文生成指令携带的第一公钥对服务器存储的第一设备的私钥的分片数据进行加密处理后得到的。此处所述的各个服务器存储的第一设备的私钥的分片数据之间的和可以为第一设备的私钥,利用第一公钥对服务器存储的第一设备的私钥的分片数据进行加密处理采用的加密算法可以为本申请实施例提及的加法同态加密算法。相应地,第一设备根据各个服务器返回的密文处理得到第二密文的方式可以为:计算各个服务器返回的密文之间的和,并将各个服务器返回的密文之间的和确定为第二密文。
可见,图2所示的实施例中,第一设备可以发送重加密密钥生成请求至代理设备;代理设备在接收重加密密钥生成请求后,可以根据重加密密钥生成请求将第一公钥发送至第一设备以及目标设备(为第二设备或第一数量个服务器);第二设备可以获取第一数量个服务器中每个服务器返回的密文,并计算每个服务器返回的密文之间的乘积,将每个服务器返回的密文之间的乘积确定为第一密文以发送至第一设备;第一设备可以利用第一公钥对第一设备的私钥进行加密处理,得到第二密文,并计算第一密文与第二密文之间的乘积,并将第一密文与第二密文之间的乘积确定为第三密文以发送至代理设备,从而使得代理设备利用第一私钥对第三密文进行解密处理,得到重加密密钥,上述过程不涉及第二设备的公钥以及第一设备的私钥的传输,能够有效的避免在生成重加密密钥的过程中数据发送方的私钥和数据接收方的公钥的泄露,保护这些密钥的安全,进而避免出现用户数据泄露等问题。
本申请涉及区块链技术,第一设备待发送至第二设备的目标数据可从区块链获取。在疾病诊疗的场景下,该目标数据例如可以为病患的病例数据等数据。在一个实施例中,所述的代理服务器可以为区块链平台。
请参阅图3,为本申请实施例提供的一种密钥生成系统的网络架构示意图。该密钥生成系统可以包括设备10(对应第一设备)、设备20(对应第二设备)和设备30(对应代理设备)以及第一数量个服务器40。其中:
设备10可以发送重加密密钥生成请求至设备30,重加密密钥生成请求用于请求设备30生成设备10与设备20之间的重加密密钥。设备30可以接收设备10发送的重加密密钥生成请求。设备30根据重加密密钥生成请求将第一公钥发送至设备10以及目标设备。此处目标设备为设备20或第一数量个服务器40,第一公钥为设备30的公钥。设备20可以获取第一数量个服务器40中每个服务器40返回的密文。密文是服务器40在接收到由设备30或设备20发送的密文生成指令后,利用密文生成指令携带的第一公钥对服务器40存储的第二公钥的分片数据进行加密处理后得到的,第二公钥为设备20的公钥。设备20可以根据每个服务器40返回的密文处理得到第一密文,并将第一密文发送至设备10。设备10可以接收第一密文。利用第一公钥对设备10的私钥进行加密处理,得到第二密文;设备10根据第一密文和第二密文处理得到第三密文,并将第三密文发送至设备30。设备30可以接收第三密文。设备30利用第一私钥对第三密文进行解密处理,得到重加密密钥,第一私钥为设备30的私钥。上述过程能够有效的避免在生成重加密密钥的过程中的密钥泄露问题,如数据发送方的私钥和数据接收方的公钥的泄露,该过程可以有效的保护这些密钥的安全,进而避免出现用户数据泄露等问题。
本申请实施例中还提供一种存储介质,可以为一种计算机存储介质。该计算机存储介质可以为计算机可读存储介质。所的述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使所述处理器可执行上述方法实施例中所执行的部分或全部步骤,如执行上述方法实施例中第一设备执行的操作、代理设备执行的操作或第二设备执行的操作。
在一个实施例中,所述的计算机存储介质可以为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。该计算机存储介质可以是易失性的,也可以是非易失性的。所述的计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等数据。
其中,本申请所指的区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
Claims (10)
1.一种密钥生成方法,其特征在于,包括:
第一设备发送重加密密钥生成请求至代理设备,所述重加密密钥生成请求用于请求所述代理设备生成所述第一设备与第二设备之间的重加密密钥;
所述代理设备接收所述重加密密钥生成请求,并根据所述重加密密钥生成请求将第一公钥发送至所述第一设备以及目标设备,所述目标设备为所述第二设备或第一数量个服务器,所述第一公钥为所述代理设备的公钥;
所述第二设备获取所述第一数量个服务器中每个服务器返回的密文,所述密文是所述服务器在接收到由所述代理设备或所述第二设备发送的密文生成指令后,利用密文生成指令携带的所述第一公钥对所述服务器存储的第二公钥的分片数据进行加密处理后得到的,所述第二公钥为所述第二设备的公钥;
所述第二设备根据所述每个服务器返回的密文处理得到第一密文,并将所述第一密文发送至所述第一设备;
所述第一设备利用所述第一公钥对第一设备的私钥进行加密处理,得到第二密文;
所述第一设备根据所述第一密文和所述第二密文处理得到第三密文,并将所述第三密文发送至所述代理设备;
所述代理设备接收所述第三密文,并利用第一私钥对所述第三密文进行解密处理,得到重加密密钥,所述第一私钥为所述代理设备的私钥。
2.根据权利要求1所述的方法,其特征在于,所述每个服务器存储的第二公钥的分片数据之间的乘积为所述第二公钥;
所述加密处理采用的加密算法为乘法同态加密算法。
3.根据权利要求2所述的方法,其特征在于,所述第二设备根据所述每个服务器返回的密文处理得到第一密文,包括:
所述第二设备计算所述每个服务器返回的密文之间的乘积;
所述第二设备将所述每个服务器返回的密文之间的乘积确定为第一密文。
4.根据权利要求3所述的方法,其特征在于,所述第一设备根据所述第一密文和所述第二密文处理得到第三密文,包括:
所述第一设备计算所述第一密文与所述第二密文之间的乘积;
所述第一设备将所述第一密文与所述第二密文之间的乘积确定为第三密文。
5.根据权利要求1所述的方法,其特征在于,所述每个服务器存储的第二公钥的分片数据之间的和为所述第二公钥;
所述加密处理采用的加密算法为加法同态加密算法。
6.根据权利要求5所述的方法,其特征在于,所述第二设备根据所述每个服务器返回的密文处理得到第一密文,包括:
所述第二设备计算所述每个服务器返回的密文之间的和;
所述第二设备将所述每个服务器返回的密文之间的和确定为第一密文。
7.根据权利要求6所述的方法,其特征在于,所述第一设备根据所述第一密文和所述第二密文处理得到第三密文,包括:
所述第一设备计算所述第一密文与所述第二密文之间的和;
所述第一设备将所述第一密文与所述第二密文之间的和确定为第三密文。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述代理设备接收所述第一设备发送的第一加密数据,所述第一加密数据为所述第一设备利用所述第一设备的公钥对待发送至所述第二设备的目标数据进行加密处理后得到;
所述代理设备利用所述重加密密钥将所述第一加密数据转换为第二加密数据,并将所述第二加密数据发送至所述第二设备;
所述第二设备利用第二私钥对所述第二加密数据进行解密处理,得到所述目标数据,所述第二私钥为所述第二设备的私钥。
9.一种密钥生成系统,其特征在于,包括:
第一设备,用于发送重加密密钥生成请求至代理设备,所述重加密密钥生成请求用于请求所述代理设备生成所述第一设备与第二设备之间的重加密密钥;
所述代理设备,用于接收所述重加密密钥生成请求,并根据所述重加密密钥生成请求将第一公钥发送至所述第一设备以及目标设备,所述目标设备为所述第二设备或第一数量个服务器,所述第一公钥为所述代理设备的公钥;
所述第二设备,用于获取所述第一数量个服务器中每个服务器返回的密文;所述密文是所述服务器在接收到由所述代理设备或所述第二设备发送的密文生成指令后,利用密文生成指令携带的所述第一公钥对所述服务器存储的第二公钥的分片数据进行加密处理后得到的,所述第二公钥为所述第二设备的公钥;
所述第二设备,还用于根据所述每个服务器返回的密文处理得到第一密文,并将所述第一密文发送至所述第一设备;
所述第一设备,还用于利用所述第一公钥对第一设备的私钥进行加密处理,得到第二密文,并根据所述第一密文和所述第二密文处理得到第三密文,并将所述第三密文发送至所述代理设备;
所述代理设备,还用于接收所述第三密文,并利用第一私钥对所述第三密文进行解密处理,得到重加密密钥,所述第一私钥为所述代理设备的私钥。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111095979.1A CN113824713B (zh) | 2021-09-17 | 2021-09-17 | 一种密钥生成方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111095979.1A CN113824713B (zh) | 2021-09-17 | 2021-09-17 | 一种密钥生成方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113824713A CN113824713A (zh) | 2021-12-21 |
CN113824713B true CN113824713B (zh) | 2023-03-31 |
Family
ID=78914804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111095979.1A Active CN113824713B (zh) | 2021-09-17 | 2021-09-17 | 一种密钥生成方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824713B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884655B (zh) * | 2022-05-05 | 2023-09-12 | 中电金信软件有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111222155A (zh) * | 2020-01-08 | 2020-06-02 | 湖南智慧政务区块链科技有限公司 | 一种重加密与区块链结合的方法及系统 |
US10742422B1 (en) * | 2019-08-14 | 2020-08-11 | OX Labs Inc. | Digital transaction signing for multiple client devices using secured encrypted private keys |
CN112182609A (zh) * | 2020-09-25 | 2021-01-05 | 中国建设银行股份有限公司 | 基于区块链的数据上链存储方法和追溯方法、装置及设备 |
CN112311746A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种数据共享方法及相关设备 |
-
2021
- 2021-09-17 CN CN202111095979.1A patent/CN113824713B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311746A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种数据共享方法及相关设备 |
US10742422B1 (en) * | 2019-08-14 | 2020-08-11 | OX Labs Inc. | Digital transaction signing for multiple client devices using secured encrypted private keys |
CN111222155A (zh) * | 2020-01-08 | 2020-06-02 | 湖南智慧政务区块链科技有限公司 | 一种重加密与区块链结合的方法及系统 |
CN112182609A (zh) * | 2020-09-25 | 2021-01-05 | 中国建设银行股份有限公司 | 基于区块链的数据上链存储方法和追溯方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113824713A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10785019B2 (en) | Data transmission method and apparatus | |
US7688975B2 (en) | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure | |
US8396218B2 (en) | Cryptographic module distribution system, apparatus, and program | |
CN110932851B (zh) | 一种基于pki的多方协同运算的密钥保护方法 | |
JP6363032B2 (ja) | 鍵付替え方向制御システムおよび鍵付替え方向制御方法 | |
KR101982237B1 (ko) | 클라우드 컴퓨팅 환경에서의 속성 기반 암호화를 이용한 데이터 공유 방법 및 시스템 | |
CN111079128A (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN111448779A (zh) | 用于混合秘密共享的系统、设备和方法 | |
WO2005041474A1 (ja) | 認証システム及び遠隔分散保存システム | |
US7266705B2 (en) | Secure transmission of data within a distributed computer system | |
CN111294203B (zh) | 信息传输方法 | |
CN113346998A (zh) | 密钥更新及文件共享方法、装置、设备、计算机存储介质 | |
CN113691502A (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
Bhandari et al. | A framework for data security and storage in Cloud Computing | |
US20210099296A1 (en) | Key generation for use in secured communication | |
CN113824713B (zh) | 一种密钥生成方法、系统及存储介质 | |
JP2006279269A (ja) | 情報管理装置、情報管理システム、ネットワークシステム、ユーザ端末、及びこれらのプログラム | |
CN112822021A (zh) | 一种密钥管理方法和相关装置 | |
WO2023226308A1 (zh) | 一种文件共享方法、系统、电子设备及可读存储介质 | |
WO2018043466A1 (ja) | データ抽出システム、データ抽出方法、登録装置及びプログラム | |
EP4020875A1 (en) | Method, first server, second server, and system for transmitting securely a key | |
KR20190007336A (ko) | 보안채널 생성 방법 및 그 장치와 이를 이용한 보안정보의 송수신 방법 및 그 장치 | |
KR100401063B1 (ko) | 패스워드 기반 키교환 방법 및 그 시스템 | |
CN116866029B (zh) | 随机数加密数据传输方法、装置、计算机设备及存储介质 | |
TWI835684B (zh) | 即時通訊服務資料的備份系統和備份方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |