一种解决密钥托管问题的白盒可追责属性基加密系统及其方法

文档序号:30411712发布日期:2022-06-15 09:46阅读:149来源:国知局
一种解决密钥托管问题的白盒可追责属性基加密系统及其方法

1.本发明属于密码学技术领域,涉及属性基加密的技术,尤其涉及一种解决密钥托管问题的白盒可追责属性基加密系统及其方法。


背景技术:

2.随着社会信息化的不断提高,数据的价值日益彰显,如何进行安全且高效的数据共享已经成为人们关注的重点。传统的数据共享方案中,用户将自己的数据存储在云端服务器上进行共享,利用公钥加密技术来保证用户将自己的数据秘密分享给某个指定的用户。虽然利用加密技术可以保护数据的安全性,但是传统的加密机制只能进行一对一加密,即利用一个公钥加密的信息只有通过对应的私钥才能解密,很难实现细粒度的访问控制。基于密文策略的属性加密算法(cipertext policy attribute-based encryption encryption,cp-abe)作为基于身份的密码体系的一个扩展,不仅提供了对数据的安全性保障,而且提供了对加密数据的细粒度访问控制机制,非常适合于数据共享背景下的访问控制。
3.在实际利用密文策略属性基加密进行数据共享访问控制的过程中,由于属性基加密密文的解密权限由具有相同属性的多个用户共享,用户的密钥只是和用户属性相关联,不包含任何用户特有的信息,这导致如果发生了解密密钥的泄漏或非法共享,难以从泄漏的解密密钥中去追责到是哪个用户泄漏了该密钥。从这个角度出发,支持白盒可追责特性的属性基加密方案被提出。2014年,ning等人在《larger universe ciphertext-policy attribute-based encryption with white-box traceability》中提出了一个大属性域下的白盒可追责属性基加密方案,该方案不仅支持系统的大属性域构造,而且具备白盒可追责的特性。
4.然而,从密钥生成中心的角度看,由于密钥的生成需要用户将自己的属性信息提交给密钥生成中心、由密钥生成中心计算出属性密钥后再返回给用户,这导致密钥生成中心拥有所有用户解密密钥的生成记录,密钥生成中心也可以利用它的主密钥来生成任意属性集合的属性密钥来解密任意密文,即ning等人的白盒可追责方案中的密钥生成中心存在密钥托管问题。因此,急需对现有的方案进行改进。


技术实现要素:

