欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2022103743299
申请人: 江苏大学
专利类型:发明专利
专利状态:授权未缴费
专利领域: 电通信技术
更新日期:2024-03-10
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于区块链的数据搜索细粒度访问控制方法,其特征在于:包括以下步骤:S1、系统初始化

λ

授权中心TA根据安全参数1 和系统属性集L,输出系统公钥PK,主密钥MSK和搜索密钥QK;

S2、密钥生成

用户通过非对称加密算法生成用于申请注册的公钥pku和私钥sku,并向授权中心TA发送身份属性集合S和pku以请求属性私钥;授权中心TA根据用户身份属性集合S和系统主密钥MSK,为用户生成属性私钥,并将属性私钥发送给用户;skm为属性主私钥,ska为属性副私钥;此处用户包括数据拥有者和数据使用者;

S3、加密阶段

数据拥有者先使用搜索密钥QK对关键词集kwsF加密生成关键词密文集CkF,然后使用其对称密钥fkey将文件F加密生成数据密文CfF和相应数据密文的哈希值HCfF;数据拥用者向雾节点FP发送计算访问策略密文的请求;雾节点FP收到计算请求后,为数据拥有者生成访问策略密文Cp;数据拥有者接收到访问策略密文Cp后,对对称密钥fkey进行加密生成文件密钥密文Cfkfkey;具体方法为:S3.1、数据拥有者使用搜索密钥QK对关键词集kwsF加密生成关键词密文集其中kw表示关键词集中的一关键词,Kkw表示关键词

密文, 表示关键词密文分量1: 表示关键词密文分量2:

S3.2、数据拥有者基于AES算法使用对称密钥fkey来加密数据F得到密文CfF=EncAES(fkey,F),并根据单向抗碰撞哈希函数计算密文哈希值为HCfF=H(CfF);

S3.3、雾节点计算访问策略密文

雾节点首先为访问策略树T中的每个节点x选择一个阶数为dx的多项式qx,其中阶数dx=kx‑1,1≤kx≤numx是节点x的门限值,numx表示节点x的子节点数量;多项式qx的生成方式自上而下:从根节点R出发,选择一个随机数s∈Zp并设置qR(0)=s,随机选择另外dR个点以完整定义多项式qR;对于其他节点x,设置qx(0)=qparent(x)(index(x))并同样随机选择另外dx个点来确定多项式qx,其中parent(x)表示节点x的父节点,index(x)表示节点x的索引值;

最后,生成的访问策略密文为 T表示

访问策略树,X表示访问策略树的叶节点集合,C′3表示访问策略密文第一分量,C′4表示访问策略密文第二分量,Ci表示访问策略密文第三分量;

S3.4、雾节点将生成的访问策略密文Cp发回给数据拥有者;

S3 .5、数据拥有者加密对称密钥fkey得到文件密钥密文

α β z

其中C1表示文件密钥密文第一分量:C1=fkey×e(g ,g) ,z β·z

C2表示文件密钥密文第二分量:C2=g ,C3表示文件密钥密文第三分量:C3=C′3×g ,C4β·z表示文件密钥密文第四分量:C4=C′4×h ,z表示随机数,z∈Zp;

S4、上传数据

数据拥有者构造上传数据请求发送给雾节点FP;雾节点FP将数据密文CfF上传至星际文件系统IPFS中并获得对应的文件存储地址FaddrF,接着将发送给数据链智能合约SCdc;SCdc构造交易写入区块链中并获得交易号TidF,然后将当前文件F的关键词密文集CkF和其在区块链上的交易号TidF加密存储在查询集CQM;

此处,FaddrF表示数据密文CfF在IPFS中的存储地址,HCfF表示数据密文CfF的哈希值;

S5、查询密文

当数据使用者要查询关键词集为kws′的文件时,数据使用者使用搜索密钥QK加密查询关键词集kws′获得查询关键词密文集Ckkws′,然后将搜索请求发送给雾节点;雾节点一旦收到用户的搜索请求,首先向授权中心TA查询获取pku对应的属性副私钥ska,然后把关键词密文集Ckkws′发送给数据链智能合约SCdc;SCdc在查询集CQM中查找以关键词密文为键的集合TidSetkw;若未找到,则说明不存在以kw′为关键词的数据文件;若找到,返回交易号TidF,并获取交易信息;数据链智能合约检索完成后,将搜索结果CResultkws′按照文件出现频率的高低排序并发送给雾节点;

CResultkws′={,,…,};其中FaddrFn表示数据密文CfFn在IPFS中的存储地址,HCfFn表示数据密文CfFn的哈希值,Cfkfkeyn表示与数据密文CfFn相对应的文件密钥密文,CfFn表示与搜索关键词相匹配的第n个数据密文;

S6、下载数据,即雾节点FP依次遍历搜索结果CResultkws′;并构造下载密文信息MCResultkws′′发送给数据使用者;

MCResultkws′={,,…,};其中CpTn表示数据密文CfFn所对应的中间密钥密文,C1n表示与数据密文CfFn所对应的文件密钥密文Cfkfkeyn的第一分量,C2n表示与数据密文CfFn所对应的文件密钥密文Cfkfkeyn的第二分量,CfFn表示返回的第n个数据密文;

