CN111277605B - 数据分享方法、装置、计算机设备以及存储介质 - Google Patents

数据分享方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN111277605B
CN111277605B CN202010082657.2A CN202010082657A CN111277605B CN 111277605 B CN111277605 B CN 111277605B CN 202010082657 A CN202010082657 A CN 202010082657A CN 111277605 B CN111277605 B CN 111277605B
Authority
CN
China
Prior art keywords
data
encrypted data
encrypted
sending
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
Application number
CN202010082657.2A
Other languages
English (en)
Other versions
CN111277605A (zh
Inventor
彭立
彭思翔
罗易
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010082657.2A priority Critical patent/CN111277605B/zh
Publication of CN111277605A publication Critical patent/CN111277605A/zh
Application granted granted Critical
Publication of CN111277605B publication Critical patent/CN111277605B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本申请实施例公开了一种数据分享方法、装置、计算机设备以及存储介质,数据分享方法包括:发送节点获取目标数据,确定目标数据的数据指纹;发送节点采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据;发送节点获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥;发送节点将重加密密钥和第一加密数据发送至代理服务器。采用本申请,可以提高用户数据的安全性。

Description

数据分享方法、装置、计算机设备以及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据分享方法、装置、计算机设备以及存储介质。
背景技术
云存储满足了用户数据共享的需求,用户可以通过购买云存储服务对数据进行存储和共享。但是,云端流通的数据量与日俱增,其中也包含了大量敏感数据和隐私信息。因此,如何保护用户数据的隐私性在云计算领域具有重要意义。
目前,当用户需要分享云端服务器中的数据时,可以采用代理重加密机制来保护用户数据在云服务器中的安全性,具体过程为:首先用户A对文件1加密,并将加密后的密文1上传至云端服务器。当用户A需要向用户B分享文件1时,用户A为密文1生成重加密密钥,将该重加密密钥也发送至云端服务器。云端服务器利用重加密密钥对密文1进行重加密,以将由用户A加密的密文1转换为针对用户B的密文2。用户B接收到云端服务器发送的密文2后,可以采用用户B的私钥对密文2解密,以得到文件1。
现有的重加密机制虽然不泄露用户数据以及私钥信息,但不能抵抗云端服务器和接收方的合谋攻击。例如,若用户A只希望向用户B分享一个文件,云端服务器获取到重加密密钥后,可以对用户A存储在云端服务器中的所有加密文件都进行重加密,用户B可以利用自己的私钥对重加密后的加密文件进行解密,以得到用户A的所有加密文件的明文数据。
上述可知,现有的重加密方案仍然存在安全漏洞,进而导致用户数据的安全性低下。
发明内容
本申请实施例提供一种数据分享方法、装置、计算机设备以及存储介质,可以提高用户数据的安全性。
本申请实施例一方面提供了一种数据分享方法,包括:
发送节点获取目标数据,确定目标数据的数据指纹;
发送节点采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据;
发送节点获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥;
发送节点将重加密密钥和第一加密数据发送至代理服务器,指示代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据。
其中,发送节点采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据,包括:
发送节点采用发送节点的发送公钥、数据指纹对目标数据进行非对称加密,得到第一加密数据。
其中,还包括:
发送节点接收代理服务器发送的第一加密数据;
发送节点采用发送私钥、数据指纹对第一加密数据进行非对称解密,得到目标数据。
其中,发送节点采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据,包括:
发送节点获取对称密钥;
发送节点采用对称密钥对目标数据进行对称加密,得到第一单位加密数据;
送节点采用发送公钥、数据指纹对对称密钥进行非对称加密,得到第二单位加密数据;
发送节点将第一单位加密数据和第二单位加密数据组合为第一加密数据。
其中,还包括:
发送节点接收代理服务器发送的第一加密数据;
发送节点采用发送私钥、数据指纹对第一加密数据中的第二单位加密数据进行非对称解密,得到对称密钥;
发送节点采用对称密钥对第一加密数据中的第一单位加密数据进行对称解密,得到目标数据。
本申请实施例一方面提供了一种数据分享方法,包括:
代理服务器获取第一加密数据,以及针对第一加密数据的重加密密钥;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据;
代理服务器将第二加密数据发送至接收节点,指示接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
其中,第一加密数据是采用发送公钥以及数据指纹对目标数据进行非对称加密后生成的;第一加密数据包括第一单位加密数据和第二单位加密数据;第一单位加密数据是由发送公钥以及数据指纹生成的;第二单位加密数据是由目标数据生成的;
代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据,包括:
代理服务器将第一单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三单位加密数据;
代理服务器将第三单位加密数据以及第二单位加密数据组合为第二加密数据。
其中,第一加密数据包括采用对称密钥对目标数据进行对称加密后生成的第一单位加密数据,以及采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的第二单位加密数据;第二单位加密数据包括第一子单位加密数据和第二子单位加密数据;第一子单位数据是由发送公钥以及数据指纹生成的;第二子单位加密数据是由对称密钥生成的;
代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据,包括:
代理服务器将第一子单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三子单位加密数据;
代理服务器将第三子单位加密数据、第二子单位加密数据以及第一单位加密数据组合为第二加密数据。
本申请实施例一方面提供了一种数据分享方法,包括:
接收节点获取第二加密数据;第二加密数据是采用重加密密钥对第一加密数据进行重加密后生成的;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
其中,第二加密数据包括第一加密数据中的第一单位加密数据、第一加密数据中的第二子单位加密数据,以及由第一加密数据中的第一子单位加密数据和重加密密钥双线性映射生成的第三子单位加密数据;第一单位加密数据是采用对称密钥对目标数据进行对称加密后生成的;第一子单位加密数据和第二子单位加密数据是采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的;
接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据,包括:
接收节点采用接收私钥对第二子单位加密数据以及第三子单位加密数据进行非对称解密,得到对称密钥;
接收节点采用对称密钥对第一单位加密数据进行对称解密,得到目标数据。
本申请实施例一方面提供了一种数据分享系统,包括:
发送节点获取目标数据,确定目标数据的数据指纹;
发送节点采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据;
发送节点获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥;
发送节点将重加密密钥和第一加密数据发送至代理服务器;
代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据;
代理服务器将第二加密数据发送至接收节点;
接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
本申请实施例一方面提供了一种数据分享装置,包括:
第一获取模块,用于获取目标数据,确定目标数据的数据指纹;
第一加密模块,用于采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据;
第一获取模块,还用于获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥;
第一发送模块,用于将重加密密钥和第一加密数据发送至代理服务器,指示代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据。
其中,第一加密模块,包括:
第一加密单元,用于采用发送节点的发送公钥、数据指纹对目标数据进行非对称加密,得到第一加密数据。
其中,还包括:
第一解密模块,用于接收代理服务器发送的第一加密数据,采用发送私钥、数据指纹对第一加密数据进行非对称解密,得到目标数据。
其中,第一加密模块,包括:
第二加密单元,用于获取对称密钥,采用对称密钥对目标数据进行对称加密,得到第一单位加密数据,采用发送公钥、数据指纹对对称密钥进行非对称加密,得到第二单位加密数据,将第一单位加密数据和第二单位加密数据组合为第一加密数据。
其中,还包括:
第二解密模块,用于接收代理服务器发送的第一加密数据,采用发送私钥、数据指纹对第一加密数据中的第二单位加密数据进行非对称解密,得到对称密钥,采用对称密钥对第一加密数据中的第一单位加密数据进行对称解密,得到目标数据。
本申请实施例一方面提供了一种数据分享装置,包括:
第二获取模块,用于获取第一加密数据,以及针对第一加密数据的重加密密钥;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
第二加密模块,用于采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据;
第二发送模块,用于将第二加密数据发送至接收节点,指示接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
其中,第一加密数据是采用发送公钥以及数据指纹对目标数据进行非对称加密后生成的;第一加密数据包括第一单位加密数据和第二单位加密数据;第一单位加密数据是由发送公钥以及数据指纹生成的;第二单位加密数据是由目标数据生成的;
第二加密模块,包括:
第三加密单元,用于将第一单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三单位加密数据,将第三单位加密数据以及第二单位加密数据组合为第二加密数据。
其中,第一加密数据包括采用对称密钥对目标数据进行对称加密后生成的第一单位加密数据,以及采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的第二单位加密数据;第二单位加密数据包括第一子单位加密数据和第二子单位加密数据;第一子单位数据是由发送公钥以及数据指纹生成的;第二子单位加密数据是由对称密钥生成的;
第二加密模块,包括:
第四加密单元,用于将第一子单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三子单位加密数据,将第三子单位加密数据、第二子单位加密数据以及第一单位加密数据组合为第二加密数据。
本申请实施例一方面提供了一种数据分享装置,包括:
第三获取模块,用于获取第二加密数据;第二加密数据是采用重加密密钥对第一加密数据进行重加密后生成的;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
第三解密模块,用于采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
其中,第二加密数据包括第一加密数据中的第一单位加密数据、第一加密数据中的第二子单位加密数据,以及由第一加密数据中的第一子单位加密数据和重加密密钥双线性映射生成的第三子单位加密数据;第一单位加密数据是采用对称密钥对目标数据进行对称加密后生成的;第一子单位加密数据和第二子单位加密数据是采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的;
第三解密模块,具体用于采用接收私钥对第二子单位加密数据以及第三子单位加密数据进行非对称解密,得到对称密钥,采用对称密钥对第一单位加密数据进行对称解密,得到目标数据。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述各实施例中的方法。
本申请实施例一方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行上述各实施例中的方法。
本申请中的发送节点采用自己的公钥以及待分享的目标数据的数据指纹,对目标数据进行加密以得到第一加密数据,以及采用发送节点的私钥、接收节点的公钥以及数据指纹生成重加密密钥,该重加密密钥是用于对第一加密数据重加密,以将第一加密数据转换为针对接收节点的第二加密数据。上述可知,不论是生成第一加密数据或者是生成重加密密钥,都引入了目标数据的数据指纹,使得重加密密钥只能用于重加密该第一加密数据,而不能重加密其余的数据。采用本申请,可以实现细粒度的文件级分享安全控制,在数据分享过程中,不仅不会泄露用户数据以及私钥信息,且可以抵抗云端服务器和接收方的合谋攻击,修补了现有重加密方案的安全漏洞,提高了用户数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据分享的系统架构图;
图2a-图2c是本申请实施例提供的一种数据分享的场景示意图;
图3是本申请实施例提供的一种数据分享系统的交互示意图;
图4是本申请实施例提供的一种数据分享方法的流程示意图;
图5是本申请实施例提供的一种数据分享方法的流程示意图;
图6是本申请实施例提供的一种数据分享方法的流程示意图;
图7是本申请实施例提供的一种初始化数据分享系统的示意图;
图8是本申请实施例提供的一种上传加密文件的示意图;
图9是本申请实施例提供的一种对加密文件进行解密的示意图;
图10是本申请实施例提供的一种分享加密文件的示意图;
图11是本申请实施例提供的一种数据分享装置的结构示意图;
图12是本申请实施例提供的一种数据分享装置的结构示意图;
图13是本申请实施例提供的一种数据分享装置的结构示意图;
图14是本申请实施例提供的一种计算机设备的结构示意图;
图15是本申请实施例提供的一种计算机设备的结构示意图;
图16是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,是本申请实施例提供的一种数据分享的系统架构图。数据分享涉及服务器10d以及终端设备集群,终端设备集群可以包括:终端设备10a、终端设备10b以及终端设备10c等。
以终端设备10a和终端设备10b为例,终端设备10a是用户A所在的终端设备,且终端设备10a是数据发送方;终端设备10b是用户B所在的终端设备,且终端设备10b是数据接收方。
当用户A需要向用户B分享目标数据时,终端设备10a获取该目标数据,并计算该目标数据的数据指纹。终端设备10a可以采用用户A的公钥、上述数据指纹对目标数据加密,得到与之对应的第一加密数据。
终端设备10a获取终用户B的公钥,终端设备10a根据用户B的公钥、用户A的私钥以及数据指纹生成重加密密钥,将第一加密数据以及重加密密钥一并发送至服务器10d。
服务器10d可以采用重加密密钥对第一加密数据重加密,以将第一加密数据转换为由用户B的公钥加密的第二加密数据,服务器10d可以将第二加密数据发送至用户B所在的终端设备10b。
终端设备10b采用用户B的私钥对第二加密数据解密,可以得到目标数据,至此,就完成了用户A向用户B分享目标数据的整个过程。
在这个过程中,无论是第一加密数据或者是重加密密钥都引入了目标数据的数据指纹,使得重加密密钥只能对目标数据对应的第一加密数据进行重加密,而不能重加密用户A其余的数据,因此可以避免服务器和接收方合谋窃取用户A的其余数据的情况,可以提高数据的安全性。
其中,图1所示的终端设备10a、终端设备10b、终端设备10c等可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)或者可穿戴设备(例如智能手表、智能手环等)等;服务器10d可以是单个服务器设备,也可以是包含多个服务器设备的服务器集群。
下述实施例以服务器10d、终端设备10a以及终端设备10b如何分享数据为例进行具体说明:
请参见图2a-图2c,是本申请实施例提供的一种数据分享的场景示意图,图2a主要描述终端设备10a如何生成目标数据的加密数据以及重加密密钥;图2b主要描述服务器10d如何对终端设备10a生成的加密数据进行重加密;图2c主要描述终端设备10b如何对重加密后的加密数据解密。终端设备10a是与用户A具有绑定关系的终端设备,终端设备10b是与用户B具有绑定关系的终端设备。
如图2a所示,当用户A需要通过服务器10d向用户B分享目标数据20a时,用户A所在的终端设备10a获取该目标数据20a,并调用哈希算法,计算目标数据20a的哈希散列值20b。哈希算法可以是MD4算法、MD5算法或者SHA-256算法等。
终端设备10a获取用户A的公钥(对应图2a中的公钥1),采用上述哈希散列值20b、公钥1对目标数据20a加密,生成加密数据20d。
终端设备10a可以将加密数据20d发送至服务器10d。
至此,终端设备10a就完成了对目标数据的加密以及上传过程。
如图2b所示,终端设备10a获取用户B的公钥(对应图2a中的公钥2),根据上述公钥2、哈希散列值20b以及用户A的私钥(对应图2a中的私钥1)生成针对加密数据20d的重加密密钥20g。
终端设备10a可以将重加加密密钥发送至服务器10d。
服务器10d采用重加加密密钥20g对加密数据20d进行重加密,以将加密数据20d转换为由用户B的公钥加密的加密数据20h。
至此,服务器10d就完成了对加密数据20d的重加密。
后续,服务器10d可以将重加密后的加密数据20h发送至用户B所在的终端设备10b。
如图2c所示,终端设备10b接收服务器10d发送的加密数据20h后,可以采用用户B的私钥(对应图2c中的私钥2)对加密数据20h进行解密,得到目标数据20a。
至此,就完成为了用户A向用户B分享目标数据20a的分享过程。
还需说明的是,当后续用户A需要通过服务器10d将目标数据20a分享给其余用户时(例如,分享给用户C时),由于加密数据20d已经存储在服务器10d中了,此时终端设备10a可以不必执行对目标数据的加密以及上传过程。
终端设备10a可以直接根据上述用户C的公钥、哈希散列值20b以及用户A的私钥重新生成针对加密数据20d的重加密密钥。服务器采用新生成的重加密密钥对加密数据20d进行重加密,以将加密数据20d转换为由用户C的公钥加密的加密数据。后续,用户C就可以采用自己的私钥对重加密后的加密数据解密,同样可以得到目标数据。
上述可知,当目标数据20a需要被多次分享给不同的用户时,终端设备10a只需要对目标数据20a加密一次以生成加密数据20d,以及为每个一个用户生成与之对应的重加密密钥,即可实现同一个目标数据的多次分享。因此,当数据需要分享给多个用户时,采用本方案不仅数据的安全性可以得到保证,也可以提高数据分享的效率。
进一步地,当数据需要分享给多个用户时,由于发送方只需要为不同的接收方生成不同的重加密密钥,即可以完成数据分享,而生成重加密密钥的耗时较短,因此本方案可以应用于实时授权分享场景中,使得本方案具有灵活性。
其中,发送节点(如上述实施例中的终端设备10a)生成第一加密数据(如上述实施例中的加密数据20d)以及重加密密钥(如上述实施例中的重加密密钥20g),代理服务器(如上述实施例中的服务器10d)采用重加密密钥对第一加密数据重加密,生成第二加密数据(如上述实施例中的加密数据20h),接收节点(如上述实施例中的终端设备10b)解密得到目标数据的具体过程可以参见下述图3-图10对应的实施例。
请参见图3,是本申请实施例提供的一种数据分享系统的交互示意图,数据分享系统包括发送节点、代理服务器以及接收节点。下述实施例主要描述发送节点、代理服务器以及接收节点之间完成数据分享的交互过程。
发送节点是数据发送方,接收节点是数据接收方,代理服务器是中间方。数据分享的交互过程包括如下步骤:
步骤S101,发送节点获取目标数据,确定目标数据的数据指纹。
具体的,发送节点获取待分享的目标数据file1(如上述图2a-图2c对应实施例中的目标数据20a),目标数据可以是明文数据(例如,一张图片,一个文本等),也可以是已经加密过的加密数据。
发送节点采用加密算法计算目标数据file1的数据指纹(如上述图2a-图2c对应实施例中的哈希散列值20b),目标数据file1的数据指纹可以表示为:h(file1)。
数据指纹h(file1)是一串可以标识目标数据file1的密文,且不与其他数据的数据指纹相冲突。
一般来说,数据指纹的长度固定,且数据指纹通常用一个短的随机字母和数字组成的字符串来表示。
其中,发送节点可以采用哈希算法(例如,MD5算法、SHA1算法、SHA256算法等)来计算目标数据file1的数据指纹h(file1);也可以采用HMAC(Hash-based MessageAuthentication Code,哈希消息认证码)算法(例如,HmacMD5算法、HmacSHA1算法、HmacSHA256算法等)来计算目标数据file1的数据指纹h(file1)。若数据指纹h(file1)是采用哈希算法计算得到的,数据指纹h(file1)也可以称为哈希值,或者哈希散列值;若数据指纹h(file1)是采用HMAC算法那计算得到的,数据指纹h(file1)也可以称为哈希消息认证码。
步骤S102,发送节点采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据。
具体的,首先对整个数据分享过程中涉及参数进行初始化:
首先定义q阶循环群G1,G2,以及双线性映射e,g是循环群G1的生成元,g∈G1,Z=e(g,g)∈G2。
生成元g以及Z是公共参数,也即是上述两个参数对外公开。
发送节点对应用户(如上述图2a-图2c对应实施例中的用户A)的私钥skA=a,发送节点对应用户的公钥pkA=ga。发送节点对应用户的私钥可以称为发送私钥skA(如上述图2a-图2c对应实施例中的私钥1),发送节点对应用户的公钥可以称为发送公钥pkA(如上述图2a-图2c对应实施例中的公钥1),当然,发送私钥skA是用户自己保存的,发送公钥pkA可以对外公开。
接收节点对应用户(如上述图2a-图2c对应实施例中的用户B)的私钥skB=b,接收节点对应用户的公钥pkB=gb。接收节点对应用户的私钥可以称为接收私钥skB(如上述图2a-图2c对应实施例中的私钥2),接收节点对应用户的公钥可以称为接收公钥pkB(如上述图2a-图2c对应实施例中的公钥2),当然,接收私钥是用户自己保存的,接收公钥可以对外公开。
循环群的定义为:若群G中存在g∈G,使得G={g1,g2,...}=<g>,则称G是循环群,并称g是循环群G的生成元。
如果G是n阶循环群,则G={g1,g2,...,gn}=<g>。
举例来说,n∈Z+,Gn={1,2,3,...,n},则(G,+)是n阶循环群,且该循环群的生成元为1。这是因为,
Figure BDA0002380865110000121
双线性映射e可以把两个同阶的循环群中的元素,映射到另一个循环群。例如,e:G1×G2→GT,若g1∈G1,g2∈G2,可通过e计算gT=e(g1,g2),e(g1,g2)称为双线性对。
双线性映射e具有双线性性质:
Figure BDA0002380865110000122
均有e((g1)a,(g2)b)=e(g1,g2)ab。双线性映射e的双线性性质在后续重加密步骤中会运用到。
需要说明的是,上述定义生成元g、Z以及双线性映射e可以是由发送节点定义,也可以由代理服务器定义,也可以由接收节点定义。
发送节点可以采用发送公钥pkA以及数据指纹h(file1)对目标数据file1进行加密,得到第一加密数据c1(如上述图2a-图2c对应实施例中的加密数据20d)。
对目标数据file1加密,得到第一加密数据c1的方式有两种,下面首先对第一种加密方式进行说明:
发送节点采用发送公钥pkA以及数据指纹h(file1)对目标数据file1进行非对称加密,得到第一加密数据c1,第一加密数据c1可以用下述公式(1)表示:
c1=Encpro(pkA,file1,h(file1))=(g(a+h(file1))k,file1Zk) (1)
其中,函数Encpro()是本申请所设计的加密函数,k是加密时选取的随机数,pkA=ga
第一加密数据c1可以看做一个密文对,可以令c1=(c1.1,c1.2),其中第一单位加密数据c1.1=g(a+hash(file1))k,第二单位加密数据c1.2=file1Zk
也即是,输入发送公钥pkA、数据指纹h(file1)以及目标数据file1,采用公式(1)可以输出第一加密数据c1。
下面对第二种加密方式进行说明:
发送节点获取一次性的对称密钥key,采用对称加密算法(对称加密算法可以是AES算法,IDEA算法或者PBE算法等),以及对称密钥key对目标数据file1进行对称加密,得到第一单位加密数据c1.1,第一单位加密数据c1.1可以用下述公式(2)表示:
c1.1=Enc(key,file1) (2)
其中,函数Enc()表示对称加密函数。
发送节点再采用发送公钥pkA以及数据指纹h(file1)对对称密钥key进行非对称加密,得到第二单位加密数据c1.2。第二单位加密数据c1.2可以用下述公式(3)表示:
c1.2=Encpro(pkA,key,h(file1))=(g(a+h(file1))k,keyZk) (3)
其中,pkA=ga。比较公式(1)和公式(3)可以发现,第一种加密方式所确定的第一加密数据c1与第二种加密方式所确定的第二单位加密数据c1.2非常相似。同样地第二单位加密数据c1.2也可以看做一个密文对,可以令c1.2=(c1.2.1,c1.2.2),其中第一子单位加密数据c1.2.1=g(a+hash(file1))k,第二子单位加密数据c1.2.2=keyZk
发送节点可以将上述确定的第一单位加密数据c1.1以及第二单位加密数据c1.2(即第一子单位加密数据c1.2.1和第二子单位加密数据c1.2.2)组合为第一加密数据c1,如下述公式(4):
c1=(c1.1,c1.2)=(c1.1,(c1.2.1,c1.2.2)) (4)
对于第二种加密方式,也可以称作信封加密方式。
比较上述两种加密方式可以发现,第一种加密方式的加密过程更简单,但加密耗时更长,这是因为非对称加密的耗时是要远远大于对称加密的耗时的,且第一种方式是直接用发送公钥对数据量大的明文目标数据非对称加密;虽然第二种加密方式也采用发送公钥对对称密钥进行了非对称加密,但一般来说对称密钥的数据体量(对称密钥的长度为256bit比特或者128bit比特)是要远远小于目标数据的数据体量的,因此第二种信封加密方式相比第一种加密方式,加密效率更高。
步骤S103,发送节点获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥。
具体的,发送节点获取接收节点的接收公钥pkB,根据发送节点的发送私钥skA、接收公钥pkB、数据指纹h(file1)以及下述公式(5),确定重加密密钥keyA→B,file1(如上述图2a-图2c对应实施例中的重加密密钥20g),重加密密钥keyA→B,file1的计算公式如下:
Figure BDA0002380865110000141
其中,发送私钥skA=a。
需要说明的是,由于引入了目标数据file1的数据指纹h(file1),因此重加密密钥只能对第一加密数据c1进行重加密,对其余的加密数据即使采用重加密密钥进行了重加密,后续接收节点也是不能解密的。
步骤S104,发送节点将重加密密钥和第一加密数据发送至代理服务器。
具体的,发送节点将第一加密数据c1以及重加密密钥keyA→B,file1发送至代理服务器。
可选的,发送节点在将第一加密数据c1发送至代理服务器后,可以将目标数据file1,以及第一加密数据c1从本地删除,利用代理服务器的云存储服务,可以降低发送节点的存储压力。
步骤S105,代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据。
具体的,代理服务器采用重加密密钥keyA→B,file1对第一加密数据c1进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据c2(如上述图2a-图2c对应实施例中的加密数据20h),也就是说,转换后的第二加密数据c2只能由接收节点的接收私钥skB来解密。
重加密的具体过程为:
若第一加密数据c1是采用第一种加密方式所确定的,那么代理服务器获取到第一加密数据c1以及重加密密钥keyA→B,file1后,将第一加密数据c1中的第一单位加密数据c1.1和重加密密钥keyA→B,file1双线性映射为第三单位加密数据c1.3。代理服务器可以将第三单位加密数据c1.3以及第一加密数据c1中的第二单位加密数据c1.2组合为第二加密数据c2。
上述过程采用数学公式可以表示为:
采用下述公式(6)对第一加密数据c1进行重加密,以得到第二加密数据c2:
c2=(e(c1.1,keyA→B,file1),c1.2) (6)
其中,c1=(c1.1,c1.2),c1.1=g(a+h(file1))k,c1.2=file1Zk
Figure BDA0002380865110000151
可以令第三单位加密数据c1.3=e(c1.1,keyA→B,file1)。
将c1.1、c1.2以及重加密密钥keyA→B,file1的具体取值代入公式(6),第二加密数据c2可以表示为下述公式(7):
Figure BDA0002380865110000152
至此,采用公式(7),就可以计算出第二加密数据c2。
下面对重加密后的第二加密数据c2的物理意义进行说明:
利用双线性映射e的双线性性质,可以将上述公式(7)转换为下述公式(8):
Figure BDA0002380865110000153
从公式(8)可以看出,第二加密数据c2与接收节点的接收公钥gb相关,具体是第二加密数据c2中的第三单位加密数据c1.3与接收节点的接收公钥gb相关。也就是说,重加密后的第二加密数据c2可以看做是由接收公钥gb加密的。
其中,Z=e(g,g),再利用双线性映射e的双线性性质,第二加密数据c2还可以表示为:c2=(e(g,g)kb,file1Zk)=(Zkb,file1Zk)。
若第一加密数据c1是采用第二种加密方式所确定的,那么代理服务器获取到第一加密数据c1以及重加密密钥keyA→B,file1后,将第一加密数据c1中的第二单位加密数据c1.2中的第一子单位加密数据c1.2.1和重加密密钥keyA→B,file1双线性映射为第三子单位加密数据c1.3.1。代理服务器可以将第三子单位加密数据c1.3.1、第一加密数据c1中的第二单位加密数据c1.2中的第二子单位加密数据c1.2.2以及第一加密数据c1中的第一单位加密数据c1.1组合为第二加密数据c2。
上述过程采用数学公式可以表示为:
采用下述公式(9)对第一加密数据c1进行重加密,以得到第二加密数据c2:
Figure BDA0002380865110000161
其中,c1=(c1.1,c1.2)=(c1.1,(c1.2.1,c1.2.2)),c1.1=Enc(key,file1),c1.2.1=g(a+h(file1))k,c1.2.2=keyZk
Figure BDA0002380865110000162
可以令第三单位子加密数据c1.3.1=e(c1.2.1,keyA→B,file1)。
将c1.1、c1.2.1、c1.2.2以及重加密密钥keyA→B,file1的具体取值代入公式(9),第二加密数据c2可以表示为下述公式(10):
Figure BDA0002380865110000163
至此,采用公式(10),就可以计算出第二加密数据c2。
下面对重加密后的第二加密数据c2的物理意义进行说明:
利用双线性映射e的双线性性质,可以将上述公式(10)转换为下述公式(11):
Figure BDA0002380865110000164
从公式(11)可以看出,第二加密数据c2与接收节点的接收公钥gb相关,具体是第二加密数据c2中的第三子单位加密数据c1.3.1与接收节点的接收公钥gb相关。也就是说,重加密后的第二加密数据c2可以看做是由接收公钥gb加密的。
其中,Z=e(g,g),再利用双线性映射e的双线性性质,第二加密数据c2还可以表示为:c2=(c1.1,(e(g,g)kb,keyZk))=(c1.1,(Zkb,keyZk))。
分析上述过程可以发现,引入了数据指纹的重加密密钥keyA→B,file1只能对第一加密数据c1加密的原因是,在进行双线性映射时,重加密密钥
Figure BDA0002380865110000165
可以与第一单位加密数据c1.1=g(a+h(file1))k(或者第一子单位加密数据c1.2.1=g(a+h(file1))k)相乘,可以约掉a+h(file1),使得双线性映射后的第三单位加密数据(或者第三子单位加密数据)只与接收节点的接收公钥gb相关。
步骤S106,代理服务器将第二加密数据发送至接收节点。
步骤S107,接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
具体的,接收节点获取接收私钥skB,采用接收私钥skB对第二加密数据c2解密,以得到目标数据file1。
由于在前述中生成第一加密数据以及对第一加密数据重加密生成第二加密数据分为两种情况,此处对第二加密数据解密也分为两种情况:
若在前述中第一加密数据c1是采用第一种加密方式所确定的,那么第二加密数据c2可以表示为:c2=(Zkb,file1Zk),从前述可知,Zkb即是前述中的第三单位加密数据c1.3,file1Zk即是第二单位加密数据c1.2。
采用下述公式(12)以及接收私钥skB对第二加密数据c2进行非对称解密,得到目标数据file1:
Figure BDA0002380865110000171
下面对上述解密过程的正确性进行证明:
对公式(12)进行进一步的计算,
Figure BDA0002380865110000172
说明采用接收节点的接收私钥skB=b可以成功解密第二加密数据c2得到目标数据file1,即可以证明本申请提出的重加密的正确性。
若在前述中第一加密数据c1是采用第二种加密方式所确定的,那么第二加密数据c2可以表示为:c2=(c1.1,(Zkb,keyZk)),从前述可知,c1.1为第一单位加密数据,Zkb为第三子单位加密数据c1.3.1,keyZk为第二子单位加密数据c1.2.2。
采用下述公式(13)以及接收私钥skB对第二加密数据c2中的第二子单位加密数据c1.2.2以及第三子单位加密数据c1.3.1非对称解密,得到对称密钥key:
Figure BDA0002380865110000173
接收节点再采用与前述中的对称加密算法对应的对称解密算法,以及对称密钥key对第二加密数据c2中的第一单位加密数据c1.1解密,得到目标数据file1。目标数据file1的解密可以用下述公式(14)表示:
file1=Dec(key,c1.1) (14)
其中,函数Dec()表示对称解密函数。
下面对上述对称密钥key的解密过程的正确性进行证明:
对公式(14)进行进一步的计算,
Figure BDA0002380865110000181
说明采用接收节点的接收私钥skB=b可以成功解密第二加密c2数据得到对称密钥key,即证明本申请提出的重加密的正确性。
值得注意的是,发送节点首次对目标数据加密,生成第一加密数据的方式有两种,后续代理服务器重加密的方式,以及接收节点解密的方式都是与发送节点的加密方式直接相关的。也就是说,只要生成第一加密数据的加密方式确定了,后续代理服务器的重加密方式以及接收节点的解密方式也都直接确定了。
上述可知,不论是生成第一加密数据或者是生成重加密密钥,都引入了目标数据的数据指纹,使得重加密密钥只能用于重加密该第一加密数据,而不能重加密其余的数据。采用本申请,可以实现细粒度的文件级分享安全控制,在数据分享过程中,不仅不会泄露用户数据以及私钥信息,且可以抵抗云端服务器和接收方的合谋攻击,修补了现有重加密方案的安全漏洞,提高了用户数据的安全性。
请参见图4,是本申请实施例提供的一种数据分享方法的流程示意图,本实施例主要涉及发送节点生成第一加密数据以及重加密密钥,数据分享方法可以包括如下步骤:
步骤S201,发送节点获取目标数据,确定目标数据的数据指纹。
具体的,发送节点获取待分享的目标数据file1,采用哈希散列算法,计算该目标数据file1的数据指纹h(file1)。
步骤S202,发送节点采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据。
具体的,发送节点可以采用发送节点的发送公钥pkA以及数据指纹h(file1)对目标数据file1进行加密,得到第一加密数据c1。
从前述图3对应实施例中的步骤S102可知,发送节点对目标数据file1的方式有两种,一种是直接对目标数据file1加密,一种是采用信封加密。
步骤S203,发送节点获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥。
步骤S204,发送节点将重加密密钥和第一加密数据发送至代理服务器,指示代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据。
步骤S201-步骤S204的具体过程可以参见上述图3对应实施例中的步骤S101-步骤S104。
需要说明的是,对第一加密数据进行重加密以生成第二加密数据,也可以不由代理服务器来执行,而由发送节点来执行。那么,发送节点生成第二加密数据后,就由发送节点发送至接收节点;或者发送节点发送至代理服务器,由代理服务器转发至接收节点。
接收节点和发送节点也可以是同一个终端设备,这样,发送节点基于发送私钥可以对重加密后的第二加密数据解密,得到目标数据。
可选的,发送节点在将第一加密数据c1发送至代理服务器后,可以将目标数据file1,、第一加密数据c1以及随机数k都从本地删除,利用代理服务器的云存储服务,可以降低发送节点的存储压力。
当发送节点需要重新获取目标数据file1时,可以向代理服务器发送获取请求,代理服务器向发送节点发送第一加密数据c1。
从前述可知,第一加密数据c1的加密方式有两种。
若发送节点是采用第一种加密方式确定的第一加密数据c1,从前述可知第一加密数据c1可以表示为c1=(c1.1,c1.2),其中第一单位加密数据c1.1=g(a+h(file1))k,第二单位加密数据c1.2=file1Zk
发送节点获取发送私钥skA,可以采用下述公式(15),发送私钥skA以及数据指纹h(file1)对第一加密数据c1非对称解密:
Figure BDA0002380865110000191
其中,发送私钥skA=a。
可以将第一单位加密数据c1.1和第二单位加密数据c1.2的取值代入上述公式(15),公式(15)可以表示为下述公式(16):
Figure BDA0002380865110000192
至此,发送节点可以获取到目标数据file1。
下面对上述解密过程的正确性进行证明:
Z=e(g,g),利用双线性映射e的双线性性质对公式(16)进行进一步的计算:
Figure BDA0002380865110000201
说明采用发送节点的发送私钥skA=a以及数据指纹h(file1)可以成功解密第一加密数据c1,得到目标数据file1。
若发送节点是采用第二种加密方式确定的第一加密数据c1,从前述可知第一加密数据c1可以表示为c1=(c1.1,c1.2)=(c1.1,(c1.2.1,c1.2.2)),其中第一单位加密数据c1.1=Enc(key,file1),第一子单位加密数据c1.2.1=g(a+h(file1))k,第二子单位加密数据c1.2.2=keyZk
发送节点可以采用下述公式(17),发送私钥skA以及数据指纹h(file1)对第一加密数据c1中的第一子单位加密数据c1.2.1和第二子单位加密数据c1.2.2非对称解密,得到对称密钥key:
Figure BDA0002380865110000202
其中,发送私钥skA=a。
可以将第一子单位加密数据c1.2.1和第二子单位加密数据c1.2.2的取值代入上述公式(17),公式(17)可以表示为下述公式(18):
Figure BDA0002380865110000203
发送节点再采用与前述中的对称加密算法对应的对称解密算法,以及对称密钥key对第一加密数据c1中的第一单位加密数据c1.1解密,得到目标数据file1。目标数据file1的解密可以用下述公式(19)表示:
file1=Dec(key,c1.1) (19)
其中,函数Dec()表示对称解密函数。
下面对上述对称密钥key的解密过程的正确性进行证明:
Z=e(g,g),利用双线性映射e的双线性性质对公式(19)进行进一步的计算:
Figure BDA0002380865110000204
说明采用发送节点的发送私钥skA=a以及数据指纹h(file1)可以成功解密第一加密数据c1,得到对称密钥key。
总的来说,若发送节点想要解密第一加密数据c1,需要基于发送私钥skA以及数据指纹h(file1)才能解密第一加密数据c1,以得到目标数据file1。
上述可知,不论是生成第一加密数据或者是生成重加密密钥,都引入了目标数据的数据指纹,使得重加密密钥只能用于重加密该第一加密数据,而不能重加密其余的数据。采用本申请,可以实现细粒度的文件级分享安全控制,在数据分享过程中,不仅不会泄露用户数据以及私钥信息,且可以抵抗云端服务器和接收方的合谋攻击,修补了现有重加密方案的安全漏洞,提高了用户数据的安全性。
请参见图5,是本申请实施例提供的一种数据分享方法的流程示意图,本实施例主要涉及代理服务器对第一加密数据重加密以生成第二加密数据,数据分享方法可以包括如下步骤:
步骤S301,代理服务器获取第一加密数据,以及针对第一加密数据的重加密密钥;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的。
具体的,代理服务器接收发送节点发送的第一加密数据c1以及重加密密钥keyA→B,file1
其中,接收节点获取第一加密数据c1以及重加密密钥keyA→B,file1的具体过程可以参见上述图3对应实施例中的步骤S101-步骤S103。
步骤S302,代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据。
具体的,代理服务器采用重加密密钥keyA→B,file1对第一加密数据c1进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据c2,也就是说,转换后的第二加密数据c2只能由接收节点的接收私钥skB来解密。
重加密的具体过程为:
若第一加密数据c1是采用第一种加密方式所确定的,即第一加密数据c1是采用发送节点的发送公钥pkA以及目标数据file1的数据指纹h(file1)对目标数据file1进行非对称加密后生成的;第一加密数据c1包括第一单位加密数据c1.1以及第二单位加密数据c1.2;第一单位加密数据c1.1是由发送公钥pkA以及数据指纹hash(file1)生成的;第二单位加密数据c1.2是由目标数据file1生成的。
那么代理服务器获取到第一加密数据c1以及重加密密钥keyA→B,file1后,将第一加密数据c1中的第一单位加密数据c1.1和重加密密钥keyA→B,file1双线性映射为第三单位加密数据c1.3。代理服务器可以将第三单位加密数据c1.3以及第一加密数据c1中的第二单位加密数据c1.2组合为第二加密数据c2。
若第一加密数据c1是采用第二种加密方式所确定的,即第一加密书数据c1包括第一单位加密数据c1.1以及第二单位加密数据c1.2,第一单位加密数据c1.1是采用对称密钥key对目标数据file1进行对称加密后生成的,第二单位加密数据c1.2是采用发送公钥pkA以及数据指纹h(file1)对对称密钥key进行非对称加密后生成的。第二单位加密数据c1.2包括第一子单位加密数据c1.2.1和第二子单位加密数据c1.2.2,第一子单位加密数据c1.2.1是由发送公钥pkA以及数据指纹h(file1)生成的;第二子单位加密数据c1.2.2是由对称密钥key生成的。
那么代理服务器获取到第一加密数据c1以及重加密密钥keyA→B,file1后,将第一加密数据c1中的第二单位加密数据c1.2中的第一子单位加密数据c1.2.1和重加密密钥keyA→B,file1双线性映射为第三子单位加密数据c1.3.1。代理服务器可以将第三子单位加密数据c1.3.1、第一加密数据c1中的第二单位加密数据c1.2中的第二子单位加密数据c1.2.2以及第一加密数据c1中的第一单位加密数据c1.1组合为第二加密数据c2。
代理服务器重加密生成第二加密数据的具体过程可以参见上述图3对应实施例中的步骤S105。
步骤S303,代理服务器将第二加密数据发送至接收节点,指示接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
可选的,代理服务器将第二加密数据c2发送至接收节点后,可以将第二加密数据c2删除,相当于第二加密数据c2是专为本次发送节点向接收节点分享目标数据file1所生成的临时文件。
当然,代理服务器在未接收到发送节点发送的删除第一加密数据c1的请求之前,代理服务器中的第一加密数据c1是不能删除的,这是因为代理服务器向发送节点提供了云存储服务,当然所存储的第一加密数据c1是不能删除的。只要代理服务器存储了第一加密数据c1,发送节点中的第一加密数据c1和目标数据file1可以不必存储了。
后续,若发送节点需要向其余的节点(例如,节点1)分享目标数据,发送节点可以根据节点1的公钥、发送私钥以及数据指纹重新为节点1生成重加密密钥,将重新生成的重加密密钥发送至代理服务器。代理服务器采用新的重加密密钥为第一加密数据c1重加密,以将第一加密数据c1转换为由节点1的公钥加密的新的第二加密数据。后续节点1可以采用自己的私钥对新的第二加密数据解密,以得到目标数据。
可见,本申请的技术方案,不仅可以保证待分享数据的安全性,当需要向多人分享同一个文件时,还可以简化分享流程,降低用户操作成本,提高数据分享效率。
上述可知,不论是生成第一加密数据或者是生成重加密密钥,都引入了目标数据的数据指纹,使得重加密密钥只能用于重加密该第一加密数据,而不能重加密其余的数据。采用本申请,可以实现细粒度的文件级分享安全控制,在数据分享过程中,不仅不会泄露用户数据以及私钥信息,且可以抵抗云端服务器和接收方的合谋攻击,修补了现有重加密方案的安全漏洞,提高了用户数据的安全性。
请参见图6,是本申请实施例提供的一种数据分享方法的流程示意图,本实施例主要涉及接收节点对重加密后的第二加密数据的解密,数据分享方法可以包括如下步骤:
步骤S401,接收节点获取第二加密数据;第二加密数据是采用重加密密钥对第一加密数据进行重加密后生成的;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的。
其中,代理服务器生成第二加密数据c2的具体过程可以参见上述图3对应实施例中的步骤S105。
步骤S402,接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
具体的,接收节点获取接收节点的接收私钥skB,采用接收私钥skB对第二加密数据c2解密,以得到目标数据file1。
由于在前述中生成第一加密数据以及对第一加密数据重加密生成第二加密数据分为两种情况,此处对第二加密数据解密也分为两种情况:
若在前述中第一加密数据c1是采用第一种加密方式所确定的,那么第二加密数据c2可以包括第三单位加密数据c1.3以及第二单位加密数据c1.2。第三单位加密数据c1.3是由第一单位加密数据c1.1和重加密密钥keyA→B,file1双线性映射生成的;第二单位加密数据c1.2是由目标数据file1生成的;第一单位加密数据c1.1是由发送节点的发送公钥、数据指纹生成的。接收节点可以采用接收私钥skB对三单位加密数据c1.3以及第二单位加密数据c1.2进行非对称解密,得到目标数据file1。
若在前述中第一加密数据c1是采用第二种加密方式所确定的,那么第二加密数据c2可以包括第一单位加密数据c1.1,第三子单位加密数据c1.3.1以及第二子单位加密数据c1.2.2。第一单位加密数据c1.1是采用对称密钥key对目标数据file1进行对称加密后生成的;第三子单位加密数据c1.3.1是由第一加密数据c1中的第一子单位加密数据c1.2.1和重加密密钥keyA→B,file1双线性映射生成的;第一子单位加密数据c1.2.1和第二子单位加密数据c1.2.2是采用发送公钥pka、数据指纹h(file1)对对称密钥key进行非对称加密后生成的。
接收节点可以采用接收私钥skB对第二加密数据c2中的第二子单位加密数据c1.2.2以及第三子单位加密数据c1.3.1非对称解密得到对称密钥key。接收节点再采用与前述中的对称加密算法对应的对称解密算法,以及对称密钥key对第二加密数据c2中的第一单位加密数据c1.1解密,得到目标数据file1。
接收节点对第二加密数据c2进行解密的具体过程可以参见上述图3对应实施例中的步骤S107。
上述可知,不论是生成第一加密数据或者是生成重加密密钥,都引入了目标数据的数据指纹,使得重加密密钥只能用于重加密该第一加密数据,而不能重加密其余的数据。采用本申请,可以实现细粒度的文件级分享安全控制,在数据分享过程中,不仅不会泄露用户数据以及私钥信息,且可以抵抗云端服务器和接收方的合谋攻击,修补了现有重加密方案的安全漏洞,提高了用户数据的安全性。
请参见图7-图10,是本申请实施例提供的一种数据分享系统的示意图,数据分享系统涉及发送节点、代理服务器以及接收节点。发送节点是数据发送方,接收节点是数据接收方,代理服务器是中间方。
图7主要描述数据分享系统的初始化过程;图8主要描述加密文件上传过程;图9主要描述发送节点对加密文件的解密过程;图10主要描述发送节点向接收节点分享加密文件过程。下面分别对图7-图10进行说明:
请参见图7,是本申请实施例提供的一种初始化数据分享系统的示意图,如图7所示,代理服务器定义q阶循环群G1,G2,以及双线性映射e,g是循环群G1的生成元,g∈G1,Z=e(g,g)∈G2。生成元g以及Z是公共参数,也即是上述两个参数对外公开。代理服务器可以将生成元g以及参数Z下发至发送节点和接收节点。
发送节点采用随机数生成器生成私钥skA=a(称为发送私钥),采用生成元g以及发送私钥skA=a确定发送节点的公钥pkA=ga(称为发送公钥)。
同样地,接收节点也采用随机数生成器生成私钥skB=b(称为接收私钥),采用生成元g以及接收私钥skB=b确定发送节点的公钥pkB=gb(称为接收公钥)。
发送节点可以将发送公钥pkA上传至代理服务器,代理服务器可以将发送公钥pkA转发至接收节点。
接收节点可以将接收公钥pkB上传至代理服务器,代理服务器可以将接收公钥pkB转发至发送节点。
简单来说,即是发送节点和接收节点之间互相交换各自的公钥。
请参见图8,是本申请实施例提供的一种上传加密文件的示意图,如图8所示,发送节点使用代理服务器的云存储服务时,为了保护待存储文件的数据隐私,发送节点可以将待存储的文件(对应图8中的文件1,可以对应本申请中的目标数据)加密以生成加密文件1(可以对应本申请中的第一加密数据),发送节点可以将加密文件1上传至代理服务器,以使代理服务器存储加密文件1(类似于网盘存储数据)。后续,发送节点可以将文件1以及加密文件1在本地删除,以释放存储空间。
发送节点将文件1加密为加密文件1有两个方式,一种是采用发送公钥以及文件1的数据指纹直接对文件1加密,生成加密文件1;另一种是采用信封加密,即发送节点采用一次性对称密钥对文件1加密,生成加密子文件1,再采用发送公钥以及文件1的数据指纹对对称密钥加密,生成加密子文件2,将上述加密子文件1以及加密子文件2组合为加密文件1。
其中,发送节点对文件1加密生成加密文件1的具体过程可以参见上述图3对应实施例中的步骤S101-步骤S103。
请参见图9,是本申请实施例提供的一种对加密文件进行解密的示意图,如图9所示,当发送节点需要获取到加密文件1时,可以向代理服务器发送获取加密文件1的请求,代理服务器在数据库中搜索加密文件1,并向发送节点下发加密文件1。
由于加密文件1的加密方式有两种,对应地,每一种加密方式都存在与之对应的解密方式。若加密文件1是采用第一种加密方式加密,那么发送节点可以采用发送私钥以及文件1的数据指纹对加密文件1解密,可以得到文件1;若加密文件1是采用第二种加密方式加密,那么发送节点可以采用发送私钥以及文件1的数据指纹对加密文件1中的加密子文件2解密,得到对称密钥,采用对称密钥对加密文件1中的加密子文件1解密,可以得到文件1。
其中,发送节点对加密文件1解密的具体过程可以参见上述图4对应实施例中的步骤S204。
请参见图10,是本申请实施例提供的一种分享加密文件的示意图,如图10所示,当发送节点需要向接收节点分享加密文件1时,发送节点可以根据发送私钥、文件1的数据指纹以及接收公钥生成重加密密钥,并将该重加密密钥上传至代理服务器。其中,生成重加密密钥的具体过程可以参见上述图3对应实施例中的步骤S103。
代理服务器可以采用重加密密钥对加密文件1重加密,以得到加密文件2(可以对应本申请中的第二加密数据),重加密后的加密文件2是由接收公钥加密的文件,即加密文件2只能由接收节点的接收私钥来解密。其中,对第一加密数据进行重加密,以生成加密文件2的具体过程可以参见上述图3对应实施例中的步骤S105。
代理服务器可以将加密文件2下发至接收节点,若加密文件1是采用第一种加密方式加密的,那么接收节点可以采用接收私钥对加密文件2解密,得到文件1;若加密文件1是采用第二种加密方式加密的,说明加密文件2中包括加密子文件1以及重加密生成的加密子文件3。那么接收节点可以采用接收私钥对加密子文件3解密,得到对称密钥,采用对称密钥对加密子文件1解密,得到文件1。
上述可知,代理服务器在整个过程没有获得发送私钥、接收私钥以及文件1,保护了数据隐私,此外,由于重加密密钥引入了文件1的数据指纹,使得重加密密钥只能重加密该数据指纹所对应的文件(即是文件1),而不能重加密其他的任何文件,实现了细粒度的文件分享控制,提高数据分享过程中数据的私密性。
进一步的,请参见图11,是本申请实施例提供的一种数据分享装置的结构示意图。如图11所示,数据分享装置1可以应用于上述图3-图10对应实施例中的发送节点,数据分享装置1可以包括:第一获取模块11、第一加密模块12以及第一发送模块13。
第一获取模块11,用于获取目标数据,确定目标数据的数据指纹;
第一加密模块12,用于采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据;
第一获取模块11,还用于获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥;
第一发送模块13,用于将重加密密钥和第一加密数据发送至代理服务器,指示代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据。
其中,第一获取模块11、第一加密模块12以及第一发送模块13的具体功能实现方式可以参见上述图3对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
请参见图11,第一加密模块12可以包括:第一加密单元121和第二加密单元122。
第一加密单元121,用于采用发送节点的发送公钥、数据指纹对目标数据进行非对称加密,得到第一加密数据;
第二加密单元122,用于获取对称密钥,采用对称密钥对目标数据进行对称加密,得到第一单位加密数据,采用发送公钥、数据指纹对对称密钥进行非对称加密,得到第二单位加密数据,将第一单位加密数据和第二单位加密数据组合为第一加密数据。
当数据分享装置1采用第一加密单元121确定第一加密数据时,不再执行第二加密单元122相应的步骤;当数据分享装置1采用第二加密单元122确定第一加密数据时,不再执行第一加密单元121相应的步骤。
其中,第一加密单元121和第二加密单元122的具体过程可以参见上述图3对应实施例中的步骤S102。
请参见图11,数据分享装置1可以包括:第一获取模块11、第一加密模块12以及第一发送模块13;还可以包括:第一解密模块14和第二解密模块15。
第一解密模块14,用于接收代理服务器发送的第一加密数据,采用发送私钥、数据指纹对第一加密数据进行非对称解密,得到目标数据;
第二解密模块15,用于接收代理服务器发送的第一加密数据,采用发送私钥、数据指纹对第一加密数据中的第二单位加密数据进行非对称解密,得到对称密钥,采用对称密钥对第一加密数据中的第一单位加密数据进行对称解密,得到目标数据。
当数据分享装置1采用第一加密单元121确定第一加密数据时,采用第一解密模块14解密,不再执行第二解密模块15相应的步骤;当数据分享装置1采用第二加密单元122确定第一加密数据时,采用第二解密模块15解密,不再执行第一解密模块14相应的步骤。
其中,第一解密模块14和第二解密模块15的具体过程可以参见上述图4对应实施例中的步骤S204。
进一步的,请参见图12,是本申请实施例提供的一种数据分享装置的结构示意图。如图12所示,数据分享装置2可以应用于上述图3-图10对应实施例中的代理服务器,数据分享装置2可以包括:第二获取模块21、第二加密模块22以及第二发送模块23。
第二获取模块21,用于获取第一加密数据,以及针对第一加密数据的重加密密钥;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
第二加密模块22,用于采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据;
第二发送模块23,用于将第二加密数据发送至接收节点,指示接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
其中,第二获取模块21、第二加密模块22以及第二发送模块23的具体功能实现方式可以参见上述图5对应实施例中的步骤S301-步骤S303,这里不再进行赘述。
第一加密数据是采用发送公钥以及数据指纹对目标数据进行非对称加密后生成的;第一加密数据包括第一单位加密数据和第二单位加密数据;第一单位加密数据是由发送公钥以及数据指纹生成的;第二单位加密数据是由目标数据生成的;
第二加密模块22,可以包括:第三加密单元221。
第三加密单元221,用于将第一单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三单位加密数据,将第三单位加密数据以及第二单位加密数据组合为第二加密数据。
第一加密数据包括采用对称密钥对目标数据进行对称加密后生成的第一单位加密数据,以及采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的第二单位加密数据;第二单位加密数据包括第一子单位加密数据和第二子单位加密数据;第一子单位数据是由发送公钥以及数据指纹生成的;第二子单位加密数据是由对称密钥生成的;
第二加密模块22,可以包括:第四加密单元222。
第四加密单元222,用于将第一子单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三子单位加密数据,将第三子单位加密数据、第二子单位加密数据以及第一单位加密数据组合为第二加密数据。
当数据分享装置2采用第三加密单元221确定第二加密数据时,就不再执行第四加密单元222相应的步骤;当数据分享装置2采用第四加密单元222确定第二加密数据时,就不再执行第三加密单元221相应的步骤。
其中,第三加密单元221和第四加密单元222的具体功能实现方式可以参见上述图5对应实施例中的步骤S302,这里不再进行赘述。
进一步的,请参见图13,是本申请实施例提供的一种数据分享装置的结构示意图。如图13所示,数据分享装置3可以应用于上述图3-图10对应实施例中的接收节点,数据分享装置3可以包括:第三获取模块31以及第三解密模块32。
第三获取模块31,用于获取第二加密数据;第二加密数据是采用重加密密钥对第一加密数据进行重加密后生成的;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
第三解密模块32,用于采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据;
第二加密数据包括第一加密数据中的第一单位加密数据、第一加密数据中的第二子单位加密数据,以及由第一加密数据中的第一子单位加密数据和重加密密钥双线性映射生成的第三子单位加密数据;第一单位加密数据是采用对称密钥对目标数据进行对称加密后生成的;第一子单位加密数据和第二子单位加密数据是采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的;
第三解密模块32,具体用于采用接收私钥对第二子单位加密数据以及第三子单位加密数据进行非对称解密,得到对称密钥,采用对称密钥对第一单位加密数据进行对称解密,得到目标数据。
其中,第三获取模块31以及第三解密模块32的具体功能实现方式可以参见上述图6对应实施例中的步骤S401-步骤S402,这里不再进行赘述。
上述可知,不论是生成第一加密数据或者是生成重加密密钥,都引入了目标数据的数据指纹,使得重加密密钥只能用于重加密该第一加密数据,而不能重加密其余的数据。采用本申请,可以实现细粒度的文件级分享安全控制,在数据分享过程中,不仅不会泄露用户数据以及私钥信息,且可以抵抗云端服务器和接收方的合谋攻击,修补了现有重加密方案的安全漏洞,提高了用户数据的安全性。
进一步地,请参见图14,是本申请实施例提供的一种计算机设备的结构示意图。上述图3-图10对应实施例中的发送节点可以为计算机设备1000,如图14所示,计算机设备1000可以包括:用户接口1002、处理器1004、编码器1006以及存储器1008。信号接收器1016用于经由蜂窝接口1010、WIFI接口1012、...、或NFC接口1014接收或者发送数据。编码器1006将接收到的数据编码为计算机处理的数据格式。存储器1008中存储有计算机程序,处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。存储器1008可包括易失性存储器(例如,动态随机存取存储器DRAM),还可以包括非易失性存储器(例如,一次性可编程只读存储器OTPROM)。在一些实例中,存储器1008可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备1000。用户接口1002可以包括:键盘1018和显示器1020。
在图14所示的计算机设备1000中,处理器1004可以用于调用存储器1008中存储计算机程序,以实现:
获取目标数据,确定目标数据的数据指纹;
采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据;
获取接收节点的接收公钥,根据发送节点的发送私钥、接收公钥和数据指纹,生成针对第一加密数据的重加密密钥;
将重加密密钥和第一加密数据发送至代理服务器,指示代理服务器采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据。
在一个实施例中,处理器1004在执行采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据时,具体执行以下步骤:
采用发送节点的发送公钥、数据指纹对目标数据进行非对称加密,得到第一加密数据。
在一个实施例中,处理器1004还执行以下步骤:
接收代理服务器发送的第一加密数据;
采用发送私钥、数据指纹对第一加密数据进行非对称解密,得到目标数据。
在一个实施例中,处理器1004在执行采用发送节点的发送公钥、数据指纹对目标数据进行加密,得到第一加密数据时,具体执行以下步骤:
获取对称密钥;
采用对称密钥对目标数据进行对称加密,得到第一单位加密数据;
采用发送公钥、数据指纹对对称密钥进行非对称加密,得到第二单位加密数据;
将第一单位加密数据和第二单位加密数据组合为第一加密数据。
在一个实施例中,处理器1004还执行以下步骤:
接收代理服务器发送的第一加密数据;
采用发送私钥、数据指纹对第一加密数据中的第二单位加密数据进行非对称解密,得到对称密钥;
采用对称密钥对第一加密数据中的第一单位加密数据进行对称解密,得到目标数据。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图4所对应实施例中对数据分享方法的描述,也可执行前文图11所对应实施例中对数据分享装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的数据分享装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图4所对应实施例中对数据分享方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步地,请参见图15,是本申请实施例提供的一种计算机设备的结构示意图。上述图3-图10对应实施例中的代理服务器可以为计算机设备2000,如图15所示,计算机设备2000可以包括:用户接口2002、处理器2004、编码器2006以及存储器2008。信号接收器2016用于经由蜂窝接口2010、WIFI接口2012、...、或NFC接口2014接收或者发送数据。编码器2006将接收到的数据编码为计算机处理的数据格式。存储器2008中存储有计算机程序,处理器2004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。存储器2008可包括易失性存储器(例如,动态随机存取存储器DRAM),还可以包括非易失性存储器(例如,一次性可编程只读存储器OTPROM)。在一些实例中,存储器2008可进一步包括相对于处理器2004远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备2000。用户接口2002可以包括:键盘2018和显示器2020。
在图15所示的计算机设备2000中,处理器2004可以用于调用存储器2008中存储计算机程序,以实现:
获取第一加密数据,以及针对第一加密数据的重加密密钥;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据;
将第二加密数据发送至接收节点,指示接收节点采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
在一个实施例中,第一加密数据是采用发送公钥以及数据指纹对目标数据进行非对称加密后生成的;第一加密数据包括第一单位加密数据和第二单位加密数据;第一单位加密数据是由发送公钥以及数据指纹生成的;第二单位加密数据是由目标数据生成的;
处理器2004在执行采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据时,具体执行以下步骤:
将第一单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三单位加密数据;
将第三单位加密数据以及第二单位加密数据组合为第二加密数据。
在一个实施例中,第一加密数据包括采用对称密钥对目标数据进行对称加密后生成的第一单位加密数据,以及采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的第二单位加密数据;第二单位加密数据包括第一子单位加密数据和第二子单位加密数据;第一子单位数据是由发送公钥以及数据指纹生成的;第二子单位加密数据是由对称密钥生成的;
处理器2004在执行采用重加密密钥对第一加密数据进行重加密,以将第一加密数据转换为由接收公钥加密的第二加密数据时,具体执行以下步骤:
将第一子单位加密数据和重加密密钥双线性映射为与接收公钥相关的第三子单位加密数据;
将第三子单位加密数据、第二子单位加密数据以及第一单位加密数据组合为第二加密数据。
应当理解,本申请实施例中所描述的计算机设备2000可执行前文图5所对应实施例中对数据分享方法的描述,也可执行前文图12所对应实施例中对数据分享装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的数据分享装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图5所对应实施例中对数据分享方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步地,请参见图16,是本申请实施例提供的一种计算机设备的结构示意图。上述图3-图10对应实施例中的接收节点可以为计算机设备3000,如图16所示,计算机设备3000可以包括:用户接口3002、处理器3004、编码器3006以及存储器3008。信号接收器3016用于经由蜂窝接口3010、WIFI接口3012、...、或NFC接口3014接收或者发送数据。编码器3006将接收到的数据编码为计算机处理的数据格式。存储器3008中存储有计算机程序,处理器3004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。存储器3008可包括易失性存储器(例如,动态随机存取存储器DRAM),还可以包括非易失性存储器(例如,一次性可编程只读存储器OTPROM)。在一些实例中,存储器3008可进一步包括相对于处理器3004远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备3000。用户接口3002可以包括:键盘3018和显示器3020。
在图16所示的计算机设备3000中,处理器3004可以用于调用存储器3008中存储计算机程序,以实现:
获取第二加密数据;第二加密数据是采用重加密密钥对第一加密数据进行重加密后生成的;第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对目标数据进行加密后生成的;重加密密钥是采用发送节点的发送私钥、接收节点的接收公钥以及数据指纹生成的;
采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据。
在一个实施例中,第二加密数据包括第一加密数据中的第一单位加密数据、第一加密数据中的第二子单位加密数据,以及由第一加密数据中的第一子单位加密数据和重加密密钥双线性映射生成的第三子单位加密数据;第一单位加密数据是采用对称密钥对目标数据进行对称加密后生成的;第一子单位加密数据和第二子单位加密数据是采用发送公钥、数据指纹对对称密钥进行非对称加密后生成的;
处理器3004在执行采用接收节点的接收私钥对第二加密数据进行解密,得到目标数据时,具体执行以下步骤:
采用接收私钥对第二子单位加密数据以及第三子单位加密数据进行非对称解密,得到对称密钥;
采用对称密钥对第一单位加密数据进行对称解密,得到目标数据。
应当理解,本申请实施例中所描述的计算机设备3000可执行前文图6所对应实施例中对数据分享方法的描述,也可执行前文图13所对应实施例中对数据分享装置3的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的数据分享装置3所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图6所对应实施例中对数据分享方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (15)