5.本发明正是针对现有属性基加密算法在实际应用中存在的问题,提供一种解决密钥托管问题的白盒可追责属性基加密系统及其方法。算法通过在用户的密钥中嵌入用户身份相关的秘密信息来支持系统的白盒追责功能,并将现有属性基加密算法中的密钥生成中心分成身份授权机构ia和属性授权机构aa两部分,分别用于嵌入用户身份相关的秘密信息和生成用户属性相关的密钥,同时设计一个两部分之间合作生成用户解密密钥的协议,使得两个机构必须通过合作才能进行用户解密密钥的生成,从而确保任何一个机构都不能独
自生成具有完整解密功能的解密密钥,解决了现有属性基加密算法中的密钥生成中心中存在的密钥托管问题。
6.为了实现上述目的,本发明采取的技术方案是:一种解决密钥托管问题的白盒可追责属性基加密系统,包括密钥生成模块、数据拥有者do、数据用户du和云服务器csp,所述密钥生成模块包括身份授权机构ia和属性授权机构aa,所述身份授权机构ia用于执行输出用户的身份密钥和中间密钥,所述属性授权机构aa根据中间密钥输出用户属性密钥;
7.所述数据拥护者do用于执行明文加密算法,输出消息密文,通过云服务器csp将消息密文传送给数据用户du;
8.所述数据用户du用于接收用户的身份密钥和用户属性密钥,并对消息密文进行解密;
9.所述身份授权机构ia还包括初始化的用户列表,在为用户生成解密密钥时,将用户的身份标识和随机值c的对应关系添加到用户列表中,身份授权机构ia根据公共参数、用户的身份密钥和用户属性密钥判断解密密钥是否完整,若完整,则执行追责操作,通过用户列表追责泄露密钥的恶意用户,并输出用户的身份标识。
10.为了实现上述目的,本发明还采取的技术方案是:一种解决密钥托管问题的白盒可追责属性基加密方法,包括如下步骤:
11.s1,系统初始化:身份授权机构ia根据输入的安全参数1
λ
执行初始化算法,输出公共参数pk
ia
和系统私钥sk
ia
;属性授权机构aa根据输入的安全参数1
λ
和ia的公共参数pk
ia
执行初始化算法,输出公共参数pk
aa
和系统私钥sk
aa
;所述身份授权机构ia另外初始化建立用户列表
12.s2,用户密钥生成:所述用户密钥包括用户的身份密钥和用户属性密钥,身份授权机构ia根据输入的公共参数pk
ia
、系统私钥sk
ia
、数据用户的身份标识id和属性集合s,输出用户的身份密钥usersk
id
和中间密钥midkey,其中用户的身份密钥usersk
id
通过安全信道发送给数据用户du,中间密钥midkey通过安全信道发送给属性授权机构aa;属性授权机构aa根据输入的公共参数pk
ia
和pk
aa
、中间密钥minkey,输出用户的属性密钥usersks,其中用户的属性密钥usersks通过安全信道发送给数据用户du,数据用户du得到完整的解密密钥usersk
id,s
=(usersk
id
,usersks);
13.s3,明文加密:由数据拥有者do执行,输入为公共参数pk
ia
和pk
aa
、明文m、访问控制结构(m,ρ),输出消息密文ct;
14.s4,密文解密:由数据用户du执行,输入为公共参数pk
ia
和pk
aa
、密文ct、用户的解密密钥usersk
id,s
,输出明文m;
15.s5,密钥完整性验证:身份授权机构ia根据输入的公共参数pk
ia
和pk
aa
、用户的解密密钥usersk
id,s
判断解密密钥是否通过完整性验证,如果解密密钥usersk
id,s
通过了密钥完整性验证,那么输出1,继续步骤s6;否则,输出0,步骤结束;
16.s6,密钥追责:若步骤s5输出为1,则解密密钥usersk
id,s
是完整的,执行追责操作并输出恶意用户的身份标识id。
17.作为本发明的一种改进,所述步骤s1中,公共参数pk
ia
=(gd,g,u,h,w,v,g
α
,e(g,g)
β
)公开,系统私钥sk
ia
=(α,β)作为身份授权机构ia的私钥秘密保存,其中,双线性群gd=(p,g,g
t
,e),大素数p是群g和g
t
的生成元,e是使得g
×g→gt
的一个双线性映射,系统的属性
域设定为u=z
p
;g,u,h,w,v是身份授权机构ia从群g中选择的随机参数,(α,β)是从z
p
中随机选择的参数;
18.公共参数pk
aa
=e(g,g)
βt
公开,系统私钥sk
aa
由属性授权机构aa秘密保存,其中,t是属性授权机构aa从z
p
中随机选择的参数。
19.作为本发明的一种改进,所述步骤s2中,身份授权机构ia为用户从乘法循环群中选择随机数c和z,将用户身份标识id和随机数c的对应关系(id,c)存入用户列表t中,并将随机数z通过安全信道发送给数据用户du,用户身份密钥usersk
id
=z:
20.属性授权机构aa从加法循环群z
p
中随机选取{r,r1,r2,...rk}
k=|s|
,计算出用户的属性密钥usersks,通过秘密信道发送给数据用户du,usersks的具体结构如下:
[0021][0022]
作为本发明的另一种改进,所述步骤s3中,密文ct的具体结构如下:
[0023]
ct=《(m,ρ),c=m
·
e(g,g)
βts
,c0=gs,c1=g
αs

[0024][0025]
其中,(m,ρ)是数据拥有者do确定访问的控制矩阵,m是l行n列的分享策略矩阵,ρ是一个将mi映射到一个属性ρ(i)∈u的函数,mi代表分享策略矩阵m的第i行,数据拥有者do加法循环群z
p
中随机选择向量其中是用于分享的随机秘密,得到分享向量随机指数η1,η2,...,η
l
∈z
p

