System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于链上链下协同的数据可搜索加密方法技术_技高网

一种基于链上链下协同的数据可搜索加密方法技术

技术编号:41092122 阅读:2 留言:0更新日期:2024-04-25 13:51
本发明专利技术属于区块链与数据加密技术领域,公开了一种基于链上链下协同的数据可搜索加密方法,参与方包括数据提供者、数据请求者、星际文件系统、区块链、代理加密服务器和代理解密服务器,通过初始化和用户注册,代理策略加密和访问策略隐藏,数据加密并上传区块链,用户访问权限判断与数据搜索,代理数据预解密和数据解密。本发明专利技术提供一种安全、公平和高效的基于链上链下协同的数据可搜索加密方法。

【技术实现步骤摘要】

本专利技术属于区块链与数据加密,具体涉及一种基于链上链下协同的数据可搜索加密方法


技术介绍

1、区块链是一种分布式账本技术,其特征是去中心化、开放性、透明度、防篡改和可追溯性。它支持数据的安全存储和交易,且不需要第三方参与,实现公平可信的分布式访问控制。但是区块链的可扩展性较差,即不适合存储大型文件,常见的做法是将大型文件在链下进行存储,在链上存储文件的指纹信息,如哈希值。但当面对恶意的服务器时,数据的隐私性无法得到有效保护。

2、为了确保数据的安全性,数据通常以加密的形式存储在链下。在这种情况下,如何实现链下加密数据的访问控制和准确数据查询已成为一个新的挑战。基于属性的可搜索加密不仅能够对加密数据进行细粒度访问控制,而且支持用户根据关键字检索密文。但在数据查询与共享过程中存在关键字检索密文数据信息泄露问题,并且访问策略的安全性也往往被忽略。此外,目前现有密文策略的可搜索加密技术的计算和存储开销与访问策略的复杂度成正比,这给计算资源有限的用户带来了很大的局限性。

3、为了解决以上问题,如何设计安全、公平和高效的基于链上链下协同的数据可搜索加密方法仍然是一个紧迫的挑战。


技术实现思路

1、本专利技术的目的在于提供一种安全、公平和高效的基于链上链下协同的数据可搜索加密方法。

2、为实现上述目的,本专利技术所采取的技术方案为:

3、一种基于链上链下协同的数据可搜索加密方法,参与方包括数据提供者、数据请求者、星际文件系统、区块链、代理加密服务器和代理解密服务器,所述基于链上链下协同的数据可搜索加密方法,包括以下步骤:

4、(1)初始化和用户注册:

5、(1-1)在初始化阶段,根据安全参数生成系统公钥gpk和系统主私钥gsk,并将系统公钥gpk公开,系统主私钥gsk保密;

6、(1-2)在用户注册阶段,根据用户身份信息生成用户唯一标识uid,并通过用户属性集合s和系统主私钥gsk为用户生成属性私钥usk,用户包括数据提供者和数据请求者;

7、(2)代理策略加密和访问策略隐藏:

8、(2-1)数据提供者根据系统属性集u生成访问策略p,并将访问策略p发送给代理加密服务器;

9、(2-2)代理加密服务器收到计算请求后,根据系统公钥gpk和访问策略p,生成访问策略加密密文ct1;

10、(2-3)数据提供者利用隐藏策略ωi将访问策略p的策略属性隐藏;

11、(3)数据加密并上传区块链:

12、(3-1)数据提供者使用aes算法对文件h进行加密,得到加密的文件密文eck(h),其中ck是对称密钥;

13、(3-2)数据提供者将文件密文eck(h)上传到星际文件系统进行分布式云存储,得到存储哈希地址ad;

14、(3-3)数据提供者使用系统公钥gpk、对称密钥ck和访问策略加密密文ct1,生成文件密钥密文ct;

15、(3-4)数据提供者为文件密文eck(h)设置关键字w,并利用布隆过滤器计算关键字索引iw;

16、(3-5)数据提供者为文件密钥密文ct创建唯一标识fid,并将唯一标识fid,文件密钥密文ct,存储哈希地址ad,关键字索引iw和隐藏策略ωi上传到区块链;

17、(4)用户访问权限判断与数据搜索:

18、(4-1)数据请求者利用布隆过滤器根据搜索关键字w′生成查询令牌tw;

19、(4-2)数据请求者根据自己的用户属性集合s计算隐藏策略ωi′,之后将隐藏策略ωi′和访问令牌tw发送给区块链以执行搜索查询请求;