1.一种数据分享方法,其特征在于,包括:
发送节点获取目标数据,确定所述目标数据的数据指纹;
所述发送节点采用所述发送节点的发送公钥、所述数据指纹对所述目标数据进行加密,得到第一加密数据;
所述发送节点获取接收节点的接收公钥,根据所述发送节点的发送私钥、所述接收公钥和所述数据指纹,生成针对所述第一加密数据的重加密密钥;
所述发送节点将所述重加密密钥和所述第一加密数据发送至代理服务器,指示所述代理服务器采用所述重加密密钥对所述第一加密数据进行重加密,以将所述第一加密数据转换为由所述接收公钥加密的第二加密数据。
2.根据权利要求1所述的方法,其特征在于,所述发送节点采用所述发送节点的发送公钥、所述数据指纹对所述目标数据进行加密,得到第一加密数据,包括:
所述发送节点采用所述发送节点的发送公钥、所述数据指纹对所述目标数据进行非对称加密,得到所述第一加密数据。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述发送节点接收所述代理服务器发送的所述第一加密数据;
所述发送节点采用所述发送私钥、所述数据指纹对所述第一加密数据进行非对称解密,得到所述目标数据。
4.根据权利要求1所述的方法,其特征在于,所述发送节点采用所述发送节点的发送公钥、所述数据指纹对所述目标数据进行加密,得到第一加密数据,包括:
所述发送节点获取对称密钥;
所述发送节点采用所述对称密钥对所述目标数据进行对称加密,得到第一单位加密数据;
所述送节点采用所述发送公钥、所述数据指纹对所述对称密钥进行非对称加密,得到第二单位加密数据;
所述发送节点将所述第一单位加密数据和所述第二单位加密数据组合为所述第一加密数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述发送节点接收所述代理服务器发送的所述第一加密数据;
所述发送节点采用所述发送私钥、所述数据指纹对所述第一加密数据中的所述第二单位加密数据进行非对称解密,得到所述对称密钥;
所述发送节点采用所述对称密钥对所述第一加密数据中的所述第一单位加密数据进行对称解密,得到所述目标数据。
6.一种数据分享方法,其特征在于,包括:
代理服务器获取第一加密数据,以及针对所述第一加密数据的重加密密钥;所述第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对所述目标数据进行加密后生成的;所述重加密密钥是采用所述发送节点的发送私钥、接收节点的接收公钥以及所述数据指纹生成的;
所述代理服务器采用所述重加密密钥对所述第一加密数据进行重加密,以将所述第一加密数据转换为由所述接收公钥加密的第二加密数据;
所述代理服务器将所述第二加密数据发送至所述接收节点,指示所述接收节点采用所述接收节点的接收私钥对所述第二加密数据进行解密,得到所述目标数据。
7.根据权利要求6所述的方法,其特征在于,所述第一加密数据是采用所述发送公钥以及所述数据指纹对所述目标数据进行非对称加密后生成的;所述第一加密数据包括第一单位加密数据和第二单位加密数据;所述第一单位加密数据是由所述发送公钥以及所述数据指纹生成的;所述第二单位加密数据是由所述目标数据生成的;
所述代理服务器采用所述重加密密钥对所述第一加密数据进行重加密,以将所述第一加密数据转换为由所述接收公钥加密的第二加密数据,包括:
所述代理服务器将所述第一单位加密数据和所述重加密密钥双线性映射为与所述接收公钥相关的第三单位加密数据;
所述代理服务器将所述第三单位加密数据以及所述第二单位加密数据组合为所述第二加密数据。
8.根据权利要求6所述的方法,其特征在于,所述第一加密数据包括采用对称密钥对所述目标数据进行对称加密后生成的第一单位加密数据,以及采用所述发送公钥、所述数据指纹对所述对称密钥进行非对称加密后生成的第二单位加密数据;所述第二单位加密数据包括第一子单位加密数据和第二子单位加密数据;所述第一子单位加密数据是由所述发送公钥以及所述数据指纹生成的;所述第二子单位加密数据是由所述对称密钥生成的;
所述代理服务器采用所述重加密密钥对所述第一加密数据进行重加密,以将所述第一加密数据转换为由所述接收公钥加密的第二加密数据,包括:
所述代理服务器将所述第一子单位加密数据和所述重加密密钥双线性映射为与所述接收公钥相关的第三子单位加密数据;
所述代理服务器将所述第三子单位加密数据、所述第二子单位加密数据以及所述第一单位加密数据组合为所述第二加密数据。
9.一种数据分享方法,其特征在于,包括:
接收节点获取第二加密数据;所述第二加密数据是采用重加密密钥对第一加密数据进行重加密后生成的;所述第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对所述目标数据进行加密后生成的;所述重加密密钥是采用所述发送节点的发送私钥、所述接收节点的接收公钥以及所述数据指纹生成的;
所述接收节点采用所述接收节点的接收私钥对所述第二加密数据进行解密,得到所述目标数据。
10.根据权利要求9所述的方法,其特征在于,所述第二加密数据包括所述第一加密数据中的第一单位加密数据、所述第一加密数据中的第二子单位加密数据,以及由所述第一加密数据中的第一子单位加密数据和所述重加密密钥双线性映射生成的第三子单位加密数据;所述第一单位加密数据是采用对称密钥对所述目标数据进行对称加密后生成的;所述第一子单位加密数据和所述第二子单位加密数据是采用所述发送公钥、所述数据指纹对所述对称密钥进行非对称加密后生成的;
所述接收节点采用所述接收节点的接收私钥对所述第二加密数据进行解密,得到所述目标数据,包括:
所述接收节点采用所述接收私钥对所述第二子单位加密数据以及所述第三子单位加密数据进行非对称解密,得到所述对称密钥;
所述接收节点采用所述对称密钥对所述第一单位加密数据进行对称解密,得到所述目标数据。
11.一种数据分享装置,其特征在于,包括:
第一获取模块,用于获取目标数据,确定所述目标数据的数据指纹;
第一加密模块,用于采用发送节点的发送公钥、所述数据指纹对所述目标数据进行加密,得到第一加密数据;
所述第一获取模块,还用于获取接收节点的接收公钥,根据所述发送节点的发送私钥、所述接收公钥和所述数据指纹,生成针对所述第一加密数据的重加密密钥;
第一发送模块,用于将所述重加密密钥和所述第一加密数据发送至代理服务器,指示所述代理服务器采用所述重加密密钥对所述第一加密数据进行重加密,以将所述第一加密数据转换为由所述接收公钥加密的第二加密数据。
12.一种数据分享装置,其特征在于,包括:
第二获取模块,用于获取第一加密数据,以及针对所述第一加密数据的重加密密钥;所述第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对所述目标数据进行加密后生成的;所述重加密密钥是采用所述发送节点的发送私钥、接收节点的接收公钥以及所述数据指纹生成的;
第二加密模块,用于采用所述重加密密钥对所述第一加密数据进行重加密,以将所述第一加密数据转换为由所述接收公钥加密的第二加密数据;
第二发送模块,用于将所述第二加密数据发送至所述接收节点,指示所述接收节点采用所述接收节点的接收私钥对所述第二加密数据进行解密,得到所述目标数据。
13.一种数据分享装置,其特征在于,包括:
第三获取模块,用于获取第二加密数据;所述第二加密数据是采用重加密密钥对第一加密数据进行重加密后生成的;所述第一加密数据是采用发送节点的发送公钥以及目标数据的数据指纹对所述目标数据进行加密后生成的;所述重加密密钥是采用所述发送节点的发送私钥、接收节点的接收公钥以及所述数据指纹生成的;
第三解密模块,用于采用所述接收节点的接收私钥对所述第二加密数据进行解密,得到所述目标数据。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-10中任一项所述方法的步骤。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-10任一项所述的方法。
CN202010082657.2A 2020-02-07 2020-02-07 数据分享方法、装置、计算机设备以及存储介质 Active CN111277605B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010082657.2A CN111277605B (zh) 2020-02-07 2020-02-07 数据分享方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010082657.2A CN111277605B (zh) 2020-02-07 2020-02-07 数据分享方法、装置、计算机设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111277605A CN111277605A (zh) 2020-06-12
CN111277605B true CN111277605B (zh) 2021-06-25