[0026]
作为本发明的又一种改进,所述步骤s4包括:
[0027]
s41.如果数据用户du私钥中对应的属性集合s满足密文中的访问控制策略a,则对秘密值s的分享数据用户du可以计算出常数{wi∈z
p
}
i∈[l]
,使得∑
i∈[l]
ωiλi=s;
[0028]
s42.数据用户du进行以下计算,解密得到明文m:
[0029][0030][0031][0032]
m=c/fzꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ

[0033]
作为本案更进一步的改进,所述步骤s5密钥完整性的通过条件为,解密密钥usersk
id,s
满足下面的要求:
[0034]
(1)获得的泄露密钥usersk
id,s
格式符合(k,k

,l,l

,{k
τ,1
,k
τ,2
}
τ∈k
)的形式,且k,l,l

,k
τ,2
∈g;
[0035]
(2)e(l

,g)=e(l,g
α
);
[0036]
(3)
[0037]
(4)
[0038]
与现有技术相比:本发明改进了现有属性基加密算法,系统支持大属性域构造的同时,通过在用户的密钥中嵌入用户身份相关的秘密信息来支持系统的白盒追责功能,这使得用户在非法泄露自己的私钥后,可以通过泄露的解密密钥去追责到是哪个用户泄露了该密钥;同时算法将现有属性基加密算法中的密钥生成中心分成身份授权机构ia和属性授权机构aa两部分,分别用于嵌入用户身份相关的秘密信息和生成用户属性相关的密钥,同时设计一个两部分之间合作生成用户解密密钥的协议,使得两个机构必须通过合作才能进行用户解密密钥的生成,确保任何一个机构都不能独自解密密文,同时也无法独自生成具有完整解密功能的解密密钥,解决了密钥托管的问题,使系统同时具备属性空间可以动态扩展、解密密钥白盒可追责、解决密钥生成中心的密钥托管问题多个特性。
附图说明
[0039]
图1是本发明所涉及解决密钥托管问题的白盒可追责属性基加密方法的系统架构图;
[0040]
图2是本发明所涉及解决密钥托管问题的白盒可追责属性基加密方法的时序图。
具体实施方式
[0041]
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
[0042]
实施例1
[0043]
一种解决密钥托管问题的白盒可追责属性基加密系统,包括密钥生成模块、数据拥有者do、数据用户du和云服务器csp,如图1所示,密钥生成模块包括身份授权机构ia和属性授权机构aa,所述身份授权机构ia用于执行输出用户的身份密钥和中间密钥,所述属性授权机构aa根据中间密钥输出用户属性密钥;所述数据拥护者do用于执行明文加密算法,输出消息密文,通过云服务器csp将消息密文传送给数据用户du;所述数据用户du用于接收用户的身份密钥和用户属性密钥,并对消息密文进行解密;所述身份授权机构ia还包括初始化的用户列表,在为用户生成解密密钥时,将用户的身份标识和随机值c的对应关系添加到用户列表中。身份授权机构ia根据公共参数、用户的身份密钥和用户属性密钥判断解密密钥是否完整,若完整,则执行追责操作,通过用户列表追责泄露密钥的恶意用户,并输出用户的身份标识。本系统通过引入多个机构合作生成用户的解密密钥,并将现有属性基加密算法中的密钥生成中心功能进行划分,实现解决密钥托管问题的白盒可追责属性基加密方案。通过在用户的密钥中嵌入用户身份相关的秘密信息来支持系统的白盒追责功能;并将现有属性基加密算法中的密钥生成中心分成身份授权机构ia和属性授权机构aa两部分,分别用于嵌入用户身份相关的秘密信息和生成用户属性相关的密钥,同时设计一个两部分
之间合作生成用户解密密钥的协议,使得两个机构必须通过合作才能进行用户解密密钥的生成,确保任何一个机构都不能独自解密密文,解决了现有属性基加密算法中密钥生成中心存在的密钥托管问题。
[0044]
实施例2
[0045]
一种解决密钥托管问题的白盒可追责属性基加密方法,共涉及六个阶段的算法:系统初始化算法、密钥生成算法、明文加密算法、密文解密算法、密钥完整性验证算法、密钥追责算法,如图2所示,具体包括如下步骤:
[0046]
s1,系统初始化ia.setup(1
λ
)

