利索能及
我要发布
收藏
专利号: 201910140899X
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-12
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于区块链的数据文件安全隐私存储和分享方法,其特征在于,包括以下步骤:S1、初始化用户和明文文件,根据子密钥将明文文件采用对称加密算法加密得到密文文件,该密文文件的子密钥存储于数据拥有者的终端,并将该子密钥加密后存储于区块链中;

S2、将密文文件存储于存储服务器,将密文文件在存储服务器的位置信息存储在数据拥有者的终端,并将密文文件在存储服务器的位置信息采用基于属性的加密算法加密后存储于区块链中;

S3、将存储文件的校验信息存储于区块链上,同时采用基于属性的加密算法对密文文件的解密密钥进行加密,并制定访问策略,以密文的形式存放在区块链上;

S4、在数据拥有者将密文文件上传到存储服务器之后,并完成对上链信息的上传操作之后,T时间内区块链达成共识之后并产生新的区块,系统向数据拥有者返回生成区块的id,即交易id,数据拥有者获得并存储交易id;

S5、数据请求者向数据拥有者请求加密文件的相关密钥及交易id,同意分享后通过安全信道交互信息并发送加密文件的相关密钥及交易id,数据请求者查询区块链交易的区块信息获取相关秘钥和存储位置信息,解密该加密文件,即:S51、数据请求者对数据拥有者发出文件分享的请求,该请求包括数据请求者的身份id;

S52、数据拥有者接收数据请求者的分享请求,并根据数据请求者的身份id生成访问策略;

S53、数据拥有者将自己的交易id和对嵌有访问策略的密文进行再次加密的对称密钥发送给数据请求者;

S54、数据请求者根据交易id查找在区域链中寻找对应的区块,并使用解密密钥解密该区块的密文;

S55、数据请求者根据自己的身份id解密访问策略,获得请求的密文文件所有相关解密密钥和该密文文件在存储服务器的位置信息的密文;

S56、解密密文文件在存储服务器的位置信息的密文,并通过该位置信息从存储服务器下载并解密密文文件,

在分享数据过程中,根据服务器计算能力设置一个阈值n,当数据请求者的数量大于设置的阈值n时,步骤S53中对嵌有访问策略的密文进行再加密时,从密钥空间随机选取一个密钥K2使用对称加密的方式对密文进行加密,得到密文Y,此时数据拥有者存储下密钥K2,并将密文Y和之前计算的上传的密文文件的哈希值H一同公开存储至区块链账本中,经区块链记账节点共识之后,获得返回的交易id,将返回的交易id和密钥K2分发给数据分享的请求者,请求者根据自身属性解密密文,获得文件的存储位置信息,并下载,然后使用密钥解密密文获得明文文件F,完成数据的存储和分享;

当数据请求者的数量不大于设置的阈值n时,采用请求方的公钥keypub加密嵌有访问策略的密文,得到密文Y1,区块链记录密文Y1和哈希值H,记录交易id,发送区块交易的id给请求者,分享请求者只需使用自己的私钥进行解密。

2.根据权利要求1所述的一种基于区块链的数据文件安全隐私存储和分享方法,其特征在于,初始化用户和明文文件包括:根据用户的身份属性颁发身份证书,该身份证书包括用户属性集、身份id、公密钥keypub以及私密钥keypriv,公密钥keypub全网公开;用户端通过随机数产生器在本地随机生成一个随机数R,将用户私钥和安全随机数作为哈希函数的输入生成主密钥keymas=Hash(keypriv||R),并将其保存在用户端;为明文文件提供文件id。

3.根据权利要求2所述的一种基于区块链的数据文件安全隐私存储和分享方法,其特征在于,密文文件的子密钥根据数据拥有者的主密钥keymas以及客户端对明文文件Fi的生成的索引号seqi构建,表示为keyseq=(keymas||seqi);其中keyseq表示对应文件的加解密秘钥。

4.根据权利要求1所述的一种基于区块链的数据文件安全隐私存储和分享方法,其特征在于,将密文数据存储于存储服务器前还包括:将密文文件进行哈希值计算得到密文文件的哈希值,并将密文文件的哈希值存放于区块链上。

5.根据权利要求1所述的一种基于区块链的数据文件安全隐私存储和分享方法,其特征在于,所述步骤S2包括:

S21、获得密文文件存储在存储服务器中的位置信息之后,采用对称加密算法对该位置信息进行加密处理;

S22、将加密后的位置信息存储于区块链上;

S23、数据拥有者在本地端存储一份该密文文件在存储服务器中的位置信息。

6.根据权利要求5所述的一种基于区块链的数据文件安全隐私存储和分享方法,其特征在于,步骤S22还包括:将加密后的位置信息采用属性加密算法进行再次加密,并将该二次加密后的位置信息及其属性密钥存储于区块链上。

7.根据权利要求1所述的一种基于区块链的数据文件安全隐私存储和分享方法,其特征在于,采用基于属性的加密算法对密文文件的解密密钥和密文文件在存储服务器的位置信息进行加密后的信息,客户端随机生成一个新的对称加密密钥,对属性加密后的密文进行再次加密,并将此次加密的密钥存储于数据拥有者的终端,且此次加密的密文公开存储于区块链上。