Family

ID=70999221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010082657.2A Active CN111277605B (zh) 2020-02-07 2020-02-07 数据分享方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111277605B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112613061A (zh) * 2021-01-06 2021-04-06 上海泰砥科技有限公司 基于代理重加密的电子处方共享方法和装置
CN116541872B (zh) * 2023-07-07 2024-04-09 深圳奥联信息安全技术有限公司 数据信息安全传输方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
CN109327512A (zh) * 2018-09-19 2019-02-12 广东微链科技有限公司 基于区块链hash寻址和重加密的游戏数据分区储存方法
CN109324998A (zh) * 2018-09-18 2019-02-12 郑州云海信息技术有限公司 一种文件处理方法、装置及系统
CN109711841A (zh) * 2018-12-27 2019-05-03 石更箭数据科技(上海)有限公司 数据交易方法及系统、平台、存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
CN109324998A (zh) * 2018-09-18 2019-02-12 郑州云海信息技术有限公司 一种文件处理方法、装置及系统
CN109327512A (zh) * 2018-09-19 2019-02-12 广东微链科技有限公司 基于区块链hash寻址和重加密的游戏数据分区储存方法
CN109711841A (zh) * 2018-12-27 2019-05-03 石更箭数据科技(上海)有限公司 数据交易方法及系统、平台、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
密文数据的再处理研究;张林超;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190215(第2期);全文 *