(pk
ia
,sk
ia
)和aa.setup(1
λ
,pk
ia
)

(pk
aa
,sk
aa
):身份授权机构ia根据输入的安全参数1
λ
执行初始化算法,输出公共参数pk
ia
和系统私钥sk
ia
,其中pk
ia
公开,sk
ia
由身份授权机构ia秘密保存;属性授权机构aa根据输入的安全参数1
λ
和ia的公共参数pk
ia
执行初始化算法,输出公共参数pk
aa
和系统私钥sk
aa
,其中pk
aa
公开,sk
aa
由属性授权机构aa秘密保存;所述身份授权机构ia另外初始化建立用户列表用于后续的白盒追责;所述步骤的算法,进一步包括:
[0047]
s11.身份授权机构ia选择双线性群gd=(p,g,g
t
,e),大素数p是群g和g
t
的生成元,e是使得g
×g→gt
的一个双线性映射,系统的属性域设定为u=z
p

[0048]
s12.身份授权机构ia从群g中选择随机参数g,u,h,w,v,从z
p
中随机选择参数(α,β),并且初始化一个用户列表
[0049]
s13.身份授权机构ia将系统参数pk
ia
=(gd,g,u,h,w,v,g
α
,e(g,g)
β
)公开,sk
ia
=(α,β)作为身份授权机构ia的私钥秘密保存;
[0050]
s14.属性授权机构aa从z
p
中随机选择参数t,计算e(g,g)
βt

[0051]
s15.属性授权机构aa将系统参数pk
aa
=e(g,g)
βt
公开,sk
aa
=t作为属性授权机构aa的私钥秘密保存;
[0052]
s2,用户密钥生成ia.keygen(pk
ia
,sk
ia
,id,s)

(usersk
id
,midkey):所述用户密钥包括用户的身份密钥和用户属性密钥,身份授权机构ia根据输入的公共参数pk
ia
、系统私钥sk
ia
、数据用户的身份标识id和属性集合s,输出用户的身份密钥usersk
id
和中间密钥midkey,其中用户的身份密钥usersk
id
通过安全信道发送给数据用户du,中间密钥midkey通过安全信道发送给属性授权机构aa;属性授权机构aa根据输入的公共参数pk
ia
和pk
aa
、中间密钥midkey,输出用户的属性密钥usersks,其中用户的属性密钥usersks通过安全信道发送给数据用户du,数据用户du得到完整的解密密钥usersk
id,s
=(usersk
id
,usersks);所属步骤的算法进一步包括:
[0053]
s21.每个数据用户du在加入数据共享平台时,需要在系统中注册自己的身份,认证自己的身份标识id以及属性集合s,数据用户du向身份授权机构ia发送自己的身份标识id以及属性集合s,请求生成用户私钥;
[0054]
s22.身份授权机构ia为该用户从乘法循环群中选择随机数c和z,将用户身份标识id和随机数c的对应关系(id,c)存入身份列表t中,并将随机数z通过安全信道发送给用户作为用户关于用户身份的第一部分解密密钥usersk
id
=z;
[0055]
s23.身份授权机构ia分别计算g
1/z
,g
β/z(α+c)
,g
α/z
,w
1/z
,g
β
,并且为用户属性集合s中的每一个属性ai计算(u
ai
h)
1/z
,形成中间密钥midkey={g
1/z
,g
β/z(α+c)
,g
α/z
,ω
1/z
,g
β
,(u
aih)
1/z
,c,s}通过安全信道发送给属性授权机构aa;
[0056]
s24.属性授权机构aa从加法循环群z
p
中随机选取{r,r1,r2,...rk}
k=|s|
,为用户计算出关于用户属性的第二部分解密密钥usersks,通过秘密信道发送给用户,usersks的具体结构如下:
[0057][0058]
s25.数据用户du获取完整的密钥usersk
id,s
=(usersk
id
,usersks);
[0059]
s3,明文加密encry(pk
ia
,pk
aa
,m,(m,ρ))

