一种基于区块链的云数据共享隐私保护方案的制作方法

文档序号:18601772发布日期:2019-09-03 22:44阅读:390来源:国知局
一种基于区块链的云数据共享隐私保护方案的制作方法

本发明涉及云数据共享方法,具体涉及一种基于区块链的云数据共享隐私保护方案,属于数据共享技术领域。



背景技术:

在数据共享中,共享数据的隐私性,完整性是非常重要的两方面。共享数据的隐私安全的关键在于保密存储和保密共享,共享数据的完整性是通过提供有效的验证数据(如:数据哈希值)保证其不被篡改。现实生活中有一种场景:随着监测健康的可穿戴产品不断盛行,患有某些疾病的人群往往希望了解到其他患友的状态数据(如:血压值)来判断自身病情的状况,这些患友一般会主动自组建成群并将各自的状态数据共享到云中,提供给群里的患者进行参考,或计算获得有意义的结果。但是,这些数据涉及到患者的隐私,因此这些数据应保密共享,而且应经过一定人数的患者同意才能查看。

共享数据的保密性需要采用数据加密的方法来解决,而且使用的加密方法应支持在加密的状态下进行计算,基于阈值的paillier同态密码系统可以解决此类问题。共享数据的完整性可以通过区块链技术来解决,基于p2p网络的区块链技术具有无法篡改的特性可以解决此类问题。

本发明就是针对上述提出的常见的生活场景,结合云数据共享的共享需求,提出一种全新的基于区块链的云数据共享隐私保护方案,新的共享方案能够保证共享数据的完整性和保密性,并支持加密状态下的数据计算。



技术实现要素:

本发明方法的目的是为了解决共享数据的完整性和保密性,并支持加密状态下共享数据的计算问题。

为了达到上述目的,本发明提供了一种基于区块链的云数据共享隐私保护方案,该方法包括6个过程:共享数据加密、共享数据上传、共享数据哈希值写入区块链、共享数据下载、共享数据解密、共享数据对比区块链上对应的哈希值,具体内容如下:

共享数据加密:用户的共享数据使用基于阈值t的paillier同态密码系统加密,ca负责密钥的分发;

共享数据上传:用户将共享数据的密文上传到云存储;

共享数据哈希值写入区块链:云计算共享数据的密文的哈希值并将之写入区块链;

共享数据下载:需要共享数据或基于共享数据计算结果的用户下载共享数据密文到本地;

共享数据解密:用户利用至少t个用户的私钥对共享数据密文进行解密得到共享数据明文;

共享数据对比区块链上对应的哈希值:为了验证共享数据的完整性将下载数据相关的哈希值与区块链上对应的哈希值进行比对,如果一致,使用数据;否则,丢弃数据。

有益效果

对比现有现有技术,本发明具有如下特点:利用paillier同态密码系统对共享数据进行加密,实现共享数据的保密性,而且支持共享数据在加密的状态下参与计算获得一定意义的结果;利用共享数据的哈希值作为验证共享数据完整性的有效数据,并将其写入区块链实现防篡改,从而保证共享数据的完整性;即本发明将云存储技术、paillier同态密码技术和区块链技术进行了有机结合,充分利用了各自的优势,构建了一个适于实用的共享隐私保护方案,有效解决了共享隐私及数据方便使用的两难问题。

附图说明

图1为本发明的方案流程图。

具体实施方式

下面结合附图对本发明方法的实施方式作详细说明。

本发明主要涉及共享数据加密、共享数据上传、共享数据哈希值写入区块链、共享数据下载、共享数据解密、共享数据对比区块链上对应的哈希值。数据的产生、获取以及带宽不是本发明的考虑范围。本发明假设在用户数据加密和解密之前,用户数据已经成功获取,并且用户群已经建立且云存储、区块链系统已存在。本发明约定,我们采用两个假设:最多有(t-1)方相互勾结,且所有方都是半诚实的。共谋模型假设用户不能与(t-1)以上的其他用户进行共谋,这意味着用户不能通过与其他方进行共谋来解密密文。半诚实模型假设所有参与方都是诚实而试图推断隐私信息,这意味着它们严格遵守我们的协议设计,但是在协议执行过程中,每一方都试图推断出其他参与方的私有信息。这些假设在该发明的场景中是合理的,因为(1)各方希望得到正确的结果,遵守协议的共同利益。(2)用户通常不认识彼此,即使他们认识,他们也不希望向别人透露自己的隐私信息。

