一种格上支持属性撤销的密文策略属性加密方法与流程

文档序号:18702283发布日期:2019-09-17 23:05阅读:176来源:国知局
一种格上支持属性撤销的密文策略属性加密方法与流程

本发明属于通信技术领域,涉及一种密文策略属性加密方法,具体涉及信息安全技术领域的一种格上支持属性撤销的密文策略属性加密方法。



背景技术:

随着通信技术的快速发展,经济和信息全球化的水平日益提高,安全的传输信道和信息安全成为互联网和电子商务发展的重要基石,而信息安全中最基本、最核心的技术就是信息加密技术。现代密码学大多使用公钥加密体制对信息进行加密,但是在该体制中,公钥证书的分发和维护需要占用较多的资源,管理比较复杂,会导致认证服务器超负荷运行,于是基于属性的加密体制被提出,该体制中的被访问用户仅需根据成员属性加密消息,而无需关注群体中成员的数量和身份,降低了数据加密开销并保护了用户隐私。

属性加密分为基于密钥策略的属性加密方法和基于密文策略的属性加密方法,其中,基于密钥策略的属性加密方法的访问结构虽然比较丰富,但是缺乏灵活性,不能适应现实中多变的用户属性,而基于密文策略的属性加密方法则具有较高的灵活性,该方法中访问成员的私钥根据该成员的属性集合生成,访问结构被嵌入到密文中,当且仅当访问成员满足密文中的访问结构,访问成员才能解密密文,从而使得被访问用户在加密时就可以对访问成员的身份进行限定。

由于传统的密文策略属性加密方法无法抵挡量子攻击且运算量较大,而基于格上的加密方法在具有较高安全性的同时,也能降低原始加密过程的计算复杂度,因此构建格上的属性加密方法是非常有必要的。现有的基于格的属性加密方法虽然解决了上述的问题,但是在社交网络中,访问成员的属性会随着时间等多种因素发生改变,现有的加密方法只能通过密钥生成中心对全体访问成员的私钥信息进行实时的检查和更新,因此会使得加解密过程运算量很大,尤其当系统访问成员的数量很大时,这种方法的效率会很低,同时由于现有技术将访问结构嵌入成员密钥中,导致在加密过程中无法指定访问成员的属性信息,灵活性也很低。

例如,申请公布号为cn105162589a,名称为“一种基于格的可验证属性加密方法”的专利申请,公开了一种基于格的可验证属性加密方法,实现基于格的属性加密方案的可操作性,该方法利用格上最短向量困难问题,构造格上的基于密钥策略的属性加密方案,通过构造新的动态密钥生成算法,在生成密钥的同时也生成密钥的验证信息,用户可以对授权机构的可信度进行验证,解决现有的属性加密机制在量子计算下将不再安全的缺陷,同时可以对授权机构进行监督,增强系统的安全性,但是,该方法仍然存在的不足之处是:在实际情况下,用户的身份属性会随着时间及位置发生变化,从而会使得用户的访问权限发生相应的变化,该方法在成员属性发生变更时,需要进行相当复杂的运算,效率很低,同时由于该方法将属性与密文绑定,限制了该方法的灵活性。



技术实现要素:

本发明的目的在于针对上述现有技术的不足,提出一种格上支持属性撤销的密文策略属性加密方法,用于解决现有技术中存在的效率和灵活性低的技术问题。

本发明的技术思路是:在格理论的技术基础上,参数生成中心初始化系统参数并生成系统公钥及主密钥;密钥生成中心通过系统的主密钥及访问成员的属性为每个成员计算私钥;被访问用户通过系统公钥对明文加密生成密文消息对;密钥生成中心计算包含待撤销访问成员信息的委托密钥;代理服务器用于计算委托密钥中随机多项式及访问成员属性的拉格朗日系数;未撤销访问成员通过委托密钥恢复私钥并解密密文消息对。

为实现上述目的,本发明采取的技术方案通过属性加密系统实现,该系统包括参数生成中心、代理服务器、密钥生成中心、被访问用户和包括待撤销访问成员及未撤销访问成员的访问成员,具体实现步骤为:

(1)参数生成中心初始化系统参数:

(1a)参数生成中心设定包含l个属性元素wi的被访问用户属性集合

