一种基于OBDD的轻量级属性基加密方法

未命名 08-17 阅读:149 评论:0

一种基于obdd的轻量级属性基加密方法
技术领域
1.本发明涉及密码学领域中的属性基加密技术,特别涉及一种基于obdd访问结构的轻量级属性基加密方案。


背景技术:

2.数据共享因其便捷性和经济性成为云计算平台提供的一种极具吸引力的服务,但云服务提供商通常是不受信任的,它可能会擅自将用户的数据泄露给用户的竞争对手以获得不当利益。因此,保护用户存储在云中的敏感数据显得尤为重要。一种可行的方法是将数据加密存储。传统的非对称密码技术虽然允许用户将数据秘密共享给指定用户,但是无法实现细粒度的访问控制。作为一种可扩展的一对多加密机制,属性基加密(attribute-based encryption,abe)为云存储提供了良好的安全性和细粒度访问控制。
3.从访问控制的角度出发,属性基加密方案中访问结构具有多种表现形式。一种较好的访问结构不仅可以提高系统的效率和访问策略的表达能力,还可以减少需要嵌入密文中属性数量来缩短密文长度和降低通信和存储开销。常见的lsss矩阵和门限结构的访问策略都是单调访问结构,无法表示属性的负值,要在访问策略中定义一个属性的负值,就必须再定义一个新的属性与该负值对应,当属性集合较大时,这种方式会导致属性数量直接翻倍。基于有序二元决策图(ordered binary decision diagram,obdd)的cp-abe方案则具有表达能力强和计算高效的特性,可同时支持访问策略中属性的正负值。
4.然而,传统的基于obdd的属性基加密计算过程中,由于双线性群的配对操作计算开销较为庞大,在实际系统中会占据大量计算资源,给数据拥有者和数据用户带来严重的计算负担,如果在工业物联网、无线体域网等移动终端资源受限的场景中,会更加明显。因此,需要对该方案进行改进,通过引入离线/在线加密和外包解密的方式,实现轻量级的基于obdd的属性基加密方案。


技术实现要素:

5.为了克服上述现有技术中存在的不足,解决现有属性基加密方案中难以兼顾减少计算开销、丰富访问控制结构语义表达的问题,本发明提供一种基于obdd访问结构的轻量级属性基加密方法。本发明改进了现有的基于obdd访问结构的属性基加密算法,使得数据终端需要加密或解密数据时,通过复杂度较低的计算即可得到最终结果。从访问控制的角度出发,采用可以表示属性负值的obdd访问结构,减小属性全集,进而减少需要嵌入密文中属性数量来缩短密文长度和降低通信和存储开销。从加解密效率的角度出发,本发明将加密阶段拆分为离线阶段和在线阶段,离线阶段脱机计算中间结果,提高在线阶段的加密效率;将解密阶段拆分为外包解密和本地解密,在保证外包代理无法知悉明文的情况下,将大部分计算工作转移给代理,从而减轻解密方的计算负担。
6.技术方案:
7.为实现上述目的,本发明采用以下技术方案:
8.一种基于obdd访问结构的轻量级属性基加密方法,拓展了传统的基于obdd访问结构的属性基加密算法,通过离线加密阶段脱机计算中间结果,提高在线加密阶段的加密效率;引入辅助密钥,在保证外包代理无法知悉明文的情况下,将大部分计算解密工作转移给代理,从而减轻解密方的计算负担,包括以下步骤:
9.s10.系统初始化算法setup(ξ,u)

(pk,msk):由授权中心ca执行,输入为安全参数ξ以及属性全集u,输出公共参数pk公开,主密钥msk由授权中心ca秘密保存;
10.s20.用户密钥生成算法keygen(pk,msk,s)

sks:由授权中心ca执行,输入主密钥msk、公共参数pk、用户属性集合s,输出相应的用户私钥sks,将用户私钥sks通过安全信道发送给用户;
11.s30.离线加密算法offline.encrypt(pk)

(ita,itm):由数据拥有者do执行,输入为公共参数pk,输出为主密文模块池ita及对应副密文模块池itm,在脱机状态下运算,与实际密文无关,计算完成后保存在本地;
12.s40.在线加密算法online.encrypt(pk,it,obdd,m)

