1.一种多授权属性加解密方法,其特征在于:包括以下步骤:
步骤一、系统初始化:包括系统参数生成、层级属性机构属性访问树Γ的构建、中央授权机构初始化和属性授权机构初始化四个方面;
(1)系统参数生成:在系统内输入一个安全参数1λ,系统调用群生成算法生成两个阶为素数p的乘法循环群G和GT,群G的生成元为g,存在双线性映射e:G×G→GT,同时,选取一个存在性不可伪造的签名算法Σsign=(KenGen,Sign,Verify),输出全局公开参数δ=(e,g,G,GT,p,Σsign);
(2)层级属性访问树Γ的构建:每一个属性授权机构将域内属性进行编码,使每一个属性都有自己的索引indexi,然后建立一个平衡二叉树,该平衡二叉树的非叶结点T[i...j]中,开始的序号i为该非叶结点下对应的最左端叶节点的索引值,结束的序号j为该非叶结点最右端叶节点所对应的属性值,在非偶数个属性出现时,二叉树的最右端将补充一个表达值恒为 的空属性,保持属性树中所有非叶子结点的平衡;对于特定属性授权机构AAk所建立的属性访问树定义为Γk,k表示特定属性授权机构AAk的索引;
(3)中央授权机构初始化:存在若干个中央授权机构CA,CA={CA1,CA2,...,CAl},l表示CA的个数,每个中央授权机构独立运行初始化算法,随机选择yd, yd为CAd的主密钥,其中d表示中央授权机构的索引编号,存在 令Y=e(g,g)y,其中Y为公开加密参数,调用签名算法得到验证签名密钥VerifyKeyd,CAd的签名算法公私钥对CAPVd,VerifyKeyd=μd,CAPVd=(SignKeyd,μd);
(4)属性授权机构初始化:存在若干个属性授权机构AA,AA={AA1,AA2,...,AAt},t表示AA的个数,AA负责向用户提供用户的属性相关密钥,每一个AAj都负责管理一个属性域Uj,与任意的AAi都有 这使得每个属性仅属于一个AA管理,每个AA所管理的属性是互不冲突的;对于全局属性集 全局属性授权机构随机选取r,z1,z2,..., 其中m为全局属性域所包含的属性个数;同时,对于某个特定的属性授权机构AAk当中的非叶结点x=[i...j]将随机选取 并存在 得出属性公开参数UZk,i、属性隐含参数Uzk,i以及AAk所对应的公开随机参数rk,其中∪Zk,i=Zk,1,...,Zk,3m,∪zk,i=zk,1,...,zk,3m,存在 其中k=(1,2,...,t)为属性授权机构索引;
步骤二、数据加密:将欲加密的明文数据M、全局公开参数δ和用户指定的访问策略W作为输入,遍历属性授权机构建立的属性访问树Γ进行加密算法,得到加密数据CT;
步骤三、密钥分发,包括用户身份密钥分发和用户属性密钥分发:
用户身份密钥分发:用户向中央授权机构CAd提供一个唯一身份标识GID,CAd将属性授权机构AA生成的参数r和用户的唯一身份标识信息GID作为输入,输出身份密钥SKCA和属性密钥生成参数Ξ;
用户属性密钥分发:用户向属性授权机构AAk申请属性密钥,属性授权机构AAk验证用户提供的身份信息是否正确,如果正确,属性授权机构AAk将rk和Uzk,i作为输入,为用户输出一组属性密钥SKAA,如果不正确将终止属性密钥的分发;
步骤四、解密密文:授权用户将系统提供的用户属性密钥SKAA、用户身份密钥SKCA和加密密文CT作为输入,系统根据用户所提供的信息运行解密算法;如果用户符合访问策略输出数据M,否则解密失败终止系统。
2.根据权利要求1所述的一种多授权属性加解密方法,其特征在于:所述步骤二中对明文数据M加密的具体方法为:给定明文数据M,为其选定一个首次加密随机参数 得到加密的明文C=MgYs和C′=gs,用户设置一个访问控制策略 其中 为全局属性集合,给定一个访问控制结构 遍历平衡二叉树Γ进行加密:(1)若attk,i和attk,i+1为两个叶子节点,对应的属性值为i和i+1,对于每个 或都存在如下关系:如果 则有属性加密密文 如果 则有如果 则有 并将以上结果包含于密文当中;如果
则返回0;
(2)attk,i和attk,i+1为两个非叶子节点,规则如下:如果两个非叶结点attk,i和attk,i+1都返回1,则返回1;
如果两个非叶结点attk,i和attk,i+1都返回0,则返回0;
如果两个非叶结点attk,i和attk,i+1中,attk,i返回0而另attk,i+1返回1,则定义属性节点加密密文 并将 与所对应的节点信息写入密文当中,返回1;
最后得出加密密文CT,
3.根据权利要求2所述的一种多授权属性加解密方法,其特征在于:所述步骤三中用户身份密钥分发的方法为:系统为用户随机选取 使其与用户一一对应,可得D*=gy-r,Θ=1/oGID,最后得到CA的身份密钥SKCA,SKCA=(D,D*,Θ),运行签名算法,对(Signkey,GID)进行签名得到用户的签名验证参数θGID,从而得到用户属性密钥生成参数Ξ,Ξ=(θGID,GID),Ξ只能用于AA生成属性密钥。
4.根据权利要求3所述的一种多授权属性加解密方法,其特征在于:所述步骤三中用户属性密钥分发的方法为:当接收到属性授权请求时,AAk利用ud对Ξ中的签名验证信息进行验证,如果验证失败则授权终止;
令 为随机参数且 rGID,k,x=ΣrGID,k,i,其中i为x的子节点,令用户的属性集合为 存在属性 当且仅当 可得 当 可得 当
属性 且 令该属性密钥为 当属性 时,令该属性密钥
为 当 时,令该属性密钥为 对于非叶子节点x存
在 最后可得到属性私钥SKAA,
5.根据权利要求4所述的一种多授权属性加解密方法,其特征在于:所述步骤四中解密密文的方法为:将加密密文 用户属性密钥和用户身份密钥SKCA=(D,D*)作为输入,从加密密文
CT中提取访问控制结构 将用户属性集合 与访问控制结构W做判断,如果 不满足W则终止解密过程,否则对所有属性 进行如下解密过程:如果节点x为叶子节点:
(1)如果属性 且属性设置为 则
(2)如果属性 且属性设置为 则
(3)如果属性 设置为Don'tCare,则
如果节点x为非叶子节点,则
将上述结果带入下式进行计算:
由此得到:明文M为