技术简介:
本发明针对现有密钥策略属性基加密(KP-ABE)解密开销大、时间长的问题,提出基于格的外包解密方法。通过将解密计算转移至服务器,结合同态评估生成短密文,显著降低轻量级用户端的计算与存储负担。该方法基于格的构造兼具抗量子攻击能力与高效计算性能,适用于资源受限设备。
关键词:基于格的属性基加密,外包解密,同态评估
1.本发明涉及加密技术领域,更具体地涉及基于格的属性基加密的外包解密方法。
背景技术:2.sahai和waters于2005年扩展了ibe(ibe:identity based encryption)方案的概念,即基于身份的加密方案,提出了fuzzy-ibe的概念,该方案是第一个abe(abe:attribute based encryption)方案,即属性基加密方案([1]amit sahai,brent waters.fuzzy identity based encryption.aarhus,denmark:springer berlin heidelberg,457-473,2004)。该方案提出的最初目的是为了增加ibe方案的容错性,将用户身份标识看作是一系列的属性,在加密时,数据所有者设定一个门限值,当且仅当数据使用者的属性集与密文中属性集的交集中的属性个数等于或超过这个门限值时才能解密。由于该方案的表达性不强,适用的场景不多。goyal等人于2006年提出了kp-abe(kp-abe:key policy attribute based encryption,基于密钥策略的属性基加密)方案([2]goyal,vipul,et al."attribute based encryption for fine grained access control of encrypted data."proceedings of the 13th acm conference on computer and communications security.2006)。随后,bethencourt等人在goyal等人的基础上于2007年提出了cp-abe(cp-abe:ciphertext policy attribute based encryption-基于密文策略的属性基加密)方案([3]bethencourt,john,amit sahai,and brent waters."ciphertext policy attribute based encryption."2007ieee symposium on security and privacy(sp'07).ieee,2007)。2011年waters提出了第一个具有完全表达能力的、高效的,支持单调lsss访问结构策略,在标准模型下证明是安全的cp-abe方案([4]lewko,allison,and brent waters."unbounded hibe and attribute based encryption."annual international conference on the theory and applications of cryptographic techniques.springer,berlin,heidelberg,2011)。
[0003]
但是abe方案巨大的解密时间开销阻碍了abe方案的进一步发展,对于资源有限的数据使用者来说,无法快速解密。随着云计算技术的发展,将abe的解密运算外包给云服务器进行成为了解决以上问题的一个可行的方法,云服务器能有效解决用户端计算、存储能力不足等问题,能有效地减轻用户端的计算开销。green等人于2011年针对abe方案首次提出了一个可行的外包解密abe(od-abe:outsourcing the decryption of attribute based encryption)的方案,其后很多的od-abe方案均借用了该方案中的思想。使用他们的方法,数据使用者可以在不泄露明文消息的情况下将大部分解密操作外包给拥有丰富计算资源的云服务器。此后,数据使用者只需要进行简单地操作解密云服务器返回的中间密文就可以得到相应的明文。2016年,wang等人同样提出了一种可验证的od-abe方案,并且实现了对密钥生成、消息解密以及消息加密过程的外包([5]wang,hao,et al."verifiable outsourced ciphertext policy attribute based encryption in cloud computing."soft computing,21.24(2017):7325-7335)。但他们的方案都是基于双线性配对的属性基
加密方案,因此以上这些方案只抗经典的计算机攻击,并不抗量子计算机攻击。dai等人提出了基于格的密钥策略属性基加密方案([6]dai w,y,polyakov y,et al.implementation and evaluation of a lattice-based key-policy abe scheme.ieee transactions on information forensics and security,2017,13(5):1169-1184)。此方案不仅抗经典的计算机攻击,也抗量子计算机攻击。而该方案也存在传统abe方案的问题,私钥生成、数据加密和解密阶段需要大量的计算,私钥生成和数据加密可以由大型机执行,而受限的计算资源和电量资源致使执行解密的用户机不能承载过大的计算开销和通信开销,解密包括昂贵的操作且用户必须重复这些操作。如何构造抗经典的计算机攻击,也抗量子计算机攻击又适用于轻量级用户终端的方法还是公开的问题。所以本发明提出一种适用于轻量级用户终端的基于格的属性基加密的外包解密方法。
技术实现要素:[0004]
针对属性基加密(abe)方案的解密过程必须执行重复复杂计算,使得该方案很难适用于轻量级用户终端,本发明的目的在于提出一个新的基于格的属性基加密的外包解密方法,以获得既抗经典的计算机攻击,也抗量子计算机攻击,同时具有较好的解密效率的功能。
[0005]
本发明提供的基于格的属性基加密的外包解密方法,包括生成系统参数、加密算法、公钥和密文的同态评估、密钥生成算法、外包解密算法和解密算法。
[0006]
本发明提出的基于格的属性基加密的外包解密方法,包括以下步骤:
[0007]
步骤1:生成系统参数;
[0008]
根据输入的安全参数λ,调用trapgen(λ)算法生成矩阵a和主密钥ta;根据输入的属性数量参数l,随机生成l+1个均匀分布的向量bi,bi对应着属性集y={y1,y2,
…
,y
l
}中的y[i]即yi,随机生成一个挑战β
←rq
;最后输出公共参数mpk和主密钥msk;mpk=(a,{bi}
i∈{0,1,
…
,l}
,β),msk=ta;
[0009]
步骤2:加密算法;
[0010]
根据明文μ∈r2,属性集x以及mpk执行加密算法,随机生成s
←rq
,e1←dr,σ
,i=0,1,2,
…
,l,l为属性的数量;d
r,σ
代表在环r上的高斯分布,代表在上的高斯分布;噪声向量e1和e2都是从高斯分布中采样得来;g=(1,2,22,23,
…
,2
k-1
,0,0),其中k=m-2,m取决于ta(tra pdoor)构造;输出密文c=(ca,cb,cs);其中);其中使用标记ci=(xig+bi)
t
s+e
0,i
表示cb的各个部分,其中i=0,1,..,l,xi对应属性集x中的值,x0=1不属于属性集x,是访问策略电路中实现布尔电路的必要组件,搜索版本的环上容错学习假设阻止对手计算cs=βs+e1+μ[q/2]中的s
←rq
,决策版本的环上容错学习假设使得伪随机的密文分量ci难以区分;
[0011]
步骤3:公钥和密文的同态评估;
[0012]
对应于属性的公钥bi和密文ci都在访问策略电路f上同态计算,获得对应于f的公钥bf以及密文cf;
[0013]
步骤4:密钥生成算法;
[0014]
在步骤3中同态求值后获得的向量cf被视为在公钥bf下加密的密文;cf和bf都对应于访问策略f,写作对于ef的计算,若有属性x1和x2,这个访问策略f是加法或者减法运算,其中c1=(x1g+b1)
t
s+e
0,1
,c2=(x2g+b2)
t
s+e
0,2
,ef=e
0,1
±e0,2
,如果访问策略f是乘法运算,ef=x2e
0,1
+ψ
te0,2
;然后随机生成一个密钥根据步骤1生成的挑战β以及步骤3生成的bf生成t=β-b
fab
,根据算法gausssamp(a,ta,t)生成密钥aa,将密钥aa和ab输出给数据使用者,数据使用者将密钥ab输出给外包解密服务器;
[0015]
步骤5:外包解密算法;
[0016]
外包解密服务器根据接收到的密钥ab以及密文cf生成转换后的密文
[0017]
步骤6:解密算法。
[0018]
作为优选,步骤1所述的生成系统参数,具体实现如下:
[0019]
步骤1.1:根据输入的安全参数λ,根据trapgen(λ)算法生成矩阵a和主密钥ta;ta由两个向量d和u组成,ta={d,u},这两个向量都是使用分布参数为σ的离散高斯分布生成,do←dr,σ
,uo←dr,σ
,d
r,σ
表示在多项式环r上的高斯分布,o=1,2,
…
,k,k=m-2,其中m取决于具体的ta(trapdoor)构造,
[0020]
步骤1.2:根据输入的属性数量参数l,随机生成l+1个均匀分布的向量对其中i=0,1,2,
…
,l,bi对应着属性集y={y1,y2,
…
,y
l
}里的属性yi,l为属性的数量,与b0对应的y0=1不属于属性集y,而是访问策略电路f中实现布尔电路的必要组件;最后均匀随机的生成一个挑战β
←rq
,其中是一个分圆多项式环,是整系数多项式环,rq=r/qr,q是模数;代表m
×
1的列向量,中的元素都属于环rq;代表1
×
m的行向量,中的元素都属于环rq;代表m
×
m的矩阵,中的元素都属于环rq;
[0021]
步骤1.3:输出mpk=(a,{bi}
i∈{0,1,
…
,l}
,β),msk=ta;当ta是未知,a是伪随机时,该方法满足环上容错学习假设。
[0022]
作为优选,步骤3所述的公钥和密文的同态评估,具体实现如下:
[0023]
对应于属性的公钥bi和密文ci都在访问策略电路f上同态计算,获得对应于f的公钥bf以及密文cf;将访问策略f看作一个布尔电路,使用的布尔电路具有二叉树的拓扑结构;若有属性x1和x2,,得到密文得到密文访问策略f用加法、减法或者乘法来表示布尔表达式;如果这个访问策略f是加法或者减法运算,那么同态计算即为c
±
=c1±
c2,b
±
=b1±
b2,其中c1=(x1g+b1)
t
s+e
0,1
,
如果访问策略f是乘法运算c
x
=x2c1+ψ
t
c2,b
x
=b2ψ,其中ψ=bitdecomp(-b1),bitdecomp代表对-b1的位分解操作,使得-b1=gψ;然后对于与非门的同态评估表示为c
nand
=c
0-x2c
1-ψ
t
c2,b
nand
=b
0-b2ψ;根据与非门的同态评估可以迭代地在定义的二叉树拓扑结构中完成计算;根据定义的访问策略f得到对应于f的公钥bf以及密文cf;bf=evalpk(x,bi,f),cf=evalpk(x,ci,f);ci=(xig+bi)
t
s+e
0,i
,,对密文的评估将导致错误向量中的噪声增加,并且噪声级不应超过所选密文模数q的阈值,实现正确解密。
[0024]
作为优选,步骤6所述的解密算法,具体实现如下:
[0025]
数据使用者根据接受外包解密后的密文c
mid
以及密文cs=βs+e1+μ(q/2),密文恢复明文μ;
[0026]
只有当密文中的属性值满足访问策略时,持有密钥的用户有权限解密密文;
[0027]
成功解密当且仅当f(x)=0;
[0028][0029]
|dtextz|《q/4时,否则z=1,2,
…
,n;n为明文的长度,得到解密集合即数据所有者进行加密的明文
[0030]
本发明相对其他方法,具有以下优点:
[0031]
1)效率高
[0032]
基于格的密码系统通常算法简单,可高度并行化,主要由向量和矩阵的线性运算(模为相对较小的整数)组成。
[0033]
2)抗量子攻击
[0034]
与大多数数论密码方案相比,格密码明显抗量子攻击。大多数数论密码方案在量子计算机的环境下安全性是没有保证的。
[0035]
3)访问策略更具有表达性
[0036]
本发明基于布尔电路来构造方法,可以构造各种访问策略来应对复杂的业务场景。
[0037]
4)适合轻量级用户端
[0038]
本发明通过外包解密算法使得用户端只需要花费较小的开销就能完成解密。
[0039]
本发明基于格构建属性基加密方法,可有效抵御量子攻击,又因为本方法的构造是基于rlwe假设(多项式环),相较于lwe假设(整数环),显著降低了计算和存储复杂性。本发明可用于分布式云环境中实现安全的数据共享,尤其适合于移动设备等资源受限设备。
附图说明
[0040]
图1为本发明流程图。
具体实施方式
[0041]
下面结合附图和实施例来对本发明做进一步的说明。
[0042]
步骤1:生成系统参数
[0043]
步骤1.1:根据输入的安全参数λ,根据trapgen(λ)算法生成矩阵a和主密钥ta;ta由两个向量d和u组成,ta={d,u},这两个向量都是使用分布参数为σ的离散高斯分布生成,do←dr,σ
,uo←dr,σ
,d
r,σ
表示在多项式环r上的高斯分布,o=1,2,
…
,k,k=m-2,其中m取决于具体的ta(trapdoor)构造,
[0044]
步骤1.2:根据输入的属性数量参数l,随机生成l+1个均匀分布的向量对其中i=0,1,2,
…
,l,bi对应着属性集y={y1,y2,
…
,y
l
}里的属性yi,l为属性的数量,特殊的与b0对应的y0=1不属于属性集y,而是访问策略电路f中实现布尔逻辑电路的必要组件。最后均匀随机的生成一个挑战β
←rq
,其中是一个分圆多项式环,是整系数多项式环,rq=r/qr,q是模数。代表m
×
1的列向量,中的元素都属于环rq。代表1
×
m的行向量,中的元素都属于环rq。代表m
×
m的矩阵,中的元素都属于环rq。
[0045]
步骤1.3:输出mpk=(a,{bi}
i∈{0,1,
…
,l}
,β),msk=ta。当ta是未知,a是伪随机时,该方法满足环上容错学习假设。
[0046]
步骤2:加密算法
[0047]
根据明文μ,μ∈r2,属性集x以及mpk执行加密算法,随机生成s
←rq
,e1←dr,σ
,i=0,1,2,
…
,l,l为属性的数量。d
r,σ
代表在环r上的高斯分布,代表在上的高斯分布。e1和e2都是从高斯分布中采样得来,它们在密文中通常被称为错误向量或者噪声向量。g=(1,2,22,23,
…
,2
k-1
,0,0),其中k=m-2,m取决于具体的ta(trapdoor)构造。输出密文c=(ca,cb,cs)。其中)。其中为了方便表示,我们使用标记ci=(xig+bi)
t
s+e
0,i
来表示cb中的各个部分,其中i=0,1,..,l,xi对应属性集x中的值,特殊的x0=1不属于属性集x,而是访问策略电路中实现布尔逻辑电路的必要组件,xi=1代表属性集x包含属性集y中的yi,xi=0代表属性集x不包含属性集y中的yi。
[0048]
步骤3:公钥和密文的同态评估
[0049]
对应于属性的公钥bi和密文ci都在访问策略电路f上同态计算,这样,获得对应于f的公钥bf以及密文cf。将访问策略f看作一个布尔电路,更具体地说,本方法中使用的布尔逻辑电路具有二叉树的拓扑结构。与非门是通用的,任何布尔函数都可只用与非门来实现,可以使用一个减法与乘法运算来获得与非门,假设有属性x1和x2,,得到密文到密文访问策略f可用加法,减法或者乘法来表示布尔表达式。如果这个访问策略f是加法或者减法运算,那么同态计算即为c
±
=c1±
c2,b
±
=b1±
b2,其中c1=(x1g+b1)
t
s+e
0,1
,,c2=
(x2g+b2)
t
s+e
0,2
,c0=(g+b0)
t
s+e
0,0
,,如果访问策略f是乘法运算c
x
=x2c1+ψ
t
c2,b
x
=b2ψ,其中ψ=bitdecomp(-b1),bitdecomp代表对-b1的位分解操作,使得-b1=gψ。然后对于与非门的同态评估可以表示为c
nand
=c
0-x2c
1-ψ
t
c2,b
nand
=b
0-b2ψ。根据与非门的同态评估可以迭代地在定义的二叉树拓扑结构中完成计算。根据定义的访问策略f得到对应于f的公钥bf以及密文cf。bf=evalpk(x,bi,f),cf=evalpk(x,ci,f)。ci=(xig+bi)
t
s+e
0,i
,对密文的评估会导致错误向量中的噪声增加,并且噪声级不应超过所选密文模数q的阈值,以实现正确解密。
[0050]
步骤4:密钥生成算法
[0051]
在步骤3中同态求值后获得的向量cf被视为在公钥bf下加密的密文。因为cf和bf都对应于访问策略f,所以写为其中ef的计算类似于上文提到的同态评估,假设有属性x1和x2,这个访问策略f是加法或者减法运算,其中c1=(x1g+b1)
t
s+e
0,1
,c2=(x2g+b2)
t
s+e
0,2
,ef=e
0,1
±e0,2
,如果访问策略f是乘法运算,ef=x2e
0,1
+ψ
te0,2
。然后随机生成一个密钥根据步骤1生成的挑战β以及步骤3生成的bf生成t=β-b
fab
,根据算法gausssamp(a,ta,t)生成密钥aa,将密钥aa输出给数据使用者,将密钥ab输出给外包解密服务器。
[0052]
步骤5:外包解密算法
[0053]
外包解密算法将接收到的密钥ab以及同态评估生成的密文cf作为输入,外包解密服务器输出半解密的密文
[0054]
步骤6:解密算法
[0055]
数据使用者根据接受外包解密后的密文c
mid
以及密文cs=βs+e1+μ(q/2),密文ca=a
t
s+e2,恢复明文μ。只有当密文中的属性值满足访问策略时,持有密钥的用户才能解密密文。成功解密当且仅当f(x)=0。
[0056][0057]
|dtextz|《q/4时,否则z=1,2,
…
,n。n为明文的长度,得到解密集合即数据所有者进行加密的明文
[0058]
安全性证明
[0059]
假设存在一个多项式时间攻击者l,它能以优势ε破解此kp-abe方案的选择性安全,并且最多可以进行q次密钥生成查询。构建一个安全游戏,它可以以优势ε解决decisional rlwe问题。提供rlwe问题实例作为预言机o,预言机采样的元素是真实随机的o
*
或者噪声伪随机的o1。模拟器m使用攻击者l来区分这两者。
[0060]
具体如下:
[0061]
攻击者l提交一组属性值x
*
,属性长度为l,随机生成β
←rq
,,
[0062]
m执行接下来的操作随机采样si←
{
±
1}m×m,i=1,2,
…
,l。
[0063]
i=1,2,
…
,l。然后将公钥mpk=(a,{bi}
i∈[l]
,β)发送给攻击者l。
[0064]
攻击者l无法区分公钥mpk中的bi和正常kp-abe方法中随机采样的bi。
[0065]
阶段1:
[0066]
攻击者可以查询预言机中的任何函数f,前提是f(x
*
)=1。
[0067]
对于任何f(x
*
)=1。预言机计算)=1。预言机计算返回aa|ab=sampleleft(a,g,s,β),(a|as
f-g)*(aa|ab)=β。可以使用相同的输入重复查询,然而预言机不能回答任何(a|asf)*(aa|ab)=β的查询,即f(x
*
)=0。
[0068]
挑战:
[0069]
攻击者l选择明文对(μ0,μ1)发送给m。
[0070][0071]cs
=βr+e1+μb(q/2)。
[0072][0073]
m加密μb,然后发送给攻击者l,其中b∈(0,1)。
[0074]
返回密文c
′
=(asf,cs,a)。
[0075]
最终,l输出一个值b
′
作为b的猜测。如果b
′
=b,m输出1,否则输出0。
[0076]
阶段2:
[0077]
与阶段1类似,攻击者l继续向模拟器m发出请求。
[0078]
猜测:
[0079]
c=(a|as1|
…
|as
l
)
t
s+e0数据上接近对于均匀随机选择的a
′i(a|a
′1|
…
|a
′
l
)
t
s+e0,l将所有向量asi视为接近均匀的。因此l在判断b=0还是b=1没有显著优势,也就是以1/2的概率(没有任何优势)。假定能以优势ε猜到b,这意味着可以解决decisional rlwe问题。根据rlwe问题的困难性可得出该方案是安全的。
[0080]
实验结果
[0081]
为了展示本方案的实用性,基于手机和笔记本电脑实现了本专利中描述的基于格的属性基加密的外包解密方法,并报告了实施结果。在笔记本电脑的虚拟机(如vmware workstation 16 pro)中安装ubuntu系统,在手机上使用linux deploy中部署了ubuntu系统,以上ubuntu系统都为ubuntu 18.04,所涉及的算法使用c++语言实现,所使用的电脑处理器型号为intel core i7-9750h@2.60ghz,内存(ram)为8.0gb,操作系统为windows10。所使用的手机处理器型号为qualcomm snapdragon 888,操作系统为android11,运行内存为12.0gb。
[0082]
根据表1的实验结果可以看到,密钥生成、加密以及解密的时间随着属性数l的增加而增加。evalpk和evalc占据了主要的时间消耗,同态评估是一种公开操作,可以由接收方或者代理来执行,所以这个过程可以由数据所有者授权的高性能服务器进行,在一个典型的应用场景中,访问策略由多个数据使用者共享,可以部署一个高性能的代理服务器来对密文进行同态评估操作,避免了多个数据使用者重复相同的操作,并且有助于资源受限
的数据使用者自己无法执行昂贵的同态评估,以提高整个加密系统的效率,同时密文经过同态评估后会生成压缩后的短密文,可以消耗更小的存储空间,更适合轻量级数据使用者。私钥生成只是偶尔执行不是加密系统的瓶颈,对于整个系统而言可以忍受这个时间消耗。解密操作的消耗虽然没有占据特别多的时间,一般来说数据所有者进行一次加密操作后,数据使用者会重复执行解密操作。
[0083][0084]
表1实验结果
[0085]
相对来说经过外包解密处理后的开销有较明显的减少,虽然该方案的解密开销看起来都很小只有几十毫秒,但是数据使用者通常会重复执行解密操作获得密文,累积的解密开销不可忽视。模拟实验的笔记本电脑性能有限,但是依然可以相对轻松的处理外包解密的开销,但这对在资源受限的设备上管理和查看私人数据的用户来说是一个重大挑战,在资源受限的设备上,比如本次实验使用到的手机,电池寿命也是一个长期存在的问题。
[0086]
综上所述,在时间消耗上本方案在适配资源受限的轻量级用户端这个领域具有较好的优势。