w'={w1,…,wi,…wl},包含t个属性元素wl的待撤销属性集合w={w1,…,wl,…wt},l-t个属性元素wk的未撤销属性集合w0={wt+1,…,wk,…wl},包含j个属性元素aj的访问成员属性集合a={a1,…,aj,…,aj},访问成员的标识信息i,待撤销访问成员的标识信息未撤销访问成员的标识信息包含q个元素的整数群zq,在zq上随机生成l个阶数为t的多项式其中,0<i≤l,0<l≤t,0<t<l,t<k≤l,w'=w∪w0,0<j≤j,q为素数,对应属性元素wi,y表示变量;

(1b)参数生成中心设定安全参数λ,并采用算法trapgen,通过λ生成大小为n×m的随机矩阵a0以及格的一组满秩短基作为系统的主密钥msk,其中,2<n<m;

(1c)参数生成中心生成大小为n×m的随机矩阵b,同时为w'中的每个wi生成大小为n×m的随机矩阵并将a0,b,l个随机矩阵作为系统的公钥其中,矩阵b和矩阵中的每个元素的值均为不超过q的正整数;

(2)密钥生成中心获取访问成员的属性私钥对(sk1,sk2):

(2a)密钥生成中心生成随机向量μ=(μ1,…,μz,…,μn),并为访问成员属性集a中的每个aj随机生成多项式组且pz'(aj)的常数项pz'(0)=μz,其中,μz表示向量μ的第z个分量,pz'(aj)表示多项式组的第z个多项式,1<z<n,()t表示转置操作;

(2b)密钥生成中心采用左抽样算法,并通过系统的主密钥msk、系统的公钥pk和j个多项式组计算未撤销访问成员的属性私钥es;

(2c)密钥生成中心通过es和任意一个wi对应多项式的常数项计算访问成员的属性私钥sk1,并通过访问成员的标识信息i和计算访问成员的属性私钥sk2,sk1和sk2组成访问成员的属性私钥对(sk1,sk2);

(3)被访问用户获取密文消息对(c0,(c1,c2)):

(3a)被访问用户生成n维随机向量f、格上服从离散高斯分布的n维随机向量x以及l个大小为m×m的随机矩阵其中,f的每一维分量值是小于q的正整数,矩阵每个元素的值是从-1或1中随机选取的;

(3b)被访问用户对明文m进行加密,得到密文消息c0,并获取密文消息c0的辅助消息对(c1,c2),c0和(c1,c2)组成被访问用户的密文消息对(c0,(c1,c2)):

c1=a0tf+x

其中,表示向下取整操作;

(4)密钥生成中心计算委托密钥pxk并发送:

密钥生成中心通过l个多项式和待撤销访问成员的标识信息计算委托密钥pxk,并将委托密钥pxk发送至代理服务器及未撤销访问成员,其中,

(5)代理服务器计算拉格朗日系数并发送:

代理服务器通过委托密钥pxk、访问成员的标识信息i和未撤销访问成员标识信息分别计算l个多项式对应的拉格朗日系数同时通过l个属性元素{w1,…,wi,…wl}的值分别计算这l个属性元素的拉格朗日系数{h1,…,hi,…,hl},并将及{h1,…,hi,…,hl}发送至未撤销访问成员;

(6)未撤销访问成员对密文消息对(c0,(c1,c2))进行解密:

(6a)未撤销访问成员通过pxk、和访问成员的属性私钥(sk1,sk2),计算未撤销访问成员的私钥es:

其中,表示中任意一个拉格朗日系数;

(6b)未撤销访问成员通过l个属性元素的拉格朗日系数{h1,…,hi,…,hl}和未撤销访问成员的私钥es对(c0,(c1,c2))进行解密,得到解密后的明文m':

其中,ω=w'∩a,(;)表示按行拼接操作;

(6c)未撤销访问成员计算m'的误差项r′,并判断是否成立,若是,则解密成功,即将m'作为明文m,否则解密失败。

本发明与现有技术相比,具有以下优点:

1.本发明采用委托密钥对在格理论的基础上生成的访问成员私钥进行变更,可以实时撤销访问成员的权限,避免了现有技术通过密钥生成中心对访问成员的私钥检查和更新导致的加解密运算量大的缺陷,有效提高了属性加密的效率。