S6.1、针对 雾节点根据 从IPFS下

载对应的数据密文 使用对应的密文HCfFi对其进行校验,检查密文完整性;

S6.2、雾节点根据递归算法DecryptNode(Cfkfkeyi,ska,x)从文件密钥密文Cfkfkeyi解得中间密文CpTi;如果x是访问结构树T的叶子节点,假设ai=att(x),att(x)是节点x所关联的γqx(0)β属性值,若ai∈S,那么就可以得到DecryptNode(Cfkfkeyi,ska,x)=e(g,g) ;如果x是非叶子节点,对于节点x的所有孩子节点z,递推执行DecryptNode(Cfkfkeyi,ska,z);

设Sx是一个随机的大小为kx节点集合,且Sx中的节点都是x的孩子节点,Fz≠null;若存在这样集合,计算 其中i=index(z),S′x={index(z)|z∈Sx};

若满足访问策略,雾节点则调用递归函数计算出在根节点R的值

进而解出中间密文值

其中

最后由雾节点FP构造下载的密文信息MCResultkws′并发送给数据使用者;

MCResultkws′={,,…,};

S7、解密数据

数据使用者使用属性主私钥skm解密密文密钥集{CpTi,C1i,C2i}得到明文的对称密钥集{fkeyi},根据对称密钥集{fkeyi}解密返回的数据密文集{CfFi}得到明文集{Fi};

α,β,γ为随机数且都∈Zp,e是双线性映射,g是p阶乘法循环群G0的生成元。

2.根据权利要求1所述的基于区块链的数据搜索细粒度访问控制方法,其特征在于:所述授权中心TA中相关参数结构如下:λ

主密钥MSK={α,β,{ri|li∈L}};搜索密钥QK=F1({0,1} ,l1||l2||…||ln);系统公钥其中G0和GT是p阶乘法循环群,g是群G0的生成元,e是双线性映射:G0*G0→GT,h是G0的元素;α,β,ri为随机数且都∈Zp;

L={l1,l2,l3,…ln}是系统属性集;

λ λ λ λ

F1表示伪随机化算法1:F1:{0,1}×{0,1} →{0,1} ,F2表示伪随机算法2:F2:{0,1} ×λ * λ{0,1}→{0,1},其中{0,1}是随机生成的字符串;

(α+γ)β

所述用户生成属性私钥中,skm表示属性主私钥:skm=g ,ska表示属性副私钥: γ ,ε∈ZP为随机数,Sj为S中的一个属性,D1表示属性副私钥第一分量,D2表示属性副私钥第二分量,Dj表示属性副私钥第三分量。

3.根据权利要求1所述的基于区块链的数据搜索细粒度访问控制方法,其特征在于:所述步骤S4中数据链智能合约SCdc构造交易后,将其写入区块链DC中并获得交易号TidF;

对于 数据链智能合约SCdc在查询集CQM中查找是否有以 为键的值λ

TidSetkw;如果没有,则创建一个新的空集合TidSetkw,若有,随机生成字符串rkw={0,1} ,计算 添加rkw||dkw到TidSetkw中;

然后,数据链智能合约SCdc将 更新存放到CQM中;

其中CQM存储的是 和TidSetkw的映射, 来自关键词密文Kkw∈CkF,TidSetkw是一个集合,其元素是具有关键词kw数据文件的相关交易号信息。

4.根据权利要求1所述的基于区块链的数据搜索细粒度访问控制方法,其特征在于:所述步骤S5查询密文过程SCdc收到关键词密文集Ckkws′后,针对 SCdc在查询集CQM中查找以 为键的集合TidSetkw,若未找到,则说明不存在以kw′为关键词的数据文件,若找到,根据TidSetkw中的每一个rkw||dkw,计算从而获得交易号Tidkw;SCdc从交易号Tidkw获

取交易信息

5.一种用于实现权利要求1至4任意一项所述基于区块链的数据搜索细粒度访问控制方法的系统,其特征在于:包括云层、雾层和用户层;用户层的授权中心TA根据用户属性为用户颁发属性私钥;雾层的雾节点为数据拥有者计算访问策略密文;数据拥有者使用对称密钥加密文件得到数据密文,接着使用访问策略密文加密对称密钥得到文件密钥密文,然后把数据密文和文件密钥密文和关键词密文集发送给雾节点;雾节点先将数据密文上传至星际文件系统中返回得到存储地址,随后把数据密文存储地址、文件密钥密文、关键词密文集发送给数据链智能合约;数据链智能合约把数据密文存储地址和文件密钥密文以交易的形式发布在区块链中,然后调用索引算法,建立索引关系;数据使用者将关键字陷门信息发送给雾节点,雾节点调用搜索合约找到数据密文存储地址和文件密钥密文;若用户的属性符合访问策略树,雾节点将从文件密钥密文解的中间密钥密文,并将中间密钥密文和数据密文一同发送给数据使用者;数据使用者从中间密钥密文信息解得对称密钥,进而从数据密文中解密获得文件的明文信息。