本发明属于通信技术领域,涉及一种密文策略属性加密方法,具体涉及信息安全技术领域的一种格上支持属性撤销的密文策略属性加密方法。
背景技术:
随着通信技术的快速发展,经济和信息全球化的水平日益提高,安全的传输信道和信息安全成为互联网和电子商务发展的重要基石,而信息安全中最基本、最核心的技术就是信息加密技术。现代密码学大多使用公钥加密体制对信息进行加密,但是在该体制中,公钥证书的分发和维护需要占用较多的资源,管理比较复杂,会导致认证服务器超负荷运行,于是基于属性的加密体制被提出,该体制中的被访问用户仅需根据成员属性加密消息,而无需关注群体中成员的数量和身份,降低了数据加密开销并保护了用户隐私。
属性加密分为基于密钥策略的属性加密方法和基于密文策略的属性加密方法,其中,基于密钥策略的属性加密方法的访问结构虽然比较丰富,但是缺乏灵活性,不能适应现实中多变的用户属性,而基于密文策略的属性加密方法则具有较高的灵活性,该方法中访问成员的私钥根据该成员的属性集合生成,访问结构被嵌入到密文中,当且仅当访问成员满足密文中的访问结构,访问成员才能解密密文,从而使得被访问用户在加密时就可以对访问成员的身份进行限定。
由于传统的密文策略属性加密方法无法抵挡量子攻击且运算量较大,而基于格上的加密方法在具有较高安全性的同时,也能降低原始加密过程的计算复杂度,因此构建格上的属性加密方法是非常有必要的。现有的基于格的属性加密方法虽然解决了上述的问题,但是在社交网络中,访问成员的属性会随着时间等多种因素发生改变,现有的加密方法只能通过密钥生成中心对全体访问成员的私钥信息进行实时的检查和更新,因此会使得加解密过程运算量很大,尤其当系统访问成员的数量很大时,这种方法的效率会很低,同时由于现有技术将访问结构嵌入成员密钥中,导致在加密过程中无法指定访问成员的属性信息,灵活性也很低。
例如,申请公布号为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,待撤销访问成员的标识信息
(1b)参数生成中心设定安全参数λ,并采用算法trapgen,通过λ生成大小为n×m的随机矩阵a0以及格
(1c)参数生成中心生成大小为n×m的随机矩阵b,同时为w'中的每个wi生成大小为n×m的随机矩阵
(2)密钥生成中心获取访问成员的属性私钥对(sk1,sk2):
(2a)密钥生成中心生成随机向量μ=(μ1,…,μz,…,μn),并为访问成员属性集a中的每个aj随机生成多项式组
(2b)密钥生成中心采用左抽样算法,并通过系统的主密钥msk、系统的公钥pk和j个多项式组
(2c)密钥生成中心通过es和任意一个wi对应多项式
(3)被访问用户获取密文消息对(c0,(c1,c2)):
(3a)被访问用户生成n维随机向量f、格上服从离散高斯分布的n维随机向量x以及l个大小为m×m的随机矩阵
(3b)被访问用户对明文m进行加密,得到密文消息c0,并获取密文消息c0的辅助消息对(c1,c2),c0和(c1,c2)组成被访问用户的密文消息对(c0,(c1,c2)):
c1=a0tf+x
其中,
(4)密钥生成中心计算委托密钥pxk并发送:
密钥生成中心通过l个多项式
(5)代理服务器计算拉格朗日系数并发送:
代理服务器通过委托密钥pxk、访问成员的标识信息i和未撤销访问成员标识信息
(6)未撤销访问成员对密文消息对(c0,(c1,c2))进行解密:
(6a)未撤销访问成员通过pxk、
其中,
(6b)未撤销访问成员通过l个属性元素的拉格朗日系数{h1,…,hi,…,hl}和未撤销访问成员的私钥es对(c0,(c1,c2))进行解密,得到解密后的明文m':
其中,ω=w'∩a,(;)表示按行拼接操作;
(6c)未撤销访问成员计算m'的误差项r′,并判断
本发明与现有技术相比,具有以下优点:
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,待撤销访问成员的标识信息
参数生成中心设定包含q个元素的整数群zq,设定zq={1,2,...q},其中,q是一个大素数;
参数生成中心在zq上随机生成10个阶数为3的多项式
步骤1b)参数生成中心设定安全参数λ,并采用算法trapgen,通过λ生成大小为n×m的矩阵a0以及格
设定安全参数λ为1024bit的二进制数,算法在概率多项式时间内输出矩阵a0及整数格
步骤1c)参数生成中心生成大小为n×m的随机矩阵b,同时为w'中的每个wi生成大小为n×m的随机矩阵
步骤2)密钥生成中心获取访问成员的属性私钥对(sk1,sk2):
步骤2a)密钥生成中心生成n维随机向量μ,并为访问成员属性集a中的每个aj随机生成有n个多项式的多项式组
步骤2a1)密钥生成中心生成随机向量μ=(μ1,…,μz,…,μn),随机向量μ用于辅助生成多项式组
步骤2a2)为了通过访问成员属性计算出访问成员的私钥,密钥生成中心为访问成员属性集a中的每个aj随机生成多项式组
步骤2b)密钥生成中心采用sampleleft算法,并通过系统的主密钥msk、系统的公钥pk和多项式组
其中,g是高斯参数,输出es是在统计上接近高斯离散分布向量,将其作为未撤销访问成员的属性私钥,该向量每一分量值均为不超过q的正整数;
步骤2c)密钥生成中心通过将es和任意一个wi对应多项式
步骤3)被访问用户获取密文消息对(c0,(c1,c2)):
步骤3a)被访问用户生成n维随机向量f、10个大小为m×m的随机矩阵
其中,c是实数集上的n维向量,l'是n维格,实数s>0,ρs,c(x)是高斯函数,其计算方法如下:
其中,e为自然底数,π为圆周率,||||表示向量各分量的平方和开根号操作;
步骤3b)被访问用户通过系统公钥pk、向量f、任意属性元素wi对应的矩阵
步骤3b1)被访问用户对明文m进行加密,得到密文消息c0:
其中,
步骤3b2)被访问用户计算密文消息c0的辅助消息对(c1,c2):
c1=a0tf+x
步骤3b3)被访问用户将c0和(c1,c2)组成密文消息对(c0,(c1,c2));
步骤4)密钥生成中心计算委托密钥pxk并发送:
密钥生成中心通过
步骤5)代理服务器计算拉格朗日系数并发送:
步骤5a)代理服务器通过委托密钥pxk、访问成员的标识信息i、未撤销访问成员标识信息
其中,
步骤5b)代理服务器通过属性元素{w1,…,wi,…w10}的值分别计算每个属性元素的拉格朗日系数{h1,…,hi,…,h10}:
其中,wp表示在集合w'中与wi不同的属性元素;
步骤5c)代理服务器将
步骤6)未撤销访问成员对密文消息对(c0,(c1,c2))进行解密:
步骤6a)未撤销访问成员通过pxk、
其中,
步骤6b)未撤销访问成员通过{h1,…,hi,…,h10}和未撤销访问成员的私钥es对(c0,(c1,c2))进行解密,得到解密后的明文m':
其中,ω=w'∩a,(;)表示按行拼接操作;
步骤6c)未撤销访问成员计算m'的误差项r',误差项r'表示m'与m的差值,判断