2.本发明通过访问成员属性计算出访问成员的私钥,能够直接对访问成员的身份进行限定,避免了现有技术通过将访问结构与访问成员私钥绑定导致不能适应成员属性多变的缺陷,有效提高了属性加密的灵活性。

附图说明

图1为本发明采用的属性加密系统的结构示意图;

图2为本发明的实现流程图。

具体实施方式

下面结合附图和具体实施例,对本发明作进一步详细描述。

参照图1,本发明采用的属性加密系统,包括参数生成中心、代理服务器、密钥生成中心、被访问用户和包括待撤销访问成员及未撤销访问成员的访问成员:其中,参数生成中心用于初始化系统参数并生成系统公钥及主密钥,被访问用户通过系统公钥对明文进行加密;代理服务器用于计算委托密钥中随机多项式及访问成员属性的拉格朗日系数;密钥生成中心通过系统的主密钥及访问成员的属性为每个成员计算私钥的同时,计算包含待撤销访问成员信息的委托密钥;被访问用户通过系统公钥对明文加密生成密文消息对;待撤销访问成员是本方法中需要撤销的访问成员;未撤销访问成员通过委托密钥变更私钥并解密密文消息对。

参照图2,一种格上支持属性撤销的密文策略的属性加密方法,包括如下步骤:

步骤1)参数生成中心初始化系统参数:

步骤1a)参数生成中心设定包含l个属性元素wi的被访问用户属性集合w'={w1,…,wi,…wl},包含t个属性元素wl的待撤销属性集合w={w1,…,wl,…wt},包含l-t个属性元素wk的未撤销属性集合w0={wt+1,…,wk,…wl},被访问用户属性集合w'是待撤销属性集合w和未撤销属性集合w0的并集,包含j个属性元素aj的访问成员属性集合a={a1,…,aj,…,aj},其中,设定l=10,t=3,j=5,0<i≤10,0<l≤3,3<k≤10,0<j≤5;

参数生成中心设定访问成员的标识信息i,待撤销访问成员的标识信息未撤销访问成员的标识信息其中,i表示全体访问成员的标识信息,表示与待撤销属性wl相关的待撤销访问成员的标识,表示与待撤销属性wk相关的待撤销访问成员的标识;

参数生成中心设定包含q个元素的整数群zq,设定zq={1,2,...q},其中,q是一个大素数;

参数生成中心在zq上随机生成10个阶数为3的多项式其中,多项式对应被访问用户属性集合中的属性元素wi,y表示变量,生成多项式应用了shamir多项式秘密共享机制,该机制将一个秘密分成d份由d个访问成员共享,每个成员获得d份中的一份,分享之后任何d-1个成员不能推断出完整的秘密。

步骤1b)参数生成中心设定安全参数λ,并采用算法trapgen,通过λ生成大小为n×m的矩阵a0以及格的一组满秩短基作为系统的主密钥msk,trapgen算法如下:

设定安全参数λ为1024bit的二进制数,算法在概率多项式时间内输出矩阵a0及整数格的基底再通过作为主密钥msk的基底进行加解密,其中,2<n<m,e表示m维的整数向量,mod表示取模操作;

步骤1c)参数生成中心生成大小为n×m的随机矩阵b,同时为w'中的每个wi生成大小为n×m的随机矩阵并将a0,b,随机矩阵作为系统的公钥其中,矩阵b和矩阵中的每个元素的值均为不超过q的正整数;

步骤2)密钥生成中心获取访问成员的属性私钥对(sk1,sk2):

步骤2a)密钥生成中心生成n维随机向量μ,并为访问成员属性集a中的每个aj随机生成有n个多项式的多项式组

步骤2a1)密钥生成中心生成随机向量μ=(μ1,…,μz,…,μn),随机向量μ用于辅助生成多项式组其中,向量μ的各分量值均是随机数,μz表示μ的第z个分量,1<z<n;

步骤2a2)为了通过访问成员属性计算出访问成员的私钥,密钥生成中心为访问成员属性集a中的每个aj随机生成多项式组其中,pz'(aj)的常数项pz'(0)=μz,pz'(aj)表示多项式组的第z个多项式,()t表示转置操作;

