1.一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,包括以下步骤:
步骤A、设定系统公开参数params和主私钥msk;
步骤B、根据主公钥mpk、主私钥msk和关于属性向量集合S′,生成一个私钥skS′;
步骤C、根据mpk,关于S′的私钥skS′,当且仅当时生成关于S的私钥skS,其中,S′是一个深度为k的属性向量集合,S是一个深度为k+1的属性向量集合,
表示S是由S′派生的;
步骤D、根据mpk和msk,生成新的主私钥msk′,其中,|msk′|=|msk|,|*|表示尺寸;
步骤E、根据mpk和skS,生成新的私钥skS′,其中,|skS′|=|skS|;新的主私钥msk′和新的私钥skS′用于下一轮解密;
步骤F、根据mpk,一个访问结构A,对消息M进行加密得到对应的密文C;
步骤G、根据mpk,skS和C,解密出M。
2.根据权利要求1所述的一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,所述步骤A具体包括:
步骤A1、选取两个阶为N=p1p2p3的循环群和
其中,p1,p2,p3是三个不同的素数;
步骤A2、选取长度为λ的安全参数1λ,1λ是长度为λ的0,1比特串,令m,其中,
是整数集合,m,n是整数;选取一个双线性映射
其中,
αγ,a是整数,u1,u2,…,uL,h1,h2,…,
u1,u2,…,uL,h1,h2,…,hD是模p1群
中的元素,
为
中阶为p1的子群,
L,D是整数,一个随机的矩阵
ai,γ是模p1群
中的元素,i∈[1,m]且i为整数,γ∈[1,n]且γ为整数,
表示m×n个
的笛卡尔积,以及一个随机的列向量
gi是模p1群
确认中的元素,
表示m个
确认的笛卡尔积,设置
以及
其中,Pi是ai,γ取幂次再求和的值且是群
中的元素,
是一个列向量,αγ是
中的元素,αγ是
中的元素,Q是一个列向量,e(gi,Pi)表示gi和Pi求对应的双线性映射的值;
步骤A3、主公钥为其中,e表示双线性映射,
表示gi的a次幂,gi是模pi群
中的元素,
是模p3群
中的元素,选取
然后计算msk={mski}i∈[1,m];其中,Ti是群
中的元素,矩阵V是属性域,
为
中阶为p3的子群,mski=Pi·Ti。
3.根据权利要求2所述的一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,所述步骤B具体包括:
步骤B1、私钥生成中心随机选取以及
来产生S的私钥,其中,R1,i,R2,i是群
中的元素S是一个深度为k的属性向量集合,k≤L,L是最大深度,wi是整数,计算
其中,
是模p1p3群
中的元素,
是gi的awi次幂且是模p1群
中的元素,
是gi的wi次幂且是模p1群
中的元素;
步骤B2、选取其中,τj是整数,Ri,j,0,Ri,j,1,Ri,j,k+1,Ri,j,k+2,…,Ri,j,L是模p3群
中的元素,对于集合S中的任一属性向量
是属性域V中深度是k的属性向量,vk表示属性域V中某属性向量的分量,v1与下标(1,x)相关,v1是属性矩阵V的第一行第x个条目,选择hx,选定x后,hx表示从主公钥
的h1,h2,…,hD中,选定一个下标为x的群元素
并计算
最终生成私钥
其中,j∈[1,|S'|]以及|S'|是S'的基数,x∈[1,D],
D是一个整数,
是模p1群
中的元素,
是模p1群
中的元素。
4.根据权利要求3所述的一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,所述步骤C具体包括:
步骤C1、根据集合S'的私钥选取
和
其中,
是整数,
是模p3群
中的元素,计算
其中,
是gi的
次幂,
是gi的
次幂,
和
是模p1群
中的元素,
是模p3群
中的元素;
步骤C2、选取其中,
是整数,
都是模p3群
中的元素,对于任一属性向量
存在一个前缀
是属性集合
的元素且表示
的前缀,计算
最后,输出私钥
其中
vk+1表示属性域V中某属性向量的分量。
5.根据权利要求4所述的一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,所述步骤D具体包括:
根据msk={mski}i∈[1,m],选取计算新的主私钥msk′={mski′}i∈[1,m],其中mski′=mski·Ti′,Ti′是模p3群
中的元素。
6.根据权利要求5所述的一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,所述步骤E具体包括:
根据skS={sk1,i,sk2,i,{ski,j,0,ski,j,1,ski,j,k+1,…,ski,j,L}j∈[1,|S|]}i∈[1,m],选取和
其中,wi′是整数,R′1,i,R′2,i是模p3群
中的元素,计算
sk′1,i是模p1p3群
中的元素,sk1,i是更新前的私钥,是模p1p3群
中的元素,
是gi的aw′次幂,是模p1群
中的元素,R′1,i是模p3群
中的元素;选取
其中,τj′是整数,R′i,j,0,R′i,j,1,R′i,j,k+1,R′i,j,k+2,R′i,j,L均是模p3群
中的元素,对集合S中的任意属性向量计算
计算新的私钥skS′={sk′1,i,sk′2,i,{sk′i,j,0,sk′i,j,1,sk′i,j,k+1,…,sk′i,j,L}j∈[1,S|]}i∈[1,m]。
7.根据权利要求6所述的一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,所述步骤F具体包括:
F1:选取一个访问结构选取一个向量
其中
δγ是整数,并计算份额
其中,
是m行n列的共享生成矩阵,ρ是一个将
的某行映射到某个属性向量上的函数,
是
的第
行并且被ρ映射到一个属性向量
上,其中,vk表示属性域V中某属性向量的分量;
F2:如果v1是矩阵V的第一行第x个条目,从mpk中选取hx,随机选择是整数,并计算
其中,qi=e(gi,Pi)是双线性映射的值,gi,Pi是模p1群
中的元素,
是gi的δ次幂,
是gi的
次幂,
是hx的
次幂,
是gi的
次幂,
和
均是模p1群
中的元素,以及
其中,
是主公钥
中的u1,u2,…,uL;
表示幂次相乘再求幂次,是模p1群
中的元素,密文为
8.根据权利要求7所述的一种分层的基于属性的抗持续辅助输入泄漏加密方法,其特征在于,所述步骤G具体包括:
G1:根据关于的密文
和关于S的私钥
如果S∈A,计算常量
使得
其中,
是一个满足
的整数常量,
是属性集合中的一个元素,就是在属性集合S中对应的
为下标的值才能参与求和运算;
G2:计算M=C1,i/M′,
其中,e(,)是双线性映射,e(C2,i,sk1,i)表示对C2,i和sk1,i求对应的双线性映射值。
9.一种分层的基于属性的抗持续辅助输入泄漏加密系统,其特征在于,包括系统参数设置模块、私钥生成模块、授权模块、主私钥更新模块、私钥更新模块、加密模块和解密模块;其中,
系统参数设置模块,用于生成一个主公钥和一个主私钥,主公钥发送给私钥生成模块、授权模块、主私钥更新模块、私钥更新模块、加密模块和解密模块;主私钥发送给私钥生成模块以及主私钥更新模块;
私钥生成模块,使用主公钥、主私钥生成该用户的私钥,并将私钥发送给解密模块以及私钥更新模块;
授权模块,使用主公钥产生下级属性用户的私钥,用于解密;
主私钥更新模块,使用主公钥、主私钥更新主私钥,用于下一次生成私钥;
私钥更新模块,使用主公钥更新用户的私钥,用于下一次的解密;
加密模块,使用主公钥对消息进行加密,并将产生的密文发送给解密模块;
解密模块,使用主公钥根据私钥和密文解密出消息。