Also Published As

Publication number Publication date
CN111277605A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
US11431498B2 (en) Quantum-augmentable hybrid encryption system and method
US10853497B2 (en) Method and system for providing an update of code on a memory-constrained device
EP3299990A1 (en) Electronic device server and method for communicating with server
US20180063105A1 (en) Management of enciphered data sharing
US20190268145A1 (en) Systems and Methods for Authenticating Communications Using a Single Message Exchange and Symmetric Key
CN109067517B (zh) 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
JP2016158189A (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US20180083935A1 (en) Method and system for secure sms communications
CN105208028A (zh) 一种数据传输方法和相关装置及设备
CN111277605B (zh) 数据分享方法、装置、计算机设备以及存储介质
CN113726517A (zh) 一种信息共享方法及装置
KR101424972B1 (ko) 모바일 카드를 이용한 컨텐츠 사용 방법, 호스트 장치, 및모바일 카드
JP6473876B2 (ja) セキュアネットワーク通信方法
JP2020513169A (ja) 装置認証キーを利用したデータ暗号化方法およびシステム
CN113824713B (zh) 一种密钥生成方法、系统及存储介质
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
JPWO2018043466A1 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
CN112954388A (zh) 一种数据文件的获取方法、装置、终端设备和存储介质
TWI665901B (zh) 加密方法與解密方法
CN113472835A (zh) 数据读取、上传方法及设备
CN104363584A (zh) 一种短消息加、解密的方法、装置及终端
CN109962776B (zh) 加密方法与解密方法
US11750580B2 (en) Systems and methods for encryption in network communication
JP2014017763A (ja) 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム
CN115879136B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40023715

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant