CN116166749A - 数据共享方法、装置、电子设备及存储介质 - Google Patents
数据共享方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116166749A CN116166749A CN202310107236.4A CN202310107236A CN116166749A CN 116166749 A CN116166749 A CN 116166749A CN 202310107236 A CN202310107236 A CN 202310107236A CN 116166749 A CN116166749 A CN 116166749A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- ciphertext
- storage node
- storage
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种数据共享方法、装置、电子设备及存储介质,该方法应用于数据提供方,该方法包括:生成对称密钥和密钥对;采用所述对称密钥对文件内容进行加密,得到内容密文;采用所述密钥对中的公钥对所述对称密钥加密,得到密钥密文;对所述内容密文进行分片处理,得到分片密文;将所述分片密文和所述密钥密文上传到至少一个存储节点上。本申请技术方案能够有效提高数据共享过程中的数据安全性、防止数据被篡改。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据共享方法、装置、电子设备及存储介质。
背景技术
区块链技术因其分布式存储不易被篡改的特性,广泛应用于数据共享的应用场景中。
目前的大部分基于区块链进行数据共享的系统,存在一个可信的存储节点,如阿里云存储,通常情况下,数据提供方是直接将文件数据明文上传到云存储服务器,由云存储服务器进行数据的加密。数据请求方请求数据时是根据得到的文件下载链接,直接通过链接在服务器上下载文件。
目前的数据共享方法,由于是由云存储服务器对数据进行加密,云存储厂商可能监视并篡改共享数据内容,并造成共享数据的泄漏。
发明内容
本申请提供一种数据共享方法、装置、电子设备和存储介质,目的在于解决数据安全性、防止数据被篡改的问题。
第一方面,本申请提供一种数据共享方法,应用于数据提供方,包括:生成对称密钥和密钥对;采用所述对称密钥对文件内容进行加密,得到内容密文;采用所述密钥对中的公钥对所述对称密钥加密,得到密钥密文;对所述内容密文进行分片处理,得到分片密文;将所述分片密文和所述密钥密文上传到至少一个存储节点上。
在上述实现过程中,由数据提供方对内容加密,提高了共享数据的安全性,通过对密钥加密,防止密钥被泄露,提高了密钥传输过程中的安全性,从而进一步提高了共享数据的安全性,通过对内容密文进行分片处理,一方面防止数据在传输过程中被完整截获,另一方面分片数据可以并发传输,并且在数据传输出现错误时,只需重传错误分片,提高了数据传输的效率。通过将数据存储到存储节点上,可以实现数据提供方离线共享数据。
进一步地,所述将所述分片密文和所述密钥密文上传到至少一个存储节点上,包括:向所述区块链的区块链节点发送上链交易请求;接收所述交易请求的响应信息,所述响应信息中包括文件标识和所述至少一个存储节点的存储节点标识;根据所述存储节点标识将所述分片密文、所述密钥密文及所述文件标识发送到所述至少一个存储节点上。
在上述实现过程中,通过向区块链节点发送共享数据的上链交易请求,能够快速高效地通知区块链节点生成交易信息并分配存储节点,同时可以向用户公开共享数据上链交易信息。通过接收响应信息,数据提供方能够快速准确获取文件标识和存储节点标识,根据存储节点标识将分片密文和密钥密文发送到至少一个存储节点上。通过将上链交易信息放在区块链上,可以借助区块链分布式存储特性防止数据被随意篡改。
进一步地,所述方法还包括:接收数据请求方发送的数据授权请求,所述数据授权请求包括所述数据请求方的请求信息及密钥密文信息;所述请求方信息包括所述数据请求方的标识及公钥;所述密钥密文信息包括文件标识及存储节点标识;根据所述公钥及己方私钥,生成授权密钥;根据所述密钥密文信息中的存储节点标识向对应的存储节点发送代理重加密请求,所述代理重加密请求中包括所述授权密钥、所述文件标识及所述数据请求方的标识。
在上述实现过程中,通过生成授权密钥并向存储节点发送代理重加密请求,能够使存储节点在无需数据提供方私钥的情况下对数据请求方进行访问授权,保障了数据提供方私钥的安全性。
进一步地,所述根据所述公钥及己方私钥,生成授权密钥,包括:根据所述数据请求方的公钥、己方私钥及授权密钥公式Rk1=gr’,Rk2=X*e(gs,H0(IDB))r’,Rk3=skA -1*H1(X),RekeyA->B=(Rk1||Rk2||Rk3),生成授权密钥,其中,g为G1的一个生成元,r’为一个随机数,gr’为g的r’次点乘,gs为g的s次点乘,IDB为所述数据请求方的公钥,H0(IDB)为对所述数据请求方的公钥进行散列运算,e(gs,H0(IDB))r’为以gs和H0(IDB)为参数进行双线性映射,映射结果进行r’次点乘,X为一个随机数,H1(X)为对X进行散列运算,skA -1为所述数据提供方的己方私钥的倒数,Rk1、Rk2、Rk3为中间值,RekeyA->B为Rk1、Rk2、Rk3拼接得到的所述授权密钥,“||”符号为字符拼接符号。在上述实现过程中,通过上述密钥生成方法生成授权密钥,能够能够使得后续采用授权密钥进行代理重加密的数据更加难以被破解。
第二方面,本申请提供一种数据共享方法,应用于区块链节点,包括:接收数据提供方的上链交易请求,所述上链交易请求中包括所述数据提供方的地址;根据所述地址,给所述数据提供方分配文件标识和至少一个存储节点;将所述文件标识和所述存储节点标识反馈给所述数据提供方;接收所述至少一个存储节点发送的分片密文及密钥密文的存储地址和所述文件标识;所述分片密文为数据提供方在数据上链前对共享数据加密后分片得到的;所述密钥密文为数据提供方对对称密钥加密得到的;所述对称密钥用于加密所述共享数据;针对每一个存储节点,根据所述文件标识存储所述分片密文及所述密钥密文的存储地址。
在上述实现过程中,通过接收和响应上链交易请求,能够快速获取数据提供方上链交易信息,并使数据提供方根据存储节点标识完成数据上链存储。通过接收和存储分片密文和密钥密文的存储地址和文件标识,能够使区块链节点获知分片密文和密钥密文的存储信息并向用户公开共享数据的交易信息,方便用户进行数据共享。
进一步地,所述根据所述地址,给所述数据提供方分配文件标识和存储节点,包括:根据所述数据提供方的地址,获取距离数据提供方最近的至少一个存储节点的存储节点标识;根据预设规则分配文件标识;所述文件标识用于标识所述数据提供方上传到所述至少一个存储节点的共享数据。
在上述实现过程中,通过获取距离数据提供方最近的至少一个存储节点的存储节点标识,能够使得内容密文的传输更加高效。当存储节点不唯一时,能够使得内容密文冗余存储,防止单个存储节点发生故障时无法进行数据共享,提高数据共享的稳定性。
进一步地,所述获取距离数据提供方最近的至少一个存储节点的存储节点标识,包括:向所有存储节点发送连通性测试请求,所述请求包括所述数据提供方的地址;接收所有存储节点发送的往返时间;所述往返时间为每个存储节点通过向所述数据提供方发送连通性测试指令得到的节点间的测试报文的往返时间;所述连通性测试指令会向所述数据提供方发送测试报文;从所述往返时间中筛选出往返时间最小的至少一个存储节点的存储节点标识,作为所述存储节点信息。
在上述实现过程中,区块链节点通过收集存储节点发送的连通性测试指令获取的往返时间,并从中筛选出最短时间的方法,能够快速有效的确定出距离数据提供方最近或网络传输效能最好的存储节点。
第三方面,本申请一种数据共享方法,应用于存储节点,包括:接收数据提供方发送的代理重加密请求,所述代理重加密请求包括授权密钥、文件标识及数据请求方标识;根据所述文件标识获取所述密钥密文,采用所述授权密钥对所述密钥密文进行代理重加密,得到重加密密钥密文;根据所述文件标识存储所述重加密密钥密文;向区块链节点发送访问权限更新请求,所述访问权限更新请求中包括所述文件标识、所述数据请求方标识及所述重加密密钥密文的存储地址,所述区块链节点中存储有所述密钥密文的访问权限表,所述访问权限表用于控制向具有访问权限的用户显示可以下载的数据。
在上述实现过程中,通过将存储节点与半可信代理节点合二为一对密钥密文进行代理重加密,与现有技术中存储节点和半可信代理节点分离的方式相比,能够节省节点间数据交互的传输时间,提高代理重加密效率,通过将重加密密钥密文的存储地址和数据请求方公钥发送给区块链节点,能够告知区块链节点数据访问信息,并通知区块链节点进行数据访问权限控制。
进一步地,所述采用授权密钥对所述文件标识对应的密钥密文进行代理重加密,得到重加密密钥密文,包括:根据代理重加密计算公式RC1’=C1,RC2’=C2*e(C1,Rk3),RC3’=Rk1,RC4’=Rk2对所述文件标识对应的密钥密文进行代理重加密,得到重加密密钥密文Crfk=RC1’||RC2’||RC3’||RC4’。其中,C1、C2为所述密钥密文的组成部分、Rk1、Rk2为所述授权密钥的组成部分,Crfk为RC1’、RC2’、RC3’、RC4’为拼接得到的所述重加密密钥密文。
在上述实现过程中,通过代理重加密,得到重加密密钥密文,能够在不暴露数据提供方密钥密文内容的情况下将密钥密文转换成能够通过数据请求方私钥解密的重加密密钥密文,提高了数据共享过程中的安全性。
第四方面,本申请提供一种数据共享方法,应用于数据请求方,包括:从区块链节点的访问权限表中获取待请求数据的所属方信息,所述所属方信息包括待请求数据提供方信息、存储节点标识及存储地址;根据所述存储节点标识和所述存储地址向对应的存储节点下载所述待请求数据。
在上述实现过程中,通过从区块链节点的访问权限表中获取待请求数据的所属方信息,能够快速准确的根据所属方信息下载待请求数据。
进一步地,所述根据所述存储节点标识和所述存储地址向对应的存储节点下载所述待请求数据,包括:根据所述存储节点标识向对应的存储节点发送数据下载请求,所述请求中包括所述存储地址;接收所述存储节点发送的重加密密钥密文及分片密文;根据己方私钥解密所述重加密密钥密文,得到对称密钥;重组分片密文,根据所述对称密钥解密重组后的分片密文,得到明文数据。
在上述实现过程中,通过消息收发方式能够简单快速的获取重加密密钥密文及分片密文,通过己方私钥解密重加密密钥密文,能够准确获取对称密钥,通过重组分片密文以及根据对称密钥解密重组分片密文,能够准确得到明文数据。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例一提供的数据共享方法流程示意图;
图2为本申请实施例二提供的数据共享方法流程示意图;
图3为本申请实施例三提供的数据共享方法流程示意图;
图4为本申请实施例四提供的数据共享装置结构示意图;
图5为本申请实施例五提供的数据共享装置结构示意图;
图6为本申请实施例六提供的数据共享装置结构示意图;
图7为本申请实施例七提供的数据共享装置结构示意图;
图8为本申请实施例八提供的电子设备结构示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面对现有技术进行介绍。
现有技术在实现数据共享时一般通过将数据明文上传到云存储厂商的存储设备上,由云存储厂商进行加密处理并存储,将存储地址上传到区块链节点上,供用户下载数据。用户从区块链节点获取数据下载链接地址,根据该地址从云存储厂商的存储设备上下载需要的数据,并通过云存储厂商提供的密码对数据进行解密。
由于这种数据共享方法的数据信息由云存储厂商把控,云存储厂商可以很容易的对数据进行篡改,并进行主动传播,造成数据泄漏,严重威胁共享数据的安全性。因此,发明人经过创造性研究,将加密权限赋予数据提供方,可以防止存储节点监视并篡改数据内容,使用普通的第三方存储节点进行数据存储,防止云存储厂商具有过大的数据监管权限,同时利用区块链的分布式特性,防止链上数据被篡改,保障了共享数据的安全性。
下面对本申请提供的数据共享方法的应用场景做详细介绍。
本申请可以应用于在/离线数据共享的应用场景中。具体地,本申请技术方案的网络架构包括存储节点、数据提供方。存储节点、数据提供方之间通信连接。其中,数据提供方采用对称密钥对共享数据进行加密和分片处理,得到分片密文,并对对称密钥加密,得到密钥密文,将分片密文和密钥密文保存到存储节点上。
示例性地,用户A要在区块链网络上分享一个文件B,首先生成对称密钥,用该对称密钥加密文件B,为了提高加密文件B的安全性和传输效率,对加密文件B进行分片处理,得到分片密文;文件B被共享后需要对称密钥进行解密,因此,用户A在数据共享时需要同时提供该对称密钥,但为了保证对称密钥在传输过程中的安全性,需要对对称密钥进行加密,因此,用户A采用区块链系统的密钥生成器生成的公私钥对中的公钥,对对称密钥进行加密,得到密钥密文。用户A将所述分片密文和所述密钥密文上传到至少一个存储节点上,实现数据共享。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一
本申请实施例提供一种数据共享方法,如图1所示,本实施例描述数据共享方法的数据上链过程,该方法应用于数据提供方,方法包括:
S101、生成对称密钥和密钥对。
具体地,区块链系统有一个密钥生成器,由该密钥生成器负责生成所有节点的公私钥对,生成公私钥对的算法不做具体限定。对称密钥由数据提供方生成。
在此之前,系统的密钥生成器会先进行初始化操作。
具体地,定义G1和Gt为大素数q阶的循环群,其中G1为加法循环群,Gt为乘法循环群。
1.定义G1×G1->Gt为双线性映射且g为G1的一个生成元。
2.构造两个抗碰撞攻击的散列函数H0、H1,满足如下条件:
H0={0,1}*->G1
H1=Gt->G1
其中,{0,1}*为由0,1构成的任意长度数字序列字符串,在计算机中,代表任意数值,“->”代表映射关系,H0为从任意数值映射到G1的散列函数,H1为从Gt映射到G1的散列函数。
3.选择一个随机数s满足s∈Zq *,作为密钥生成器的主密钥,并由密钥生成器秘密保管。其中,Zq *为自然素数集合,取值范围是1~q-1之间的与q互素的正整数。
将以下参数在区块链网络上公开:
PP={G1,H0,H1,g,gs}
其中,gs是指g的s次点乘,s为上述步骤3中的随机数s。
初始化操作完成之后,区块链用户进行账号注册,将自身节点接入区块链系统。
具体地,用户节点将自身的身份标识作为注册公钥,发送给密钥生成器,密钥生成器对用户的注册公钥进行散列运算,生成用户私钥,并通过安全通道将私钥发送给用户节点。其中,用户的身份标识不做具体限定,可以是自身IP拼接用户节点的区块链公钥,该区块链公钥也是由密钥生成器预先生成的。用户私钥生成算法用公式可以表示为:
skA=H0(IDA)s
其中,IDA为数据提供方的身份标识,H0为散列函数。s为前述系统初始化步骤3中的随机数s。
S102、采用对称密钥对文件内容进行加密,得到内容密文。
具体地,用数据提供方生成的对称密钥对需要上链的数据进行加密,得到内容密文。其中,加密算法不做限定,可以是任何对称加密算法。示例性地,可以用数据加密标准算法DES对需要上链的数据进行加密。
S103、采用密钥对中的公钥对对称密钥加密,得到密钥密文。
具体地,用数据提供方的公钥对对称密钥加密,得到密钥密文。其中,加密算法不做具体限定,可以是任何非对称加密算法。
在一种可行的实施方式中,采用数据提供方的公钥对对称密钥加密,得到密钥密文,具体过程如下:
设对称密钥为M=ek,选择一个随机数r,满足r∈Zq *,按照如下公式进行加密计算:
其中,gr代表g的r次点乘。e代表双线性映射函数,e(gs,H0(IDA))r表示以gs和散列函数H0(IDA)为参数,进行双线性映射,映射结果进行r次点乘。||表示字符拼接,C1、C2为中间值,CFK为最终得到的密钥密文。
S104、对内容密文进行分片处理,得到分片密文。
具体地,将内容密文划分为每N个字节一个分片,最后一个分片大小可以小于或等于N。其中,N为正整数。
S105、将分片密文和密钥密文上传到至少一个存储节点上。
具体地,数据提供方将分片密文和密钥密文上传到存储节点上的方式不做具体限定。
在一种可行的实施方式中,步骤S105,将分片密文和密钥密文上传到至少一个存储节点上,包括:
S201、向区块链的区块链节点发送上链交易请求。
S202、接收交易请求的响应信息,响应信息中包括文件标识和至少一个存储节点的存储节点标识。
S203、根据存储节点标识将分片密文、密钥密文及文件标识发送到至少一个存储节点上。
与步骤S105相对应,数据共享方法应用于区块链节点时,该方法包括:
S301、接收数据提供方的上链交易请求,上链交易请求中包括数据提供方的地址。
S302、根据地址,给数据提供方分配文件标识和至少一个存储节点。
S303、将文件标识和存储节点标识反馈给数据提供方。
S304、接收至少一个存储节点发送的分片密文及密钥密文的存储地址和文件标识。分片密文为数据提供方在数据上链前对共享数据加密后分片得到的。密钥密文为数据提供方对对称密钥加密得到的。对称密钥用于加密共享数据。
S305、针对每一个存储节点,根据文件标识存储分片密文及密钥密文的存储地址。
具体地,步骤S201中,数据提供方向区块链节点发送上链交易请求,请求参数包括数据提供方的地址。步骤S201之后,区块链节点执行步骤S301,接收数据提供方发送的上链交易请求,获取数据提供方地址。然后区块链节点执行步骤S302,由于区块链节点内部会维护一张全局的上链交易信息表,上链交易信息表上记录所有共享文件的上链交易信息,同时,区块链节点会根据上链交易请求在已分配的文件标识基础上顺序生成最新上链交易请求对应的文件标识,作为本次上链交易的共享数据的文件标识,同时,为本次上链交易的共享数据指定存储节点,当共享数据需要冗余存储时,区块链节点指定多个存储节点,指定的方式不做具体限制。当区块链节点为本次上链交易的共享数据分配了文件标识和存储节点之后,执行步骤S303,将文件标识和存储节点标识以消息的方式反馈给数据提供方,然后数据提供方执行步骤S202,即接收区块链节点对上链交易请求的响应信息,从中提取文件标识和至少一个存储节点标识。然后数据提供方执行步骤S203,具体的,当存储节点标识唯一时,根据存储节点标识将分片密文、密钥密文及文件标识发送到对应存储节点上,分片密文为N片,N为正整数,N个分片可以组成完整的内容密文。当存储节点标识有多个时,对于每个存储节点,数据提供方都向对方发送一份分片数目为N的内容相同的分片密文、密钥密文及文件标识。存储节点接收数据提供方发来的分片密文、密钥密文及对应的文件标识并进行存储,并将分片密文和密钥密文具体的存储地址发送给区块链节点,区块链节点执行步骤S304、即接收存储节点发来的分片密文及密钥密文的存储地址,并执行步骤S305,将存储地址保存在上链交易信息表中。
在一种可行的实施方式中,步骤S302,根据地址,给数据提供方分配文件标识和至少一个存储节点,包括:
a.根据数据提供方的地址,获取距离数据提供方最近的至少一个存储节点的存储节点标识。
具体地,获取距离数据提供方最近的存储节点的方法不做具体限定。
在一种可行的实施方式中,步骤a,获取距离数据提供方最近的至少一个存储节点的存储节点标识,包括:
I.向所有存储节点发送连通性测试请求,请求包括数据提供方的地址。II.接收所有存储节点发送的往返时间。往返时间为每个存储节点通过向数据提供方发送连通性测试指令得到的节点间的测试报文的往返时间。连通性测试指令会向数据提供方发送测试报文。
III.从往返时间中筛选出往返时间最小的至少一个存储节点的存储节点标识,作为存储节点标识。
具体地,步骤I,区块链节点向所有存储节点发送连通性测试请求,请求参数包括数据提供方地址。存储节点接收连通性测试请求后,从中获取数据提供方地址,向数据提供方地址发送连通性测试指令ping命令,该命令会向数据提供方发送控制报文协议ICMP报文,ping指令通过检测ICMP报文的往返时间,来测试存储节点到数据提供方的网络连通性。报文往返时间越短,网络联通性越好。存储节点将往返时间发送给区块链节点,区块链节点执行步骤II,接收所有存储节点发送的往返时间,然后执行步骤III,从中筛选出往返时间最短的存储节点的存储节点标识,当共享数据需要冗余备份时,根据备份数确定需要的存储节点数,将往返时间按照从小到大的顺序排序,从中筛选出与备份数相同数目的存储节点,作为共享数据的存储节点。
b.根据预设规则分配文件标识。文件标识用于标识数据提供方上传到至少一个存储节点的共享数据。
具体地,区块链节点内部维护一张上链交易信息表,该表对每个上链交易请求分配一个上链交易的共享数据的文件标识,该文件标识基于已有文件标识顺序生成。
在上述实现过程中,数据提供方通过向区块链节点发送共享数据的上链交易请求,能够快速高效地通知区块链节点生成交易信息并分配存储节点,同时可以向用户公开上链交易信息。通过接收响应信息,数据提供方能够快速准确获取文件标识和存储节点标识,根据存储节点标识将分片密文和密钥密文发送到至少一个存储节点上。
在上述实现过程中,区块链节点通过接收和响应上链交易请求,能够快速获取数据提供方上链交易信息,并使数据提供方根据存储节点标识完成数据上链存储。通过接收和存储分片密文和密钥密文的存储地址和文件标识,能够使区块链节点获知分片密文和密钥密文的存储信息并向用户公开共享数据的交易信息,方便用户进行数据共享。
进一步地,区块链节点通过获取距离数据提供方最近的至少一个存储节点的存储节点标识,能够使得内容密文冗余存储,能够防止单个存储节点发生故障时无法进行数据共享,提高数据共享的稳定性。并且由于存储节点距离数据提供方最近,使得内容密文的传输更加高效。
进一步地,区块链节点通过收集存储节点发送的连通性测试指令获取的往返时间,并从中筛选出最短时间的方法,能够快速有效的确定出距离数据提供方最近或网络传输效能最好的存储节点。
实施例二
访问权限控制是数据共享的重要组成部分。当共享数据上链之后,为了保障共享数据的安全性,需要对共享数据的访问权限进行控制。只有拥有访问权限的用户才能在区块链节点上检索和查看到共享数据的相关信息。当有新用户想要获取共享数据的访问授权时,需要对共享数据的访问权限进行更新。本申请实施例提供一种数据共享方法,如图2所示,本实施例描述数据共享方法的访问权限更新过程,该方法应用于数据提供方,方法还包括:
S401、接收数据请求方发送的数据授权请求,数据授权请求包括数据请求方的请求信息及密钥密文信息。请求方信息包括数据请求方的标识及公钥。密钥密文信息包括文件标识及存储节点标识。
S402、根据公钥及己方私钥,生成授权密钥。
S403、根据密钥密文信息中的存储节点标识向对应的存储节点发送代理重加密请求,代理重加密请求中包括授权密钥、文件标识及数据请求方的标识。
对应地,存储节点侧的数据共享方法包括:
S501、接收数据提供方发送的代理重加密请求,代理重加密请求包括授权密钥、文件标识及数据请求方标识。
S502、根据文件标识获取密钥密文,采用授权密钥对密钥密文进行代理重加密,得到重加密密钥密文。
S503、根据文件标识存储重加密密钥密文。
S504、向区块链节点发送访问权限更新请求,访问权限更新请求中包括文件标识、数据请求方标识及重加密密钥密文的存储地址,区块链节点中存储有文件标识对应的共享数据的访问权限表,访问权限表用于控制向具有访问权限的用户显示可以下载的数据。
具体地,数据请求方在区块链上查询想要访问数据的所属方信息,所属方信息包括了数据提供方信息及存储节点标识。其中,数据提供方信息可以是IP地址,数据提供方联系方式等。
可选地,数据请求方根据数据提供方信息与数据提供方进行协商,请求数据的访问权限。协商方式不做具体限定,根据数据提供方信息确定具体协商方式。示例性地,如果数据提供方信息为IP地址,则向该IP地址发送数据访问授权请求。如果数据提供方信息为联系方式,如手机、微信号等,则可以通过联系方式进行访问权限的协商。若数据提供方同意授权,则数据请求方向数据提供方发送数据请求方的请求信息及密钥密文信息,请求方信息包括数据请求方的标识及公钥。密钥密文信息包括文件标识及存储节点标识。数据提供方依次执行步骤S401、S402、S403,接收数据请求方发送的请求信息及密钥密文信息,根据请求信息中的公钥及己方私钥,生成授权密钥,授权密钥的生成方法不做具体限定。然后,根据密钥密文信息中的存储节点标识向对应的存储节点发送代理重加密请求,代理重加密请求中包括授权密钥、文件标识及数据请求方的标识。当存储节点标识为多个时,向每个存储节点标识对应的存储节点都发送一个代理重加密请求。
除上述可选方式外,数据请求方也可以不经与数据提供方协商,直接向数据提供方发送数据请求方的请求信息及密钥密文信息,若数据提供方同意授权,则依次执行步骤S402、S403,生成授权密钥并向存储节点发送数据请求方的请求信息及密钥密文信息。然后,存储节点依次执行步骤S501-S504,接收数据提供方发送的代理重加密请求,代理重加密请求包括授权密钥、文件标识及数据请求方标识。由于存储节点内部会维护一张文件存储表,表中包括文件标识及对应的存储数据的名称、存储数据的存储地址。在本申请中,存储数据包括密钥密文及分片密文。根据文件标识从表中查找密钥密文的存储地址,根据该存储地址提取密钥密文,采用前述步骤数据请求方生成的授权密钥对密钥密文进行代理重加密,生成重加密密钥密文。重加密加密算法不做具体的限定。存储节点存储该重加密密钥密文,并将存储地址保存在文件存储表中对应的文件标识处。然后,存储节点向区块链节点发送访问权限更新请求,访问权限更新请求中包括文件标识、数据请求方标识及重加密密钥密文的存储地址。区块链节点接收该请求并提取出数据请求方标识和重加密密钥密文的存储地址,将提取的信息保存到内部维护的访问权限表的对应的文件标识处。此时,区块链节点完成了数据访问权限的更新。此时,数据请求方可以在区块链节点的访问权限表中看到欲访问数据及重加密密钥密文的存储地址。
在一种可行的实施方式中,步骤S402,根据公钥及己方私钥,生成授权密钥,包括:
根据所述数据请求方的公钥、己方私钥及授权密钥公式Rk1=gr’,Rk2=X*e(gs,H0(IDB))r’,Rk3=skA -1*H1(X),RekeyA->B=(Rk1||Rk2||Rk3),生成授权密钥,其中,g为G1的一个生成元,r’为一个随机数,gr’为g的r’次点乘,gs为g的s次点乘,IDB为所述数据请求方的公钥,H0(IDB)为对所述数据请求方的公钥进行散列运算,e(gs,H0(IDB))r’为以gs和H0(IDB)为参数进行双线性映射,映射结果进行r’次点乘,X为一个随机数,H1(X)为对X进行散列运算,skA -1为所述数据提供方的己方私钥的倒数,Rk1、Rk2、Rk3为中间值,RekeyA->B为Rk1、Rk2、Rk3拼接得到的所述授权密钥,“||”符号为字符拼接符号。
具体地,数据提供方根据上述公式,采用己方私钥和数据请求方公钥,生成授权密钥。
在一种可行的实施方式中,步骤S502采用授权密钥对文件标识对应的密钥密文进行代理重加密,得到重加密密钥密文,包括:
根据代理重加密计算公式RC1’=C1,RC2’=C2*e(C1,Rk3),RC3’=Rk1,RC4’=Rk2对文件标识对应的密钥密文进行代理重加密,得到重加密密钥密文Crfk=RC1’||RC2’||RC3’||RC4’。其中,C1、C2为所述密钥密文的组成部分、Rk1、Rk2为所述授权密钥的组成部分,Crfk为RC1’、RC2’、RC3’、RC4’为拼接得到的所述重加密密钥密文。
具体地,存储节点同时作为半可信代理节点,采用上述公式对密钥密文进行代理重加密,得到重加密密钥密文。
在上述实现过程中,数据提供方通过生成授权密钥并向存储节点发送代理重加密请求,能够使存储节点在无法获知数据提供方私钥的情况下对数据请求方进行访问授权,保障了数据提供方私钥的安全性。
在上述实现过程中,通过将存储节点与半可信代理节点合二为一对密钥密文进行代理重加密,与现有技术中存储节点和半可信代理节点分离的方式相比,能够节省节点间数据交互的传输时间,提高代理重加密效率,通过将重加密密钥密文的存储地址和数据请求方公钥发送给区块链节点,能够告知区块链节点数据访问信息,并通知区块链节点进行数据访问权限控制。
进一步地,数据提供方通过密钥生成公式,能够准确的生成授权密钥。
进一步地,存储节点通过对密钥密文进行代理重加密,得到重加密密钥密文,能够在不暴露数据提供方密钥密文内容的情况下将密钥密文转换成能够通过数据请求方私钥解密的重加密密钥密文,提高了数据共享过程中的安全性。
实施例三
当数据请求方获取了共享数据的访问权限,可以根据区块链节点上检索到的共享数据的相关信息下载数据。本申请提供一种数据共享方法,如图3所示,本实施例描述数据共享方法的数据下载过程,方法应用于数据请求方,方法包括:
S601、从区块链节点的访问权限表中获取待请求数据的所属方信息,所属方信息包括待请求数据提供方信息、存储节点标识及存储地址。
S602、根据存储节点标识和存储地址向对应的存储节点下载待请求数据。
其中,待请求数据提供方信息不做具体限定,可以是数据提供方IP、联系方式等。当待请求数据冗余存储时,存储节点标识为多个。
具体地,区块链节点上的访问权限表,对用户公开,但只有具有访问权限的用户,才能看到对应的共享数据及授权密钥的所属方信息,具有访问权限的用户从区块链节点的访问权限表中检索到待请求数据的所属方信息。用户从所属方信息中选取一个存储节点标识,从对应存储节点下载待请求数据,下载方法不做具体限定。
在一种可行的实施方式中,步骤S602,根据存储节点标识和存储地址向对应的存储节点下载待请求数据,包括:
i.根据存储节点标识向对应的存储节点发送数据下载请求,请求中包括存储地址。
ii.接收存储节点发送的重加密密钥密文及分片密文。
iii.根据己方私钥解密重加密密钥密文,得到对称密钥。
iv.重组分片密文,根据对称密钥解密重组后的分片密文,得到明文数据。
具体地,数据请求方根据选取的存储节点标识向对应的存储节点发送数据下载请求,将待请求数据的存储地址作为请求参数。存储节点接收数据下载请求,从中提取待请求数据的存储地址,根据存储地址对应的文件标识,提取出文件标识对应的分片密文及重加密密钥密文,将分片密文及重加密密钥密文发送给数据请求方。
数据请求方接收存储节点发送的重加密密钥密文及分片密文,根据己方私钥解密重加密密钥密文,得到对称密钥。具体地,数据请求方按照如下公式使用己方私钥对重加密密钥密文进行解密,得到对称密钥。解密公式可以表达为:
其中,RC′4、RC′3、RC′1为存储节点对密钥密文进行代理重加密时生成的中间数据,skB为数据请求方私钥,e为双线性映射函数。H1(M1))为对M1进行散列运算。M为最终解密得到的对称密钥。
数据请求方解密得到对称密钥后,根据分片密文中的分片标识,将多个分片重组为一个完整的内容密文。示例性的,分片密文有如下分片标识:101001、101003、101002、101004,根据分片标识的编号大小,按顺序对分片排序,得到编号依次为101001、101002、101003、101004的分片组,将所有分片依照上述方法进行排序重组,得到内容密文。
在得到内容密文后,数据请求方采用对称密钥对内容密文进行解密,得到明文数据。其中,对称密钥对内容密文进行解密的算法不做限定,但要与对称密钥的加密算法相适应。
在上述实现过程中,通过从区块链节点的访问权限表中获取待请求数据的所属方信息,能够快速准确的根据所属方信息下载待请求数据。
进一步地,通过消息收发方式能够简单快速的获取重加密密钥密文及分片密文,通过己方私钥解密重加密密钥密文,能够准确获取对称密钥,通过重组分片密文以及根据对称密钥解密重组分片密文,能够准确得到明文数据。
实施例四
本申请实施例提供一种数据共享装置700,如图4所示,该装置应用于数据提供方,包括第一密钥生成模块701、第一加密模块702、分片模块703、第一发送模块704。
第一密钥生成模块701,用于生成对称密钥和密钥对。
第一加密模块702,用于采用对称密钥对文件内容进行加密,得到内容密文。用于采用密钥对中的公钥对对称密钥加密,得到密钥密文。
分片模块703,用于对内容密文进行分片处理,得到分片密文。
第一发送模块704,用于将分片密文和密钥密文上传到至少一个存储节点上。
第一发送模块704具体用于向区块链的区块链节点发送上链交易请求。接收交易请求的响应信息,响应信息中包括文件标识和至少一个存储节点的存储节点标识。根据存储节点标识将分片密文、密钥密文及文件标识发送到至少一个存储节点上。
数据共享装置700还用于接收数据请求方发送的数据授权请求,数据授权请求包括数据请求方的请求信息及密钥密文信息。请求方信息包括数据请求方的标识及公钥。密钥密文信息包括文件标识及存储节点标识。根据公钥及己方私钥,生成授权密钥。根据密钥密文信息中的存储节点标识向对应的存储节点发送代理重加密请求,代理重加密请求中包括授权密钥、文件标识及数据请求方的标识。
数据共享装置700具体用于根据数据请求方的公钥、己方私钥及授权密钥公式Rk1=gr’,Rk2=X*e(gs,H0(IDB))r’,Rk3=skA -1*H1(X),RekeyA->B=(Rk1||Rk2||Rk3),生成授权密钥,其中,g为G1的一个生成元,r’为一个随机数,gr’为g的r’次点乘,gs为g的s次点乘,IDB为数据请求方的公钥,H0(IDB)为对数据请求方的公钥进行散列运算,e(gs,H0(IDB))r’为以gs和H0(IDB)为参数进行双线性映射,映射结果进行r’次点乘,X为一个随机数,H1(X)为对X进行散列运算,skA -1为数据提供方的己方私钥的倒数,Rk1、Rk2、Rk3为中间值,RekeyA->B为Rk1、Rk2、Rk3拼接得到的授权密钥,“||”符号为字符拼接符号。
本申请实施例未详细描述部分参考实施例一至实施例三数据共享方法的描述,在此不再赘述。
实施例五
本申请实施例提供一种数据共享装置800,如图5所示,该装置应用于区块链节点,包括第一接收模块801、分配模块802、第二接收模块803、第一存储模块804。
第一接收模块801,用于接收数据提供方的上链交易请求,上链交易请求中包括数据提供方地址。
分配模块802,用于根据数据提供方地址,给数据提供方分配文件标识和至少一个存储节点。
第二接收模块803,用于接收至少一个存储节点发送的分片密文及密钥密文的存储地址和文件标识。分片密文为数据提供方在数据上链前对共享数据加密后分片得到的。密钥密文为数据提供方对对称密钥加密得到的。对称密钥用于加密共享数据。
第一存储模块804,用于针对每一个存储节点,根据文件标识存储分片密文及密钥密文的存储地址。
分配模块802,具体用于根据数据提供方的地址,获取距离数据提供方最近的至少一个存储节点的存储节点标识。根据预设规则分配文件标识。文件标识用于标识数据提供方上传到至少一个存储节点的共享数据。
分配模块802,具体用于向所有存储节点发送连通性测试请求,请求包括数据提供方的地址。接收所有存储节点发送的往返时间。往返时间为每个存储节点通过向数据提供方发送连通性测试指令得到的节点间的测试报文的往返时间。连通性测试指令会向数据提供方发送测试报文。从往返时间中筛选出往返时间最小的至少一个存储节点的存储节点标识,作为存储节点标识。
本申请实施例未详细描述部分参考实施例一至实施例三数据共享方法的描述,在此不再赘述。
实施例六
本申请实施例提供一种数据共享装置900,如图6所示,该装置应用于存储节点,包括第三接收模块901、重加密密钥生成模块902、第二存储模块903、第二发送模块904。
第三接收模块901,用于接收数据提供方发送的代理重加密请求,代理重加密请求包括授权密钥、文件标识及数据请求方标识。
重加密密钥生成模块902,用于根据文件标识获取密钥密文,采用授权密钥对密钥密文进行代理重加密,得到重加密密钥密文。
第二存储模块903,用于根据文件标识存储重加密密钥密文。
第二发送模块904,用于向区块链节点发送访问权限更新请求,访问权限更新请求中包括文件标识、数据请求方标识及重加密密钥密文的存储地址,区块链节点中存储有密钥密文的访问权限信息。
重加密密钥生成模块902,具体用于根据代理重加密计算公式RC1’=C1,RC2’=C2*e(C1,Rk3),RC3’=Rk1,RC4’=Rk2对文件标识对应的密钥密文进行代理重加密,得到重加密密钥密文Crfk=RC1’||RC2’||RC3’||RC4‘。其中,C1、C2为所述密钥密文的组成部分、Rk1、Rk2为所述授权密钥的组成部分,Crfk为RC1’、RC2’、RC3’、RC4’为拼接得到的所述重加密密钥密文。
本申请实施例未详细描述部分参考实施例一至实施例三数据共享方法的描述,在此不再赘述。
实施例七
本申请实施例提供一种数据共享装置1000,如图7所示,该装置应用于数据请求方,包括获取模块1001、下载模块1002。
获取模块1001,用于从区块链节点的访问权限表中获取待请求数据的所属方信息,所属方信息包括待请求数据提供方信息、存储节点标识及存储地址。
下载模块1002,用于根据存储节点标识和存储地址向对应的存储节点下载待请求数据。
下载模块1002,具体用于根据存储节点标识向对应的存储节点发送数据下载请求,请求中包括存储地址。接收存储节点发送的重加密密钥密文及分片密文。根据己方私钥解密重加密密钥密文,得到对称密钥。重组分片密文,根据对称密钥解密重组后的分片密文,得到明文数据。
本申请实施例未详细描述部分参考实施例一至实施例三数据共享方法的描述,在此不再赘述。
实施例八
本申请实施例提供一种电子设备1100,如图8所示,包括:处理器1101及存储器1002。处理器1101用于执行存储器1102中存储的程序,以实现如实施例一至实施例三任一项所述的数据共享方法。
可以理解,图8所示的结构仅为示意,电子设备还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
例如,处理器1101和存储器1102之间可以是通过通信总线的方式进行的连接。又例如,电子设备还可包括诸如显示器、鼠标、键盘等部件。
在本申请实施例中,处理器1101可以为中央处理器、微处理器、单片机等,但不作为限制。存储器1102可以为随机存取存储器,只读存储器,可编程只读存储器,可擦除只读存储器,电可擦除只读存储器等,但不作为限制。
在本申请实施例中,电子设备可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一至实施例三所述的数据共享方法。在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种数据共享方法,其特征在于,应用于数据提供方,所述方法包括:
生成对称密钥和密钥对;
采用所述对称密钥对文件内容进行加密,得到内容密文;
采用所述密钥对中的公钥对所述对称密钥加密,得到密钥密文;
对所述内容密文进行分片处理,得到分片密文;
将所述分片密文和所述密钥密文上传到至少一个存储节点上。
2.如权利要求1所述的数据共享方法,其特征在于,所述将所述分片密文和所述密钥密文上传到至少一个存储节点上,包括:
向所述区块链的区块链节点发送上链交易请求;
接收所述交易请求的响应信息,所述响应信息中包括文件标识和所述至少一个存储节点的存储节点标识;
根据所述存储节点标识将所述分片密文、所述密钥密文及所述文件标识发送到所述至少一个存储节点上。
3.如权利要求1或2所述的数据共享方法,其特征在于,所述方法还包括:
接收数据请求方发送的数据授权请求,所述数据授权请求包括所述数据请求方的请求信息及密钥密文信息;所述请求方信息包括所述数据请求方的标识及公钥;所述密钥密文信息包括文件标识及存储节点标识;
根据所述公钥及己方私钥,生成授权密钥;
根据所述密钥密文信息中的存储节点标识向对应的存储节点发送代理重加密请求,所述代理重加密请求中包括所述授权密钥、所述文件标识及所述数据请求方的标识。
4.如权利要求3所述的数据共享方法,其特征在于,所述根据所述公钥及己方私钥,生成授权密钥,包括:
根据所述数据请求方的公钥、己方私钥及授权密钥公式Rk1=gr’,Rk2=X*e(gs,H0(IDB))r’,Rk3=skA -1*H1(X),RekeyA->B=(Rk1||Rk2||Rk3),生成授权密钥,其中,g为G1的一个生成元,r’为一个随机数,gr’为g的r’次点乘,gs为g的s次点乘,IDB为所述数据请求方的公钥,H0(IDB)为对所述数据请求方的公钥进行散列运算,e(gs,H0(IDB))r’为以gs和H0(IDB)为参数进行双线性映射,映射结果进行r’次点乘,X为一个随机数,H1(X)为对X进行散列运算,skA -1为所述数据提供方的己方私钥的倒数,Rk1、Rk2、Rk3为中间值,RekeyA->B为Rk1、Rk2、Rk3拼接得到的所述授权密钥,“||”符号为字符拼接符号。
5.一种数据共享方法,其特征在于,应用于区块链节点,所述方法包括:
接收数据提供方的上链交易请求,所述上链交易请求中包括所述数据提供方的地址;
根据所述地址,给所述数据提供方分配文件标识和至少一个存储节点;
将所述文件标识和所述存储节点标识反馈给所述数据提供方;
接收所述至少一个存储节点发送的分片密文及密钥密文的存储地址和所述文件标识;所述分片密文为数据提供方在数据上链前对共享数据加密后分片得到的;所述密钥密文为数据提供方对对称密钥加密得到的;所述对称密钥用于加密所述共享数据;
针对每一个存储节点,根据所述文件标识存储所述分片密文及所述密钥密文的存储地址。
6.如权利要求5所述的数据共享方法,其特征在于,所述根据所述地址,给所述数据提供方分配文件标识和至少一个存储节点,包括:
根据所述数据提供方的地址,获取距离所述数据提供方最近的至少一个存储节点的存储节点标识;
根据预设规则分配文件标识;所述文件标识用于标识所述数据提供方上传到所述至少一个存储节点的共享数据。
7.如权利要求6所述的数据共享方法,其特征在于,所述获取距离所述数据提供方最近的至少一个存储节点的存储节点标识,包括:
向所有存储节点发送连通性测试请求,所述请求包括所述数据提供方的地址;
接收所有存储节点发送的往返时间;所述往返时间为每个存储节点通过向所述数据提供方发送连通性测试指令得到的节点间的测试报文的往返时间;所述连通性测试指令会向所述数据提供方发送测试报文;
从所述往返时间中筛选出往返时间最小的至少一个存储节点的存储节点标识,作为所述存储节点标识。
8.一种数据共享方法,其特征在于,应用于存储节点,所述方法包括:
接收所述数据提供方发送的代理重加密请求,所述代理重加密请求包括授权密钥、文件标识及数据请求方标识;
根据所述文件标识获取所述密钥密文,采用所述授权密钥对所述密钥密文进行代理重加密,得到重加密密钥密文;
根据所述文件标识存储所述重加密密钥密文;
向区块链节点发送访问权限更新请求,所述访问权限更新请求中包括所述文件标识、所述数据请求方标识及所述重加密密钥密文的存储地址,所述区块链节点中存储有所述文件标识对应的共享数据的访问权限表,所述访问权限表用于控制向具有访问权限的用户显示可以下载的数据。
9.如权利要求8所述的数据共享方法,其特征在于,所述采用授权密钥对所述文件标识对应的密钥密文进行代理重加密,得到重加密密钥密文,包括:
根据代理重加密计算公式RC1 ’=C1,RC2 ’=C2*e(C1,Rk3),RC3 ’=Rk1,RC4 ’=Rk2对所述文件标识对应的密钥密文进行代理重加密,得到重加密密钥密文Crfk=RC1 ’||RC2 ’||RC3 ’||RC4 ’;其中,C1、C2为所述密钥密文的组成部分、Rk1、Rk2为所述授权密钥的组成部分,Crfk为RC1 ’、RC2 ’、RC3 ’、RC4 ’为拼接得到的所述重加密密钥密文。
10.一种数据共享方法,其特征在于,应用于数据请求方,所述方法包括:
从区块链节点的访问权限表中获取待请求数据的所属方信息,所述所属方信息包括待请求数据提供方信息、存储节点标识及存储地址;
根据所述存储节点标识和所述存储地址向对应的存储节点下载所述待请求数据。
11.如权利要求10所述的数据共享方法,其特征在于,所述根据所述存储节点标识和所述存储地址向对应的存储节点下载所述待请求数据,包括:
根据所述存储节点标识向对应的存储节点发送数据下载请求,所述请求中包括所述存储地址;
接收所述存储节点发送的重加密密钥密文及分片密文;
根据己方私钥解密所述重加密密钥密文,得到对称密钥;
重组分片密文,根据所述对称密钥解密重组后的分片密文,得到明文数据。
12.一种数据共享装置,其特征在于,应用于数据提供方,包括:
第一密钥生成模块,用于生成对称密钥和密钥对;
第一加密模块,用于采用所述对称密钥对文件内容进行加密,得到内容密文;用于采用所述密钥对中的公钥对所述对称密钥加密,得到密钥密文;
分片模块,用于对所述内容密文进行分片处理,得到分片密文;
第一发送模块,用于将所述分片密文和所述密钥密文上传到至少一个存储节点上。
13.一种数据共享装置,其特征在于,应用于区块链节点,包括:
第一接收模块,用于接收数据提供方的上链交易请求,所述上链交易请求中包括数据提供方地址;
分配模块,用于根据所述数据提供方地址,给所述数据提供方分配文件标识和至少一个存储节点;
第二接收模块,用于接收所述至少一个存储节点发送的分片密文及密钥密文的存储地址和所述文件标识;所述分片密文为数据提供方在数据上链前对共享数据加密后分片得到的;所述密钥密文为数据提供方对对称密钥加密得到的;所述对称密钥用于加密所述共享数据;
第一存储模块,用于针对每一个存储节点,根据所述文件标识存储所述分片密文及所述密钥密文的存储地址。
14.一种数据共享装置,其特征在于,应用于存储节点,包括:
第三接收模块,用于接收数据提供方发送的代理重加密请求,所述代理重加密请求包括授权密钥、文件标识及数据请求方标识;
重加密密钥生成模块,用于根据所述文件标识获取所述密钥密文,采用所述授权密钥对所述密钥密文进行代理重加密,得到重加密密钥密文;
第二存储模块,用于根据所述文件标识存储所述重加密密钥密文;
第二发送模块,用于向区块链节点发送访问权限更新请求,所述访问权限更新请求中包括所述文件标识、所述数据请求方标识及所述重加密密钥密文的存储地址,所述区块链节点中存储有所述密钥密文的访问权限信息。
15.一种数据共享装置,其特征在于,应用于数据请求方,包括:
获取模块,用于从区块链节点的访问权限表中获取待请求数据的所属方信息,所述所属方信息包括待请求数据提供方信息、存储节点标识及存储地址;
下载模块,用于根据所述存储节点标识和所述存储地址向对应的存储节点下载所述待请求数据。
16.一种电子设备,其特征在于,包括:处理器及存储器;所述处理器用于执行所述存储器中存储的程序,以实现如权利要求1至11中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107236.4A CN116166749A (zh) | 2023-02-13 | 2023-02-13 | 数据共享方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107236.4A CN116166749A (zh) | 2023-02-13 | 2023-02-13 | 数据共享方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166749A true CN116166749A (zh) | 2023-05-26 |
Family
ID=86421476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310107236.4A Pending CN116166749A (zh) | 2023-02-13 | 2023-02-13 | 数据共享方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166749A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527445A (zh) * | 2024-01-02 | 2024-02-06 | 江苏荣泽信息科技股份有限公司 | 一种基于重加密及分布式数字身份的数据共享系统 |
-
2023
- 2023-02-13 CN CN202310107236.4A patent/CN116166749A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527445A (zh) * | 2024-01-02 | 2024-02-06 | 江苏荣泽信息科技股份有限公司 | 一种基于重加密及分布式数字身份的数据共享系统 |
CN117527445B (zh) * | 2024-01-02 | 2024-03-12 | 江苏荣泽信息科技股份有限公司 | 一种基于重加密及分布式数字身份的数据共享系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10581599B2 (en) | Cloud storage method and system | |
US7958356B1 (en) | System and method for establishing a shared secret among nodes of a security appliance | |
CN111064569B (zh) | 可信计算集群的集群密钥获取方法及装置 | |
US10601590B1 (en) | Secure secrets in hardware security module for use by protected function in trusted execution environment | |
US9942050B2 (en) | Method and apparatus for bulk authentication and load balancing of networked devices | |
CN112740615B (zh) | 多方计算的密钥管理 | |
CN101605137A (zh) | 安全分布式文件系统 | |
US20180115535A1 (en) | Blind En/decryption for Multiple Clients Using a Single Key Pair | |
CN110690962B (zh) | 一种服务节点的应用方法与装置 | |
CN113259382B (zh) | 数据传输方法、装置、设备及存储介质 | |
JP2016212293A (ja) | クラウド環境にデータを保存する情報処理装置、端末装置および保存方法 | |
CN114157415A (zh) | 数据处理方法、计算节点、系统、计算机设备和存储介质 | |
CN114143108B (zh) | 一种会话加密方法、装置、设备及存储介质 | |
CN114244508B (zh) | 数据加密方法、装置、设备及存储介质 | |
JP2018041224A (ja) | ソフトウェア更新システム | |
CN111538977A (zh) | 云api密钥的管理、云平台的访问方法、装置及服务器 | |
KR101952329B1 (ko) | 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체 | |
CN113824553A (zh) | 密钥管理方法、装置及系统 | |
CN116166749A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
CN117240625A (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
JP2006279269A (ja) | 情報管理装置、情報管理システム、ネットワークシステム、ユーザ端末、及びこれらのプログラム | |
CN116155491B (zh) | 安全芯片的对称密钥同步方法及安全芯片装置 | |
CN106972928B (zh) | 一种堡垒机私钥管理方法、装置及系统 | |
CN113452513B (zh) | 密钥分发方法、装置和系统 | |
CN111431846B (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 |