1.一种基于外包密文属性加密的数据访问控制系统,其特征在于:包括:数据拥有者、用户、密钥权限、边缘节点和云服务提供商;
所述数据拥有者,在将数据存储到云服务提供商或边缘节点之前,可根据访问策略对数据进行加密,可要求云服务提供商更新加密数据的访问策略,并检查云服务提供商是否正确的更新了访问策略;
所述用户可以自由的从云服务提供商或者边缘节点检索密文;
所述密钥权限用于设置实现数据访问控制方案的系统参数,生成转换密钥给用户,生成用于加密解密的密钥对,所述密钥对包括公钥和私钥,并将所述公钥发送给数据拥有者,将私钥发送给用户;
所述边缘节点用于存储数据拥有者的加密的明文消息;所述边缘节点还用于在解密阶段,运行密钥转换算法,将满足用户属性的密文转换为部分解密的密文;
所述云服务提供商用于为数据拥有者提供存储数据的平台;所述云服务提供商还包括根据数据拥有者的要求运行更新算法来更新加密数据的访问策略;
利用所述的数据访问控制系统进行数据访问控制的数据访问控制方法,包括系统初始化、密钥生成、数据加密、数据解密和动态策略更新;
所述系统初始化包括全局设置和权限设置,所述全局设置接受全局描述U和隐式安全参数作为输入,输出全局参数GP;所述权限设置以全局参数GP为输入,由密钥权限运行,用于生成密钥的主密钥MSK;
所述密钥生成用于生成代理解密的转换密钥TK和用于用户解密的密钥SK;
所述数据加密包括加密算法和转换算法,所述加密算法以全局参数GP、公钥PK、明文消′
息E和访问策略(M′,ρ)为输入,输出一个密文CT,所述转换算法用于接收密文CT和用户属性集S的转换密钥TK,判断用户属性集S是否满足密文CT中的访问策略,若是,则输出代理解′
密的密文CT,若否,不输出代理解密的密文CT′;
所述数据解密以密钥SK和代理解密的密文CT′作为输入,判断用户属性集S是否属于明文消息E,若是,则输出明文消息E,若否,则输出错误符号⊥;
所述动态策略更新包括新密钥生成算法和密文更新算法,所述新密钥生成算法以旧的访问策略(M,ρ)和新的访问策略(M′,ρ′)作为输入,输出策略更新密钥PUK,用于将密文CT的访问策略从旧的访问策略(M,ρ)更新为新的访问策略(M′,ρ′),所述密文更新算法以密文CTN
和策略更新密钥PUK为输入,最后输出与新访问策略相对应的新密文CT ;其中,M以及M′均为访问矩阵;ρ为访问矩阵M中的属性函数,所述ρ用于映射访问矩阵M的行到属性;ρ′为访问矩阵M′中的属性函数,所述ρ′用于映射访问矩阵M′的行到属性;
所述动态策略更新具体包括如下步骤:初始化旧的访问策略(M,ρ)和新的访问策略(M′,ρ′),令nρ(i),M为访问矩阵M中属性ρ(i)的数量、nρ(i),M′为访问矩阵M′中属性ρ(i)的数量、I1,M′为ρ(i)存在于M中j的指标集合、I2,M′为ρ(i)存在于M′中j的指标集合、且ρ(i)=ρ′(j),若nρ′(j),M′≤nρ′(j),M将索引j放入I1,M′中,若nρ′(j),M′>nρ′(j),M将索引j放入I2,M′,I3,M′表示I3,M′在M中从未出现过;
构造一个新的随机变量 其中, 表示随机向量, 表示一个有限域,其中n′
有限域的阶必须是一个素数的幂p ,加密指数s是向量 的第一个元素;
计算 其中,λj表示新策略参数,M′j表示M′的第j行对应的向量, 表示随机向量,j∈[1,l′],l′表示访问矩阵M′的行数;
若(j,i)∈I1,M′则策略更新密钥PUK如下:(1) (2)
PUK=(PUK =λ′j‑λi,PUK =ω′j‑ωi)其中,λj表示新策略参数,λi表示旧策略参数,M′表示新访问矩阵,ω′j表示M′的第j行对应的向量乘以 听得的随机数,ωi表示M的第i行对应的向量乘以 听得的随机数;
若(j,i)∈I2,M′,选择属于集合 的随机数aj,即 表示模素数p1的有限域,生成策略更新密钥PUK如下:(1) (2)
PUK=(aj,PUK =λ′j‑ajλi,PUK =ω′j‑ajωi)其中,aj表示更新密钥随机数,λj表示新策略参数,λi表示旧策略参数,ω′j表示M′的第j行对应的向量乘以 所得的随机数,ωi表示M的第i行对应的向量乘以 听得的随机数;
若(j,i)∈I3,M′,选择一个属于集合(j,i)∈I3,M′的随机数dj, 表示模素数为p1的有限域,生成策略更新密钥PUK如下:(1) (2) (3)
PUK=(PUK =λ′j+αρ′(j)dj,PUK =βρ′(j)dj+ω′j,PUK =dj)其中,λj表示新策略参数,ω′j表示M′的第j行对应的向量乘以 听得的随机数,αρ′(j)表示新访问策略的第一个随机数,βρ′(j)表示新访问策略的第二个随机数,且更新密文包括以下步骤:
数据拥有者将PUK发送给云服务提供商,云服务商根据收到的PUK更新访问策略:若(j,i)∈I1,M′,则更新密文成分如下:其中,dj=di,C′j表示更新的密文成分,C′1,j表示更新密文的第一部分组成成分,C′2,j表示更新密文的第二部分组成成分,C′3,j表示更新密文的第三部分组成成分,C1,i表示原密文的第一部分组成成分,C2,i表示原密文的第二部分组成成分,C3,i表示原密文的第三部分组成成分,e表示双线性映射,g表示生成元,λj表示新策略参数,αρ′(j)表示新访问策略的第一个随机数,βρ′(j)表示新访问策略的第二个随机数,且 ω′j表示M′(1)
的第j行对应的向量乘以 所得的随机数,dj表示新访问策略的随机数,PUK 表示更新密(2)
钥的第一部分组成成分,PUK 表示更新密钥的第二部分组成成分,若(j,i)∈I2,M′,则更新密文成分如下:其中,dj=ajdi,C′j表示更新的密文成分,C′1,j表示更新密文的第一部分组成成分,C′2,j表示更新密文的第二部分组成成分,C′3,j表示更新密文的第三部分组成成分,C1,i表示原密文的第一部分组成成分,C2,i表示原密文的第二部分组成成分,C3,i表示原密文的第三部分组成成分,e表示双线性映射,g表示生成元,λj表示新策略参数,αρ′(j)表示新访问策略的第一个随机数,βρ′(j)表示新访问策略的第二个随机数,且 ω′j表示M′(1)
的第j行对应的向量乘以 所得的随机数,dj表示新策略的随机数,PUK 表示更新密钥的(2)
第一部分组成成分,PUK 表示更新密钥的第二部分组成成分,若(j,i)∈I3,M′,则更新密文成分如下:其中,C′j表示更新的密文成分,C′1,j表示更新密文的第一部分组成成分,C′2,j表示更新密文的第二部分组成成分,C′3,j表示更新密文的第三部分组成成分,C1,i表示原密文的第一部分组成成分,C2,i表示原密文的第二部分组成成分,C3,i表示原密文的第三部分组成成分,e表示双线性映射,g表示生成元,λj表示新策略参数,αρ′(j)表示新访问策略的第一个随机数,βρ′(j)表示新访问策略的第二个随机数,且 ω′j表示M′的第j行对(1)
应的向量乘以 听得的随机数,dj表示新策略的随机数,PUK 表示更新密钥的第一部分组(2)
成成分,PUK 表示更新密钥的第二部分组成成分,得到了新的密文如下:N
其中,CT表示更新后的新密文,C表示明文用双线性映射掩盖,e表示双线性映射,g表示生成元,αρ′(j)表示新访问策略的第一个随机数, 表示明文,s表示加密指数,C′表示由生成元s次幂构成的掩码,l′表示访问矩阵M′的行数,C′j表示更新的密文成分。
2.一种利用权利要求1所述的数据访问控制系统进行数据访问控制的基于外包密文属性加密的数据访问控制方法,其特征在于:所述系统初始化的全局设置包括全局设置算法*
GlobalSetup以全局描述U作为输入,一般设全局描述U={0,1} ,然后选择两个具有相同素数阶P的乘法循环群 和双线性映射e: 令g为 的生成元,哈希函数H映射,输出全局参数为GP=(g,p1,H),其中,g表示 的生成元,p1表示素数阶,H表示哈希函数映射 其中, 表示具有相同素数阶p1的乘法循环群;
所述权限设置具体为密钥权限运行权限设置算法AuthoSetup,生成公钥PK和主密钥MSK,其中,令S为密钥权限管理的属性集,对于每个属性x∈S,密钥权限选择随机指数表示模素数为p1的有限域,然后生成公钥为并设置 为主密钥。
3.根据权利要求2所述基于外包密文属性加密的数据访问控制方法,其特征在于:所述密钥生成具体包括:密钥权限随机选择 t=t′/z,表示模素数为p1的有限域,行算法KeyGen(MSK,S),获取SK′,并将转换密钥设置为TK,然后将SK=(TK,z)发送给用户:所述SK′采用如下方法确定:
其中,SK′表示示构成私钥的中间密钥,PK表示公钥,Kx表示属性x∈S时的全局描述映t′
射,H(U) 表示将全局描述U映射为 上的元素取t′次幂的私钥组成成分, 表示生成元t′
取αx次幂, 表示生成元取βxt′次幂,L′表示由生成元t′次幂构成的掩码,g 表示示生成元取t次幂,
所述转换密钥通过如下方法确定:
其中,TK表示转换密钥,PK表示公钥,Kx表示Kx′取1/z次幂,S表示属性集, 表示生
1/z
成元取αx/z次幂, 表示生成元取βxt次幂,L表示由L′取1/z次幂构造的掩码,L′ 表示t
L′取1/z次幂,g表示生成元取t次幂。
4.根据权利要求2所述基于外包密文属性加密的数据访问控制方法,其特征在于:所述数据加密具体包括数据拥有者可以使用CP‑ABE加密算法对明文消息E进行加密,该算法以公钥PK、明文消息E、全局参数GP和访问策略(M,ρ)为输入,对其进行加密,其中,假设M是一个 矩阵,函数ρ映射它的行到属性,该算法随机选择加密指数 随机向量其中, 表示随机向量,s表示加密指数,y2表示随机数,n表示访n
问矩阵M的列数, 表示一个有限域,其中有限域的阶必须是一个素数的幂p ,和其中, 表示有限域 内的一个随机向量, 表示一个有限域,其中有限域的阶必须是一n
个素数的幂p,
计算λi和ωi,
其中, 表示访问矩阵M的行数,λi表示旧策略的参数,Mi表示访问矩阵M的第i行对应的向量,表示随机向量, 表示有限域 内的一个随机向量,ωi表示M的第i行对应的向量乘以 听得的随机数;
令I={i:ρ(i)∈S},其中 表示访问矩阵M的行数,ρ(i)表示函数ρ将矩阵M的第i行映射到属性,
算法随机选择
生成密文:
其中,CT表示密文,C表示密文的组成成分,E表示明文,e表示双线性映射,g表示生成元,αρ(i)表示访问策略的第一个随机数,s表示加密指数,C′表示密文的组成成分,λi表示旧策略参数,di表示旧策略的随机数,βρ(i)表示新访问策略的第二个随机数,ωi表示M的第i行对应的向量乘以 所得的随机数,C2,i表示密文组成成分,C3,i表示密文组成成分。
5.根据权利要求2所述基于外包密文属性加密的数据访问控制方法,其特征在于:所述数据解密具体步骤代理解密和用户解密:所述代理解密由边缘节点运行转换算法Trans,算法以密文CT,转换密钥TK为输入,判断用户属性集s是否属于明文消息E,若否,则输出错误符号⊥,若是,则边缘节点进行解密并确定代理解密的密文CT′:其中,CT′表示代理解密密文,C表示密文的组成成分,E表示明文,e表示双线性映射,g表示生成元,αρ(i)表示访问策略的第一个随机数,s表示加密指数,z表示随机数;
其中
其中,e表示双线性映射,C′表示由生成元s次幂构成的掩码,K表示由K′的1/z次幂构成的转换密钥组成成分,βρ(i)表示访问策略的第二个随机数,Kρ(i)表示属性ρ(i)∈S时的全局描述映射, 表示密文的第三部分组成成分的ωi次幂;
所述用户解密包括以下步骤:
判断密文是否执行代理解密,若否,在进入代理解密,若是,则以私钥SK=(TK,z)和代理解密的密文CT′作为输入,获得明文消息E, 其中T0=C, 其中,C表示明文用双线性映射掩盖,e表示双线性映射,g表示生成元,αρ(i)表示访问策略的第一个随机数,s表示加密指数,z表示转换密钥中的致盲因子。