20、(4-3)收到搜索查询请求后,区块链根据审计智能合约,判断数据请求者访问行为的合法性;

21、(4-4)当数据请求者访问行为合法时,区块链判断隐藏策略ωi′与隐藏策略ωi是否相等,如果相等,则用户有访问权限;否则无访问权限并结束;

22、(4-4)当用户有访问权限时,区块链进行关键字索引iw与查询令牌tw匹配,若成功匹配则将文件密钥密文ct和存储哈希地址ad返回给用户,否则向用户返回0;

23、(5)代理数据预解密:

24、(5-1)数据请求者随机选择一个秘密参数d,并利用秘密参数d计算中间密钥usk′;

25、(5-2)数据请求者将中间密钥usk′和文件密钥密文ct发送给代理解密服务器;

26、(5-3)代理解密服务器收到计算请求后,根据中间密钥usk′和文件密钥密文ct,生成代理解密密文ct2;

27、(5-4)代理解密服务器将代理解密密文ct2返回给数据请求者;

28、(6)数据解密:

29、(6-1)数据请求者根据存储哈希地址ad从星际文件系统中获取文件密文eck(h);

30、(6-2)数据请求者根据秘密参数d和代理解密密文ct2,解出对称密钥ck′;

31、(6-3)数据请求者验证对称密钥ck′的正确性,若正确,数据请求者使用对称密钥ck′对文件密文eck(h)进行解密,得到明文文件h。

32、以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。

33、作为优选,所述隐藏策略ωi计算如下:

34、ωi=e(h1(att(i)),gα)

35、其中,e为双线性映射,且e∶g×g→gt,g为映射前的p阶乘法循环群,gt为映射后的p阶乘法循环群,h1为哈希函数,且h1:{0,1}*→g,att(i)表示节点i所关联的属性值,att(i)∈p,p为访问策略,g为p阶乘法循环群g的生成元,α为随机数,且α∈zp,zp表示p阶有限域。

36、作为优选,所述利用布隆过滤器计算关键字索引iw,包括:

37、布隆过滤器由f个m位bfs位数组和k个独立哈希函数hi组成,所有bfs位数组初始化为0;

38、首先根据分区哈希函数gi为关键字w确认一个大小为gi(w)的分组区域;

39、然后将关键字w通过k个独立哈希函数hi进行映射转换;

40、最后根据分组区域和独立哈希函数hi的映射转换,确定最终关键字w的位置为(h0(w)%m+gi(w))%m,……,(hk-1(w)%m+gi(w))%m,并将该位置的值置为1,h0(w)为独立哈希函数h0的映射转换,hk-1(w)为独立哈希函数hk-1的映射转换;

41、重复执行上述三步骤f次,每次重复执行时的分区哈希函数gi取值不同,重复执行完成后得到关键字w的映射ubf(w),利用映射ubf(w)计算得到关键字索引iw。

42、作为优选,所述数据请求者利用布隆过滤器根据搜索关键字w′生成查询令牌tw,包括:

43、布隆过滤器由f本文档来自技高网...

【技术保护点】

1.一种基于链上链下协同的数据可搜索加密方法,其特征在于,参与方包括数据提供者、数据请求者、星际文件系统、区块链、代理加密服务器和代理解密服务器,所述基于链上链下协同的数据可搜索加密方法,包括以下步骤:

2.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述隐藏策略Ωi计算如下:

3.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述利用布隆过滤器计算关键字索引IW,包括:

4.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述数据请求者利用布隆过滤器根据搜索关键字W′生成查询令牌TW,包括:

5.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述区块链根据审计智能合约,判断数据请求者访问行为的合法性,包括:

6.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述区块链进行关键字索引IW与查询令牌TW匹配,包括:

7.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述利用秘密参数d计算中间密钥USK′,包括:

...

【技术特征摘要】

1.一种基于链上链下协同的数据可搜索加密方法,其特征在于,参与方包括数据提供者、数据请求者、星际文件系统、区块链、代理加密服务器和代理解密服务器,所述基于链上链下协同的数据可搜索加密方法,包括以下步骤:

2.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述隐藏策略ωi计算如下:

3.如权利要求1所述的基于链上链下协同的数据可搜索加密方法,其特征在于,所述利用布隆过滤器计算关键字索引iw,包括:

4.如权利要求1所述的基于链上链下协同的数据可搜索加密...

【专利技术属性】
技术研发人员:梁艳红王婷陈铁明吕明琪朱添田季白杨
申请(专利权)人:浙江工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1