步骤2b)密钥生成中心采用sampleleft算法,并通过系统的主密钥msk、系统的公钥pk和多项式组计算未撤销访问成员的属性私钥es,算法sampleleft如下:

其中,g是高斯参数,输出es是在统计上接近高斯离散分布向量,将其作为未撤销访问成员的属性私钥,该向量每一分量值均为不超过q的正整数;

步骤2c)密钥生成中心通过将es和任意一个wi对应多项式的常数项计算访问成员的属性私钥sk1,实现对未撤销访问成员的私钥es进行隐藏;为了便于撤销,通过访问成员的标识信息i和计算隐含访问成员的身份信息的访问成员的属性私钥sk2,sk1和sk2组成访问成员的属性私钥对(sk1,sk2);

步骤3)被访问用户获取密文消息对(c0,(c1,c2)):

步骤3a)被访问用户生成n维随机向量f、10个大小为m×m的随机矩阵和服从离散高斯分布的n维向量x,其中,f的每一维分量值是小于q的正整数,矩阵每个元素的值是从-1或1中随机选取的,因为格上的加密方案均是建立在lwe问题困难性的假设上,而lwe问题中的错误量一般都是从高斯离散分布中采样得到的,因此为了确保加解密过程中的正确性,生成格上服从离散高斯分布的随机向量x是很有必要的,随机向量x在格上的离散高斯分布为:

其中,c是实数集上的n维向量,l'是n维格,实数s>0,ρs,c(x)是高斯函数,其计算方法如下:

其中,e为自然底数,π为圆周率,||||表示向量各分量的平方和开根号操作;

步骤3b)被访问用户通过系统公钥pk、向量f、任意属性元素wi对应的矩阵及向量x计算密文消息对(c0,(c1,c2)):

步骤3b1)被访问用户对明文m进行加密,得到密文消息c0:

其中,表示向下取整操作;

步骤3b2)被访问用户计算密文消息c0的辅助消息对(c1,c2):

c1=a0tf+x

步骤3b3)被访问用户将c0和(c1,c2)组成密文消息对(c0,(c1,c2));

步骤4)密钥生成中心计算委托密钥pxk并发送:

密钥生成中心通过和待撤销访问成员的标识信息计算用于变更成员私钥的委托密钥pxk,并将pxk发送至代理服务器及未撤销访问成员,其中,

步骤5)代理服务器计算拉格朗日系数并发送:

步骤5a)代理服务器通过委托密钥pxk、访问成员的标识信息i、未撤销访问成员标识信息和待撤销访问成员的标识信息分别计算多项式对应的拉格朗日系数未撤销访问用户通过计算出的拉格朗日系数还原私钥es,其中,拉格朗日系数的计算公式为:

其中,为拉格朗日系数,为未撤销访问成员的标识信息,i为访问成员的标识信息,为待撤销访问成员的标识信息。

步骤5b)代理服务器通过属性元素{w1,…,wi,…w10}的值分别计算每个属性元素的拉格朗日系数{h1,…,hi,…,h10}:

其中,wp表示在集合w'中与wi不同的属性元素;

步骤5c)代理服务器将及{h1,…,hi,…,h10}发送至未撤销访问成员;

步骤6)未撤销访问成员对密文消息对(c0,(c1,c2))进行解密:

步骤6a)未撤销访问成员通过pxk、和访问成员的属性私钥(sk1,sk2),通过拉格朗日插值多项式计算未撤销访问成员的私钥es,实现了通过委托密钥pxk对访问成员的属性私钥(sk1,sk2)进行更改:

其中,表示中任意一个拉格朗日系数;

步骤6b)未撤销访问成员通过{h1,…,hi,…,h10}和未撤销访问成员的私钥es对(c0,(c1,c2))进行解密,得到解密后的明文m':

其中,ω=w'∩a,(;)表示按行拼接操作;

步骤6c)未撤销访问成员计算m'的误差项r',误差项r'表示m'与m的差值,判断是否成立,若是,则认为m'以可以在忽略误差的情况下恢复m,解密成功,并将m'作为明文m,否则解密失败。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1