ct:由数据拥有者do执行,输入为公共参数pk,访问控制结构obdd,主副密文模块池ita,itm,明文m,输出为密文ct,上传至云服务商ssp;
13.s50.辅助密钥生成算法agential.keygen(sks,z)

sks':由数据用户du执行,输入为用户私钥sks,随机数z,输出为辅助密钥sks',将辅助密钥sks'通过安全信道发送给解密服务商dsp;
14.s60.外包解密算法outsourcing.decrypt(ct,s,sks')

ct':由外包解密服务商执行,输入为密文ct,用户属性集合s,辅助密钥sks',输出半解密密文ct';
15.s70.本地解密算法local.decrypt(ct',c
se
,z)

m:由数据用户du执行,输入为半解密密文ct',对称密文c
se
,生成辅助密钥sks'的秘密z,输出明文m。
16.进一步地,s1阶段系统初始化算法包括以下步骤:
17.s11.选取两个阶为大素数p的循环群g与g
t
,g为g1的一个生成元,e:g
×g→gt
为一个双线性映射。
18.s12.选择随机数α∈z
p
,计算y
α
=e(g,g)
α

19.s13.对属性全集u中的每个属性进行编号为{0,1,

,m-1},对选择随机数ki,ki'∈z
p
,计算和,其中,ki代表属性i的正值,即具备属性i,ki'代表属性i的负值,即不具备属性i。
20.s14.将系统参数pk=《e,g,y
α
,{ki,ki'}》公开,msk=《α,{ki,ki'}》作为系统私钥秘密保存。
21.进一步地,s2阶段用户密钥生成算法包括以下步骤:
22.s21.数据用户du向授权中心ca发送自己的属性集合s,请求用户私钥。
23.s22.授权中心ca接收用户发来的属性集合s后,根据属性全集中每个属性i是否属于用户属性集合s得到若i∈s,则取属性正值若则取属性负值
24.s23.授权中心ca选择随机数r∈z
p
,计算得到用户密钥将用户私钥通过安全信道发送给用户。
25.进一步地,s3阶段离线加密算法包括以下步骤:
26.s31.数据拥有者do在脱机状态下选取随机数s∈z
p
,根据公共参数pk计算y
αs
,gs,{k
is
},{ki's}。
27.s32.多次执行s31,以秘密s为键,主副密文模块为值,构成主密文模块池ita=<s,e(g,g)
αs
,gs>,副密文模块池itm=<s,{k
is
,ki's}》,并在本地保存。
28.进一步地,s4阶段在线加密算法包括以下步骤:
29.s41.数据拥有者do随机选择一套主副密文模块,从主密文模块中获取s41.数据拥有者do随机选择一套主副密文模块,从主密文模块中获取计算对称密钥k
se
=h(e(g,g)
αs
),对明文m进行对称加密得到c
se
=se.enc(k
se
,m)。
30.s42.假设obdd访问结构从根节点到终端节点的有效路径个数为n,则将有效路径集合r表示为{r1,r2,

,r
n-1
},对每条路径r
t
计算计算从副密文模块中获取其中,集合i表示访问结构中涉及到的属性集合,集合u表示属性全集。
31.s43.数据拥有者do组合密文并上传至云服务商ssp。
32.进一步地,s5阶段辅助密钥生成算法包括以下步骤:
33.s51.数据用户du随机选择数z∈z
p
,并根据自身密钥计算,并根据自身密钥计算
34.s52.数据用户du组合辅助密钥并通过安全信道发送给解密服务商dsp。
35.进一步地,s6阶段外包解密算法包括以下步骤:
36.s61.外包解密服务商dsp根据密文中的obdd访问结构,构建有序决策图(v,e,id)。
37.s62.由根节点起,依据属性集s是否含有该属性的非终端节点判别子节点,若i∈s,则沿high(v)转向高子节点;否则,沿low(v)转向低子节点。
38.s63.重复执行s62,直至转至终端节点,如果终端节点为1,则迭代终止,得到有效路径r
t
,否则输出failure。至此,获得有效路径或终止标识。
39.s64.根据s63的结果选择是否进行后续计算。若输出failure则停止解密,若输出有效路径r
t
则计算
40.s65.计算半解密密文并通过安全信道发送给数据用户du。
41.进一步地,s7阶段本地解密算法包括以下步骤:
42.s71.数据用户du根据半解密密文计算对称密钥k
se
=h(ct'z)=h(e(g,g)
αs
)。
43.s72.数据用户du通过对称密钥进行解密,获取明文m=se.dec(k
se
,c
se
)。
44.有益效果:
45.本发明的优点在于:改进了基于obdd访问结构的属性基加密算法,引入离线/在线
加密和外包解密的思想,使得数据拥有者在加密时,使用脱机计算的中间结果即可快速得到最终的密文;数据用户在解密时通过引入辅助密钥,可以保证解密代理无法知悉明文的同时可以承担大部分解密工作。尤其适用于工业物联网、无线体域网等移动终端资源受限的场景,数据终端通过较为简单的计算即可得到最终结果。
附图说明
46.图1为本发明所涉及基于obdd轻量级属性基加密的系统架构图;
47.图2为本发明所涉及基于obdd轻量级属性基加密的时序图。
具体实施方式
48.下面结合实施例对本发明技术方案进行进一步详细说明。
49.这一部分将介绍一个使用本发明并进行数据共享的实例,涉及到五个实体,分别为授权中心ca、数据拥有者do、数据用户du、解密代理dsp、云存储服务商ssp,各实体的关系如图1所示。
50.本发明涉及到七个阶段的算法,各实体在不同阶段执行算法的时序图如图2所示,算法分别为:
51.s1.系统初始化算法setup(ξ,u)

(pk,msk):由授权中心ca执行,输入为安全参数ξ以及属性全集u,输出公共参数pk公开,主密钥msk由授权中心ca秘密保存;
52.s2.用户密钥生成算法keygen(pk,msk,s)

sks:由授权中心ca执行,输入主密钥msk、公共参数pk、用户属性集合s,输出相应的用户私钥sks,将用户私钥sks通过安全信道发送给用户;
53.s3.离线加密算法offline.encrypt(pk)

(ita,itm):由数据拥有者do执行,输入为公共参数pk,输出为主密文模块池ita及对应副密文模块池itm,在脱机状态下运算,与实际密文无关,计算完成后保存在本地;
54.s4.在线加密算法online.encrypt(pk,it,obdd,m)

ct:由数据拥有者do执行,输入为公共参数pk,访问控制结构obdd,主副密文模块池ita,itm,明文m,输出为密文ct,上传至云服务商ssp;
55.s5.辅助密钥生成算法agential.keygen(sks,z)

sks':由数据用户du执行,输入为用户私钥sks,随机数z,输出为辅助密钥sks',将辅助密钥通过安全信道发送给解密服务商dsp;
56.s6.外包解密算法outsourcing.decrypt(ct,s,sks')

ct':由外包解密服务商执行,输入为密文ct,用户属性集合s,辅助密钥sks',输出半解密密文ct';
57.s7.本地解密算法local.decrypt(ct',c
se
,z)

m:由数据用户du执行,输入为半解密密文ct',对称密文c
se
,生成辅助密钥的秘密z,输出明文m。
58.首先,由授权中心ca进行初始化操作,生成系统参数及系统私钥。选取两个阶为大素数p的循环群g与g
t
,g为g1的一个生成元,e:g
×g→gt
为一个双线性映射。选择随机数α∈z
p
,计算y
α
=e(g,g)
α
。对属性全集u中的每个属性进行编号,对选择随机数ki,ki'∈z
p
,计算和,其中,ki代表属性i的正值,即具备属性i,ki'代表属性i的
负值,即不具备属性i。将系统参数pk=<e,g,y
α
,{ki,ki'}》公开,msk=《α,{ki,ki'}》作为系统私钥秘密保存。
59.其次,数据用户du在加入数据共享平台时,需要在系统中注册身份,认证自己的属性集合s,并向授权中心ca请求用户私钥。授权中心ca获取到用户的属性集合s后,根据属性全集中每个属性i是否属于用户属性集合s得到若i∈s,则取属性正值若则取属性负值选择随机数r∈z
p
,计算得到用户密钥将用户私钥通过安全信道发送给用户。
60.每个需要共享数据的用户都需要在脱机状态下提前计算好与实际待共享数据无关的密文模块池,使得需要加密数据时可以通过复杂度较低的计算得到完整密文。数据拥有者do在脱机状态下选取随机数s∈zp,根据公共参数pk计算y
αs
,gs,{k
is
},{ki's}。多次执行上述操作,以秘密s为键,主副密文模块为值,构成主密文模块池ita=《s,e(g,g)
αs
,gs>,副密文模块池itm=《s,{k
is
,ki's}》,并在本地保存。可以看出,离线阶段的计算与具体的明文无关,因此可以提前进行计算。至此,数据拥有者已在脱机阶段完成了密文模块池的生成,包括所有复杂度较高的双线性对运算,故在后续的在线阶段,数据拥有者可以通过较小的计算复杂度计算得到最终结果。
61.当数据拥有者do需要共享数据时,随机选择一套主副密文模块,从主密文模块中获取计算对称密钥k
se
=h(e(g,g)
αs
),对明文m进行对称加密得到c
se
=se.enc(k
se
,m)。do以obdd的形式制定相应的访问控制策略,假设obdd访问结构中从根节点到终端节点的有效路径个数为n,则将有效路径集合r表示为{r1,r2,

,r
n-1
},对每条路径r
t
计算从副密文模块中获取其中,集合i表示访问结构中涉及到的属性集合,集合u表示属性全集。组合密文并上传至云服务商ssp。可以看出,在线加密阶段不包含双线性对运算,仅包含对称加密计算、乘运算,因此需要加密明文时,数据拥有者可以在离线加密结果的基础上,快速获得最终密文。
62.当某个符合访问控制策略的数据用户du想解密该密文时,需要委托解密代理为其承担大部分解密工作,同时为保证代理无法知悉最终明文,需要为代理生成辅助密钥。du随机选择数z∈z
p
,并根据自身密钥计算d'=d
(1/z)
。组合辅助密钥并通过安全信道发送给解密服务商dsp。
63.解密代理dsp收到数据用户du的委托后,首先验证该用户是否满足访问控制策略,依据属性集s是否含有该属性的非终端节点迭代判别下一子节点,若不满足访问控制策略,得到终止标识failure并停止解密;若满足,则继续解密,依次计算半解密密文半解密密文并通过安全信道发送给数据用户du。可以看出,由于解密代理dsp获
取的辅助密钥被数据用户嵌入了秘密z,因此,dsp无法获知最终的解密结果,但承担了所有的双线性对运算,后续数据用户du无需进行复杂计算。
64.最终,数据用户du根据半解密密文计算对称密钥k
se
=h(ct'z)=h(e(g,g)
αs
),并通过对称密钥进行解密,获取明文m=se.dec(k
se
,c
se
)。至此,数据用户安全且高效地获取了最终明文。
65.以上所述实施例仅以具体描述表达了本发明的实施方式,但不能理解为对发明专利范围的限制。对于本领域的普通技术人员来说,在不脱离本发明构思的情况下,可以对本发明创造的技术方案进行修改或改进,这些都属于本发明的包含范围。

技术特征:
1.一种基于obdd访问结构的轻量级属性基加密方法,其特征在于:将加密算法拆分为离线加密算法和在线加密算法,将解密算法拆分为辅助密钥生成算法、外包解密算法和本地解密算法,包括以下步骤:s1.系统初始化算法setup(ξ,u)

(pk,msk):由授权中心ca执行,输入为安全参数ξ以及属性全集u,输出公共参数pk公开,主密钥msk由授权中心ca秘密保存;s2.用户密钥生成算法keygen(pk,msk,s)

sk
s
:由授权中心ca执行,输入主密钥msk、公共参数pk、用户属性集合s,输出相应的用户私钥sk
s
,将用户私钥sk
s
通过安全信道发送给用户;s3.离线加密算法offline.encrypt(pk)

(it
a
,it
m
):由数据拥有者do执行,输入为公共参数pk,输出为主密文模块池it
a
及对应副密文模块池it
m
,在脱机状态下运算,与实际密文无关,计算完成后保存在本地;s4.在线加密算法online.encrypt(pk,it,obdd,m)

ct:由数据拥有者do执行,输入为公共参数pk,访问控制结构obdd,主副密文模块池it
a
,it
m
,明文m,输出为密文ct,上传至云服务商ssp;s5.辅助密钥生成算法agential.keygen(sk
s
,z)

sk
s
':由数据用户du执行,输入为用户私钥sk
s
,随机数z,输出为辅助密钥sk
s
',将辅助密钥sk
s
'通过安全信道发送给解密服务商dsp;s6.外包解密算法outsourcing.decrypt(ct,s,sk
s
')

ct':由外包解密服务商执行,输入为密文ct,用户属性集合s,辅助密钥sk
s
',输出半解密密文ct';s7.本地解密算法local.decrypt(ct',c
se
,z)

m:由数据用户du执行,输入为半解密密文ct',对称密文c
se
,生成辅助密钥sk
s
'的秘密z,输出明文m。2.如权利要求1所述的基于obdd访问结构的轻量级属性基加密方法,其特征在于:所述步骤s3具体包括以下步骤:s31.数据拥有者do在脱机状态下选取随机数s∈z
p
,根据公共参数pk计算y
αs
,g
s
,{k
is
},{k
i
'
s
}。s32.多次执行s31,以秘密s为键,主副密文模块为值,构成主密文模块池it
a
=<s,e(g,g)
αs
,g
s
>,副密文模块池it
m
=<s,{k
is
,k
i
'
s
}>,并在本地保存。3.如权利要求1所述的基于obdd访问结构的轻量级属性基加密方法,其特征在于:所述步骤s4具体包括以下步骤:s41.数据拥有者do随机选择一套主副密文模块,从主密文模块中获取s41.数据拥有者do随机选择一套主副密文模块,从主密文模块中获取计算对称密钥k
se
=h(e(g,g)
αs
),对明文m进行对称加密得到c
se
=se.enc(k
se
,m)。s42.假设obdd访问结构从根节点到终端节点的有效路径个数为n,则将有效路径集合r表示为{r1,r2,

,r
n-1
},对每条路径r
t
计算计算从副密文模块中获取其中,集合i表示访问结构中涉及到的属性集合,集合u表示属性全集。s43.数据拥有者do组合密文并上传至云服务商
ssp。4.如权利要求1所述的基于obdd访问结构的轻量级属性基加密方法,其特征在于:所述步骤s6具体包括以下步骤:s61.外包解密服务商dsp根据密文中的obdd访问结构,构建有序决策图(v,e,id)。s62.由根节点起,依据属性集s是否含有该属性的非终端节点判别子节点,若i∈s,则沿high(v)转向高子节点;否则,沿low(v)转向低子节点。s63.重复执行s62,直至转至终端节点,如果终端节点为1,则迭代终止,得到有效路径r
t
,否则输出failure。至此,获得有效路径或终止标识。s64.根据s63的结果选择是否进行后续计算。若输出failure则停止解密,若输出有效路径r
t
则计算s65.计算半解密密文并通过安全信道发送给数据用户du。

技术总结
本发明公开了一种基于OBDD访问结构的轻量级属性基加密方法,本方法从加解密效率的角度出发,将加密阶段拆分为离线阶段和在线阶段,在离线阶段脱机计算成对的主副密文模块池,提高在线阶段的加密效率;将解密阶段拆分为外包解密和本地解密,解密方在外包解密前生成辅助密钥交给解密代理,保证代理无法知悉明文的同时,将大部分计算工作转移给代理,从而减轻解密方的计算负担,本发明改进了现有的基于OBDD访问结构的属性基加密算法,使得数据终端需要加密或解密数据时,通过复杂度较低的计算即可得到最终结果。算即可得到最终结果。算即可得到最终结果。


技术研发人员:沈卓炜 聂涵
受保护的技术使用者:东南大学
技术研发日:2022.02.16
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