利索能及
我要发布
收藏
专利号: 201710241151X
申请人: 桂林电子科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种私钥定长的密文策略属性基加密方法,其特征在于,具体实现过程中,共包含4个实体:数据加密方,即数据拥有者;数据解密方,即数据使用者;授权中心;云端存储服务器;具体实现步骤如下:

1)系统建立:由授权中心执行Setup算法,选择双线性群G0、G1,定义双线性映射e:G0×G0→G1,通过运算生成系统公钥PK和主密钥MK;

2)明文加密:由数据加密方执行Encrypt算法,根据预先定义的访问策略生成相应的ROBDD访问结构,并基于该ROBDD访问结构进一步完成对明文数据M的加密操作,最终生成密文数据CT;

3)私钥生成:由授权中心执行Keygen算法,根据用户提供的属性集合S,通过与步骤2)中的ROBDD访问结构间的路径匹配生成用户私钥SK;

4)密文解密:由数据解密方执行Decrypt算法,主要操作是借助于递归算法实现自身所拥有私钥SK与ROBDD访问结构间的匹配,最终结果有两种:如果私钥SK合法则解密成功并输出明文数据M,否则解密失败;

经过上述步骤,数据加密方借助于ROBDD实现了访问策略的高效表达及实现,并进一步完成了数据的高效加密工作;数据解密方能够获得授权中心为其生成的定长私钥,并在私钥合法的情况下完成对密文的快速解密。

2.根据权利要求1所述的方法,其特征在于,所述步骤1)中,授权中心选择双线性群G0、G1,定义双线行映射e:G0×G0→G1;随机选择素数p阶循环群Zp中的元素y,t0,t1,…,tn-1,t0',t1',…,tn-1';令Y:=e(g,g)y, 最终生成系统公钥PK:=和主密钥MK:=

3.根据权利要求1所述的方法,其特征在于,所述步骤2)中,数据加密方首先需要根据具体的访问策略生成相应的布尔函数,并进一步构造与该布尔函数相应的ROBDD结构;在该ROBDD结构的基础之上,按照由上而下、从左至右的顺序对所有节点进行重新编号,将最终得到的ROBDD访问结构表述为:上述(1)式中ID、I分别为ROBDD结构中所含全部非终节点的编号、全部变量所组成的集合, 本质上可使用四元组表示,id为节点编号、i为节点上的属性编号、high为本节点1-分支节点编号、low为本节点0-分支节点编号,high域及low域的作用是维护节点间的连接关系;其中编号为0和1的节点具有固定的表示意义,即终节点

4.根据权利要求3所述的方法,其特征在于,在ROBDD结构中,根节点root与终节点 间的任意路径均称为有效路径;若属性集S中的属性能与ROBDD结构中的任意一条有效路径相匹配,则称属性集S满足访问结构ROBDD,记为

5.根据权利要求3所述的方法,其特征在于,进一步的,数据加密方,借助于访问结构完成对数据为M∈G1的加密操作;其中ROBDD访问结构所含有效路径的总数为T,并将其表示为R={R0,R1,…,RT-1}。加密操作具体执行如下:随机选择s∈Zp并计算 定义CRt(Rt∈R)为与路径直接相关的密文组件,其数学表述为:

上述(2)式中,Rt为路径编号,It为路径Rt上所包含的全部属性之集合,最终生成的密文表示为

6.根据权利要求5所述的方法,其特征在于,主要的计算量为群G0中的|T|+1次指数运算和∑|It-1|次乘法运算、群G1中的1次指数运算和1次乘法运算;密文的主要存储量包括访问结构ROBDD、群G0中的|T|+1个元素及群G1中的1个元素。

7.根据权利要求1所述的方法,其特征在于,

所述步骤3)中,授权中心根据用户提供的属性集S生成用户私钥SK,对于 默认私钥生成操作具体包含如下步骤:①查询ROBDD结构中编号为2的节点(即root),将其定义为当前节点,设置tSK=0;

②读取当前节点中保存的信息 对于其中所含的属性i:如果i∈S∧i=i,执行tSK+=ti,转到③;如果 执行tSK+=ti',转到④;

③根据当前节点的high域信息查找其1-边子节点,如果到达终节点( 或 ),转到⑤;

否则将该子节点定义为当前节点并转到②;

④根据当前节点的low域信息查找其0-边子节点,如果到达终节点( 或 ),转到⑤;否则将该子节点定义为当前节点并转到②;

⑤随机选择r∈Zp,计算 D:=g(r/tSK);

经过上述步骤,最终生成的用户私钥为

该步骤中主要的计算量为群G0中的2次指数运算,用户私钥占用的存储空间为群G0中的

2个元素,即私钥定长。

8.根据权利要求1所述的方法,其特征在于,

所述步骤4)中,解密用户借助于自身拥有的私钥SK完成对密文CT的解密工作,假设待解密的密文为 解密用户拥有的私钥为 解密过程可通过以下递归算法实现:

A解密用户首先查询ROBDD结构中编号为2的节点(即root),将其定义为当前节点;

B读取当前节点中保存的信息 对于当前节点中所含的属性i,如果i∈S∧i=i,转到C;如果 转到D;

C根据当前节点的high域信息查找其1-边子节点:

a)若1-边子节点为终节点 终止递归算法,返回解密失败;

b)若1-边子节点为终节点 转到E;

c)若1-边子节点为非终节点,将其定义为当前节点并转入B继续执行;

D根据当前节点的low域信息查找其0-边子节点:

a)若0-边子节点为终节点 终止递归算法,返回解密失败;

b)若0-边子节点为终节点 转到E;

c)若0-边子节点为非终节点,将其定义为当前节点并转入B继续执行;

E若当前已成功匹配的有效路径为Rt,依次计算:

提示解密成

功并返回密文M;

该步骤中,Decrypt算法的最大计算量为2次线性对计算、G1中的2次乘法运算,此时解密算法的计算量与属性数量、密文长度等均无关,为常量,则用户能够成功高效的完成密文的解密工作并得到明文数据。