在介绍本发明方法的详细过程前,我们先对涉及到的符号作如表1所述约定。

表1符号约定

实施例1

下面我们就介绍本发明方法的详细过程。

所述共享数据加密包括如下步骤:

步骤1:假设用户群共有p个用户,ca负责给p个用户分发公钥和私钥,每个用户分发的公钥相同,私钥不同。公钥用于加密,私钥用于解密。根据基于阈值的paillier同态密码系统特性,p个私钥各不相同,达到阈值t个私钥才能解密加密数据;

步骤2:对于将要上传的数据文件f,user1利用哈希函数h对f作用生成一个哈希值,即kf=h(f),并保存;

步骤3:为了达到保密性,user1将数据文件f加密为f*=epk(f),并计算并保存,其中,pk表示user1的公钥,e(·)表示加密函数。

所述共享数据上传包括如下步骤:

步骤1:user1将f*、kf和上传至云存储;

步骤2:云利用哈希函数h对f*作用生成一个哈希值,即

所述共享数据哈希值写入区块链包括如下步骤:

步骤1:云将kf、写入区块链。

所述共享数据下载包括如下步骤:

步骤1:user2向云提出申请下载文件f或提出申请运算获得某种有意义的结果g;

步骤2:user2如果申请下载文件f,则user2收到数据组跳转到步骤6;

步骤3:user2如果申请运算获得某种有意义的结果g,则云按照用户的计算需求计算相应的结果g。因为云利用用户共享的加密数据在数据加密的状态下进行的计算,所以结果g也是加密数据;

步骤4:云利用哈希函数h对g作用生成一个哈希值,即kg=h(g);

步骤5:云将kg写入区块链;

步骤6:结束。

所述共享数据解密包括如下步骤:

步骤1:需要解密共享数据的用户从用户群p个用户中选取t-1个用户;

步骤2:需要解密共享数据的用户获得t-1个用户的私钥,结合自己的私钥共t个私钥对f*或g进行解密。

所述共享数据对比区块链上对应的哈希值包括如下步骤:

步骤1:user2如果下载的是用户共享文件f,则user2利用哈希函数h对下载到的共享加密数据f*计算一个哈希值否则,转到步骤4;

步骤2:user2利用哈希函数h对解密后的共享数据计算一个哈希值kf′;

步骤3:如果user2将kf′、与下载得到的对比区块链上存储的kf、如果数值相同,则共享数据的完整性没有被破坏,用户使用数据,跳转到步骤6;

步骤4:user2如果下载的是某种意义的运算结果g,则user2利用哈希函数h对g计算一个哈希值k′g;

步骤5:如果k′g与区块链上存储的kg数值相同,则该数据g没有被破坏,用户使用数据;

步骤6:结束。

利用加密技术对用户共享数据进行加密,防止用户共享数据泄露,从而实现用户共享数据的保密性。用户共享数据一旦发生变化,其哈希值也会发生变化,本发明利用用户共享数据的哈希值作为有效的验证数据来判断其是否发生变化,从而有效的保证用户数据的完整性。用户将共享数据上传到云,利用云的存储能力为用户节省了空间。另外,用户根据需求可能会将共享数据进行运算,利用云的强大运算能力为用户节省了时间。区块链上存储了用户本地数据的哈希值kf、本地加密数据的哈希值和共享到云上的用户加密数据的哈希值利用区块链的防篡改性实现验证用户本地数据和共享到云上的用户数据的完整性。

针对实施例1,同类病情的患者组成一个群集合,如果血压值(可看作共享数据)对他们的病情是一个重要的影响指标的话,他们可以通过计算平均血压值来确定自己的血压所处的状况,如果与平均血压值差距较大的话,可能就有必要去医院就诊。另外,病情数据是患者隐私数据,进行加密共享,所以计算时也应在加密状态下,本专利使用的基于阈值的paillier同态密码系统支持数据加密状态下运算,所以加密状态下共享数据的计算问题得到解决。

为了说明本发明的内容及实施方法,本说明书给出了具体实施例。在实施例中引入细节的目的不是限制权利要求书的范围,而是帮助理解本发明所述方法。本领域的技术人员应理解:在不脱离本发明及其所附权利要求的精神和范围内,对最佳实施例步骤的各种修改、变化或替换都是可能的。因此,本发明不应局限于最佳实施例及附图所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1