一种基于区块链和重加密的数据加密分享系统及方法与流程

文档序号:24720496发布日期:2021-04-16 15:00阅读:104来源:国知局
一种基于区块链和重加密的数据加密分享系统及方法与流程

1.本申请涉及数据分享技术领域,具体的涉及一种基于区块链和重加密的数据加密分享系统及方法。


背景技术:

2.目前,数据的分享多是以明文的形式,通过服务器实现端到端的分享。在整个分享过程中,数据以明文的形式存在,数据在服务器端是可见的,因此存在数据泄露的风险。同时,数据的分享记录由第三方服务器保存,甚至不保存分享记录,使得分享记录的可信性完全依赖于第三方服务器或者无从追溯;当数据的分享记录存储在第三方服务器上时,如果第三方服务器受到攻击、被篡改或伪造,服务器的不可信直接导致存储的分享记录变得不可信。另外,数据分享缺少时间的限制条件,并且分享的数据难以确权。


技术实现要素:

3.本申请提供一种基于区块链和重加密的数据加密分享系统及方法,以解决现有数据的分享以明文形似存储在服务器上,存在数据泄露的风险,以及数据的分享记录由第三方服务器保存,甚至不保存分享记录,如果第三方服务器受到攻击、被篡改或伪造,导致存储的分享记录和分享数据变得不可信等问题。
4.一方面,一种基于区块链和重加密的数据加密分享系统,包括:区块链、连接在所述区块链上的服务器和客户端;所述客户端包括提供数据分享的分享客户端和下载分享数据的接收客户端;所述服务器用于存储从所述分享客户端接收到的分享数据以及向所述接收客户端发送所述分享数据。
5.另一方面,一种基于区块链和重加密的数据加密分享方法,包括:
6.初始化分享客户端的分享客户端公私钥对,检查所述分享客户端公私钥对是否存在;
7.如果存在所述分享客户端公私钥对,读取分享客户端公钥;
8.生成分享对称密钥;
9.使用所述分享客户端公钥,对所述分享对称密钥进行加密,得到密钥密文;
10.使用所述分享对称密钥对分享数据进行加密,得到数据密文;
11.初始化重加密密钥,检查所述重加密密钥是否存在;
12.如果所述重加密密钥存在,生成数据分享记录;
13.将所述密钥密文、所述数据密文和所述数据分享记录存储在所述服务器上;
14.将所述数据分享记录上传区块链进行存储,生成交易哈希,并将所述交易哈希保存至所述服务器;
15.根据接收客户端的分享数据下载请求,使用所述重加密密钥对所述密钥密文进行重加密,得到重加密密钥密文;
16.将所述交易哈希、所述数据密文和所述重加密密钥密文发送至所述接收客户端;
17.读取接收客户端私钥,对所述重加密密钥密文进行解密,得到所述分享对称密钥;
18.使用所述分享对称密钥解密所述数据密文,得到所述分享数据;
19.将所述分享数据保存在所述接收客户端的本地存储空间内。
20.本申请实施例提供的基于区块链和重加密的数据加密分享系统及方法,在整个数据分享过程中,数据都是以密文的形式存在和传送的,能够最大程度保证数据的不可见性,能够防止数据的泄漏,提高数据分享过程的安全性。将数据分享的过程以交易哈希的形式锚定到区块链上,能够实现数据的确权,记录数据的来源归属,可以实现数据分享过程的可追溯性;采用区块链存储数据分享记录,可以实现数据分享记录的防篡改,能够提高数据分享记录的安全可信。另外,当需要将分享数据同时分享给多个客户端时,分享客户端只需要将分享数据进行一次加密并发送至服务器即可,服务器再根据各个接收客户端的重加密密钥对密钥密文进行重加密,多个接收客户端分别发出数据下载请求,即可进行分享数据的下载,从而能够降低分享客户端的计算负担,提高数据分享的效率。分享客户端和接收客户端关联的重加密密钥可以重复使用,只要是相同的两个分享客户端和接收客户端之间进行数据分享,均可以重复使用该重加密密钥,可以避免每次分享数据都需要重新读取接收客户端公钥,再生成重加密密钥,进而能够提高数据分享的效率。
附图说明
21.为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本申请实施例提供的第一种基于区块链和重加密的数据加密分享系统拓扑图;
23.图2为本申请实施例提供的一种基于区块链和重加密的数据加密分享方法流程图;
24.图3为图2所示步骤sa的详细流程图;
25.图4为图2所示步骤se的详细流程图。
具体实施方式
26.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
27.图1为本申请实施例提供的第一种基于区块链和重加密的数据加密分享系统拓扑图。如图1所示,本申请实施例提供的基于区块链和重加密的数据加密分享系统,包括:区块链、连接在区块链上的服务器和客户端;客户端包括提供数据分享的分享客户端和下载分享数据的接收客户端;服务器用于存储从分享客户端接收到的分享数据以及向接收客户端发送分享数据。客户端可以有多个,在某次数据分享的过程中,将分享数据上传至服务器,则此客户端为分享客户端;请求服务器下载分享数据的客户端则为接收客户端。在区块链上,服务器可以作为一个节点,客户端也可以作为区块链的节点,本申请不作具体限定。需
要说明的是,图1所示的客户端数量、服务器数量以及区块链上节点数量均只是示意性的,不作为本申请的限定。
28.图2为本申请实施例提供的一种基于区块链和重加密的数据加密分享方法流程图。如图2所示,本申请提供的基于区块链和重加密的数据加密分享方法,包括如下步骤:
29.s1:初始化分享客户端的分享客户端公私钥对(pka,ska),检查分享客户端公私钥对是否存在。每个客户端均具有自己的公私钥对,其中,私钥存储在客户端内,公钥可以发送给服务器进行存储,便于后续的加密和解密动作。
30.s10:如果不存在分享客户端公私钥对,分享客户端则需要重新生成分享客户端公私钥对(pka,ska),继续读取分享客户端公钥pka,并发送至服务器进行存储。
31.s2:如果存在分享客户端公私钥对(pka,ska),读取分享客户端公钥pka。
32.s3:生成分享对称密钥k。每个分享客户端每分享一次数据,就生成一个分享对称密钥k,可以理解为分享对称密钥k为一次性使用的密钥,每分享一次数据,都重新生成一个新的分享对称密钥k。可以防止分享对称密钥被恶意截获,能够保证每次数据分享过程的可信性。
33.s4:使用分享客户端公钥pka,对分享对称密钥k进行加密,得到密钥密文e[k,pka]。由于分享对称密钥k是一次性的用于对分享数据进行加密的密钥,所以将分享对称密钥k进行加密,可以保证此次数据分享的加密使用的密钥安全性,能够防止分享对称密钥被篡改或被伪造。
[0034]
s5:使用分享对称密钥k对分享数据data进行加密,得到数据密文e[data,k]。将分享数据data进行加密,可以保证分享数据在分享过程中的安全性。
[0035]
s6:初始化重加密密钥rek,检查重加密密钥rek是否存在。一个分享客户端和一个接收客户端之间只有一个重加密密钥rek,并且只要是相同的两个分享客户端和接收客户端之间进行数据分享,重加密密钥rek可以重复利用,无需每次分享都重新生成,可以简化流程,提高数据分享的效率。
[0036]
s60:如果重加密密钥rek不存在,则需要根据分享客户端公私钥对(pka,ska)和接收客户端公钥pkb,生成重加密密钥rek,并上传至服务器进行存储。重加密密钥rek携带有分享客户端和接收客户端的密钥信息,具有唯一性,以保证数据分享过程中加密使用的密钥和数据安全可靠。
[0037]
s7:如果重加密密钥rek存在,生成数据分享记录。数据分享记录包括分享客户端身份信息、接收客户端身份信息、分享数据哈希值,分享时间戳和分享时间期限以及分享客户端的私钥签名;分享数据哈希值是分享数据经过哈希运算得到的,分享时间戳是分享数据进行分享时的时间戳信息,分享时间期限是该分享数据允许的分享时间的限定范围;分享客户端私钥签名由分享客户端的身份信息、接收客户端的身份信息、分享数据哈希值、分享时间戳和分享时间期限经过分享客户端私钥的签名得到。
[0038]
s8:将密钥密文e[k,pka]、数据密文e[data,k]和数据分享记录存储在服务器上。
[0039]
s9:将数据分享记录上传区块链进行存储,生成交易哈希txhash,并将交易哈希txhash保存至所述服务器。交易哈希txhash是由数据分享记录经过哈希运算得到。将数据分享的过程以交易哈希的形式锚定到区块链上,能够实现数据的确权,记录数据的来源归属,可以实现数据分享过程的可追溯性;采用区块链存储数据分享记录,保证数据分享记录
的防篡改,能够提高数据分享记录的安全可信。
[0040]
sa:根据接收客户端的分享数据下载请求,使用重加密密钥rek对密钥密文e[k,pka]进行重加密,得到重加密密钥密文e[e[k,pka],rek]。
[0041]
图3为图2所示步骤sa的详细流程图。如图3所示,步骤sa,进一步包括:
[0042]
sa1:根据接收客户端的分享数据下载请求,验证接收客户端的身份是否合法。
[0043]
sa2:如果接收客户端的身份合法,根据分享数据下载请求对应的交易哈希txhash,校验分享数据下载请求的请求时间是否在分享时间期限内。交易哈希txhash相当于分享记录的摘要,通过交易哈希txhash的索引,可以得到分享数据的详细信息。
[0044]
如果接收客户端的身份不合法,说明该接收客户端是不安全的,可能是冒充的,或者已经被篡改,为保证数据的安全性,则不能继续进行分享数据的下载,数据下载请求可以被驳回或者不做响应,本申请不做具体限定。
[0045]
sa3:如果分享数据下载请求的请求时间在分享时间期限内,使用重加密密钥rek对密钥密文e[k,pka]进行重加密,得到重加密密钥密文e[e[k,pka],rek]。
[0046]
如果分享数据下载请求的请求时间未在分享时间期限内,说明,该接收客户端的分享数据下载资格已经过期,不能再下载该分享数据,为保证数据的安全性,则不能继续进行分享数据的下载,数据下载请求可以被驳回或者不做响应,本申请不做具体限定。
[0047]
sb:将交易哈希txhash、数据密文e[data,k]和重加密密钥密文e[e[k,pka],rek]发送至接收客户端。
[0048]
sc:读取接收客户端私钥skb,对重加密密钥密文e[e[k,pka],rek]进行解密,得到分享对称密钥k。由于重加密密钥rek携带有分享客户端和接收客户端的密钥信息,所以使用收客户端私钥skb可以将重加密密钥密文e[e[k,pka],rek]解密出来得到分享对称密钥k。
[0049]
sd:使用解密得到的分享对称密钥k解密数据密文e[data,k],得到分享数据data。
[0050]
se:将分享数据data保存在接收客户端的本地存储空间内。至此,此次数据分享过程结束。
[0051]
图4为图2所示步骤se的详细流程图。如图4所示,步骤se,进一步包括:
[0052]
se1:计算分享数据哈希值,比对计算得到的分享数据哈希值和分享记录内的分享数据哈希值是否相同。
[0053]
如果计算得到的分享数据哈希值和分享记录内的分享数据哈希值不相同,说明接收客户端下载的分享数据可能是错误的,或者是被篡改或者伪造的数据,是已经失去可信性的数据,则此次下载得到的分享数据是无效的,此次数据分享过程失败,可以发出警报,本申请不作具体限定。
[0054]
se2:如果计算得到的分享数据哈希值和分享记录内的分享数据哈希值相同,将分享数据保存在接收客户端的本地存储空间内。此次下载的分享数据是合法有效的。
[0055]
本申请实施例提供的基于区块链和重加密的数据加密分享系统及方法,在整个数据分享过程中,数据都是以密文的形式存在和传送的,能够最大程度保证数据的不可见性,能够防止数据的泄漏,提高数据分享过程的安全性。将数据分享的过程以交易哈希的形式锚定到区块链上,能够实现数据的确权,记录数据的来源归属,可以实现数据分享过程的可追溯性;采用区块链存储数据分享记录,可以实现数据分享记录的防篡改,能够提高数据分
享记录的安全可信。另外,当需要将分享数据同时分享给多个客户端时,分享客户端只需要将分享数据进行一次将加密并发送至服务器即可,服务器再根据各个接收客户端的重加密密钥对密钥密文进行重加密,多个接收客户端分别发出数据下载请求,即可进行分享数据的下载,从而能够降低分享客户端的计算负担,提高数据分享的效率。分享客户端和接收客户端关联的重加密密钥可以重复使用,只要是相同的两个分享客户端和接收客户端之间进行数据分享,均可以重复使用该重加密密钥,可以避免每次分享数据都需要重新读取接收客户端公钥,再生成重加密密钥,进而能够提高数据分享的效率。在数据分享记录中录入数据的分享时间期限,可以对分享数据的分享权限进行对应管控,使得数据分享过程更加智能,也更加可靠,如果请求的时间已经超出分享时间期限,则请求会被驳回,保证数据分享的安全可靠,能够进一步防止数据的泄漏。
[0056]
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0057]
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1