ct:由数据拥有者do执行,输入为公共参数pk
ia
和pk
aa
、明文m、访问控制结构(m,ρ),输出消息密文ct;所述步骤进一步包括:
[0060]
s31.数据拥有者do确定访问控制矩阵(m,ρ),m是l行n列的分享策略矩阵,ρ是一个将mi映射到一个属性ρ(i)∈u的函数,mi代表分享策略矩阵m的第i行。数据拥有者do从加法循环群z
p
中随机选择向量其中是用于分享的随机秘密;
[0061]
s32.数据拥有者do计算得到分享向量
[0062]
s33.数据拥有者do随机选择l个随机指数η1,η2,...,η
l
∈z
p
,计算出最终的密文ct通过安全信道发送给云服务器。密文ct的具体结构如下:
[0063][0064]
s4,密文解密decrypt(pk
ia
,pk
aa
,ct,usersk
id,s
)

m:由数据用户du执行,输入为公共参数pk
ia
和pk
aa
、密文ct、用户的解密密钥usersk
id,s
,输出明文m;所述明文m的计算方法为:
[0065]
s41.如果数据用户du私钥中对应的属性集合s满足密文中的访问控制策略a,则对秘密值s的分享数据用户du可以计算出常数{wi∈z
p
}
i∈[l]
,使得∑
i∈[l]
wiλi=s;
[0066]
s42.数据用户du进行以下计算,解密得到明文m:
[0067][0068][0069][0070]
m=c/fz;
[0071]
s5,密钥完整性验证keysanitycheck(pk
ia
,pk
aa
,usersk
id,s
)

1or 0:身份授权机构ia根据输入的公共参数pk
ia
和pk
aa
、用户的解密密钥usersk
id,s
判断解密密钥是否通过完整性验证,如果解密密钥usersk
id,s
通过了密钥完整性验证,那么输出1,继续步骤s6;否则,输出0,步骤结束;
[0072]
所述解密密钥usersk
id,s
若满足下面的要求:
[0073]
(1)获得的泄露密钥usersk
id,s
格式符合(k,k

l,l

,{k
τ,1
,k
τ,2
}
τ∈k
)的形式,且k,l,l

,k
τ,2
∈g。
[0074]
(2)e(l

,g)=e(l,g
α
)
[0075]
(3)
[0076]
(4)
[0077]
则表示该密钥通过密钥完整性验证,可以用于解密和用户追责,算法输出结果为1;否则表示该密钥不符合解密密钥的格式,验证算法输出结果为0;
[0078]
s6,密钥追责trace(pk
ia
,pk
aa
,usersk
id,s
,t)

id or

:若步骤s5输出为1,则解密密钥usersk
id,s
是完整的,执行追责操作并输出恶意用户的身份标识id,所述步骤进一步包括:
[0079]
s61.如果需要进行追责的密钥通过了密钥健全性验证算法,身份授权机构ia通过泄露密钥usersk
id,s
中包含的k

=c,在身份列表t中查找对应用户身份id;
[0080]
s62.如果身份授权机构ia可以在追责列表中查找到随机值c对应的id,则表明追责到泄密的用户身份为id;否则输出错误符号


[0081]
以上,本案的方法通过在用户的密钥中嵌入用户身份相关的秘密信息来支持系统的白盒追责功能,并将现有属性基加密算法中的密钥生成中心分成身份授权机构ia和属性授权机构aa两部分,分别用于嵌入用户身份相关的秘密信息和生成用户属性相关的密钥,同时设计一个两部分之间合作生成用户解密密钥的协议,使得两个机构必须通过合作才能进行用户解密密钥的生成,从而确保任何一个机构都不能独自生成具有完整解密功能的解密密钥,解决了现有属性基加密算法中的密钥生成中心中存在的密钥托管问题,使系统同时具备属性空间可以动态扩展、解密密钥白盒可追责、解决密钥生成中心的密钥托管问题多个特性。
[0082]
需要说明的是,以上内容仅仅说明了本发明的技术思想,不能以此限定本发明的保护范围,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰均落入本发明权利要求书的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1