抗密钥泄露的分布式身份基加密方法

文档序号:33709530发布日期:2023-03-31 23:06阅读:76来源:国知局
抗密钥泄露的分布式身份基加密方法

1.本发明属于公钥加密技术领域,具体涉及到基于身份加密的构造方法。


背景技术:

2.1984年,shamir提出了一种基于身份加密的思想,方案中不使用任何证书,直接将用户的身份作为公钥,例如用户的身份证号,邮箱地址等唯一信息,以此来简化公钥基础设施中密钥的管理。基于身份加密机制存在一个固有的缺陷,即密钥托管问题,用户的解密密钥由中心化的密钥生成中心产生。密钥生成中心可以解密任何密文,伪造任何消息的签名,因此用户的隐私性并不能得到保证。分布式的身份基加密机制将密钥生成中心的能力进行分割,由多个机构共同产生用户密钥,以此来消除中心化机构的不可信问题。
3.传统的基于身份的加密机制假定诚实参与方的内部状态对于恶意敌手来说是完全保密的,没有考虑信息泄露攻击对机制安全性的影响。在现实应用中,恶意敌手可以通过多种侧信道攻击的方式获得诚实参与者内部状态,例如:冷启动攻击,频谱分析,电源耗损等,这些攻击可以使敌手获得秘密状态的相关信息。为了提高密码方案的实用性和安全性,抗泄露的密码学机制获得了研究人员的关注。
4.在现有的身份基加密方法中,没有同时支持抗泄露性和分布式密钥生成的方法。因此,研究抗密钥泄露的分布式身份基加密技术方案,具有很重要的实际意义。


技术实现要素:

5.本发明所要解决的技术问题在于克服上述现有技术的缺点,提供一种实用的抗密钥泄露的分布式身份基加密方法。
6.解决上述问题所采用的技术方案由以下步骤组成:
7.(1)系统初始化
8.1)设置公开参数params:
9.params={q,g,g
t
,g,g2,g3,u,v,e,h,h

,kdf,ext}
10.其中g与g
t
是阶为q的循环群,g是循环群g的生成元,g2,g3,u,v是从循环群g中随机选取的元素,e是一个双线性映射,h和h

为抗碰撞的哈希函数,且满足t为有限的正整数,为模q的整数群,kdf为密钥衍射函数,满足ext是一个随机性强提取器,满足ext:g
t
×
{0,1}
t

{0,1}k。
11.2)密钥生成中心kgc和密钥隐私服务中心kpai选择各自密钥,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n为有限的正整数,并计算各自公钥如下:
12.密钥生成中心kgc在群中选择随机元素s0作为自己的密钥,并设置密钥生成中心kgc的公钥p0:
[0013][0014]
密钥隐私服务中心kpai在群中选择随机元素si作为自己的密钥,并设置密钥隐
私服务中心kpai的公钥pi:
[0015][0016]
其中,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n为有限的正整数。
[0017]
密钥生成中心kgc和密钥隐私服务中心kpai按下式得到中间参数g1:
[0018][0019]
公开参数params,密钥生成中心kgc和密钥隐私服务中心kpai的密钥各自秘密保存。完成系统初始化步骤。
[0020]
(2)密钥生成
[0021]
1)用户在群中选择随机元素x作为盲化因子,并计算中间参数x=g
x
,将(id,x)发送给密钥生成中心kgc,其中id为用户的身份信息。
[0022]
2)密钥生成中心kgc收到(id,x),在群中选择随机元素t1,t2,按下式确定部分密钥q
′0,q
″0,sk

id,1
,sk
id,2
,sk

id,3
,sk
id,4

[0023][0024][0025][0026][0027][0028][0029]
密钥生成中心kgc将(sk

id,1
,sk
id,2
,sk

id,3
,sk
id,4
)发送给用户,将(q
′0,q
″0,id,x)发送给密钥隐私服务中心kpai。
[0030]
3)密钥隐私服务中心kpai收到(q
′0,q
″0,id,x)后,按下式确定中间参数q
′i,中间参数q
″i:
[0031][0032][0033]
密钥隐私服务中心kpai依次计算,将最终的(q
′n,q
″n)发送给用户。
[0034]
4)用户先自行确定中间参数和具体计算过程如下:
[0035][0036][0037]
用户确定自身的密钥sk
id

[0038]
sk
id
=(sk
id,1
,sk
id,2
,sk
id,3
,sk
id,4
)
[0039][0040][0041][0042][0043]
完成分布式密钥生成步骤。
[0044]
(3)密钥更新
[0045]
密钥生成中心kgc在群中选择随机元素计算更新密钥如下:
[0046][0047][0048][0049][0050][0051]
其中,表示第j轮更新后的密钥,表示第j+1轮更新后的用户密钥。
[0052]
完成密钥更新步骤。
[0053]
(4)加密
[0054]
加密者为身份的用户加密一个消息m,m表示为一个k长的{0,1}字符串,k取值为24~2
12
,即m∈{0,1}k,加密者在中随机选择元素s,随机选择元素η∈{0,1}
t
,t取值为24~2
12
,并确定加密信息ct:
[0055]
ct=(c1,c2,c3,v,η)
[0056][0057]
c2=gs[0058]
c3=(u
id
v)s[0059]
v=sk1+k2[0060]
其中,表示异或运算。
[0061]
(k1,k2)=kdf(c4)
[0062][0063]
β=h(c1,c2,c3,η)
[0064]
完成加密步骤。
[0065]
(5)解密
[0066]
用户收到加密信息ct后,用户用自身的密钥sk
id
进行解密,按下式计算并输出消息m:
[0067]
β=h(c1,c2,c3,η)
[0068]
x1=e(sk
id,1
,c2)
×
e(sk
id,2
,c3)
[0069]
x2=e(sk
id,3
,c2)
×
e(sk
id,4
,c3)
[0070][0071]
(k
′1,k
′2)=kdf(c
′4)
[0072]
验证gv与是否相等,如果相等则输出消息m如下:
[0073][0074]
如果不相等则终止计算,输出失败。
[0075]
完成抗密钥泄露的分布式身份基加密方法。
[0076]
在本发明的(1)系统初始化的2)步骤中,所述的密钥隐私服务中心kpai选择各自密钥,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n取值为[50,100]。
[0077]
在本发明的(1)系统初始化的2)步骤中,所述的密钥隐私服务中心kpai选择各自密钥,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n取值最佳为75。
[0078]
在本发明的(4)加密步骤中,所述的加密者为身份的用户加密一个消息m,m表示为一个k长的{0,1}字符串,k取值最佳为28,即m∈{0,1}k,加密者在中随机选择元素s,随机选择元素η∈{0,1}
t
,t取值最佳为28,并确定加密信息ct。
[0079]
本发明在密钥生成步骤中,针对身份基加密机制中的密钥托管问题,通过分布式密钥生成方法,为用户计算解密密钥,保证了用户密钥的隐私性,解决了传统身份基加密中密钥生成中心权利过大的技术问题。在密钥更新步骤中,通过对原始密钥进行再随机化,解决了由信息泄露所造成密钥的熵损失,保证了在连续泄露攻击下技术方案的安全性和实用性。在加密步骤中,通过引入密文合法性验证元素,使得密文不可扩展,确保本发明具有抵抗选择密文攻击的安全性。本发明方法采用抗泄露密码学机制和分布式密钥生成方法,提出了实用的身份基加密方案。本发明方法具有安全性和实用性等优点,可用于访问控制技术领域。
附图说明
[0080]
图1是本发明实施例1的流程图。
具体实施方式
[0081]
下面结合附图和实施例对本发明进一步详细说明,但本发明不限于下述的实施方式。
[0082]
实施例1
[0083]
在图1中,本实施例的抗密钥泄露的分布式身份基加密方法由以下步骤组成。
[0084]
(1)系统初始化
[0085]
1)设置公开参数params:
[0086]
params={q,g,g
t
,g,g2,g3,u,v,e,h,h

,kdf,ext}
[0087]
其中g与g
t
是阶为q的循环群,g是循环群g的生成元,g2,g3,u,v是从循环群g中随机选取的元素,e是一个双线性映射,h和h

为抗碰撞的哈希函数,且满足t为有限的正整数,为模q的整数群,kdf为密钥衍射函数,满足ext是一个随机性强提取器,满足ext:g
t
×
{0,1}
t

{0,1}k。
[0088]
2)密钥生成中心kgc和密钥隐私服务中心kpai选择各自密钥,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n为有限的正整数,本实施例的n取值为75,并计算各自公钥如下:
[0089]
密钥生成中心kgc在群中选择随机元素s0作为自己的密钥,并设置密钥生成中心kgc的公钥p0:
[0090][0091]
密钥隐私服务中心kpai在群中选择随机元素si作为自己的密钥,并设置密钥隐私服务中心kpai的公钥pi:
[0092]
[0093]
其中,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n取值为[50,100],本实施例的n取值为75。
[0094]
密钥生成中心kgc和密钥隐私服务中心kpai按下式得到中间参数g1:
[0095][0096]
公开参数params,密钥生成中心kgc和密钥隐私服务中心kpai的密钥各自秘密保存;完成系统初始化步骤。
[0097]
(2)密钥生成
[0098]
1)用户在群中选择随机元素x作为盲化因子,并计算中间参数x=g
x
,将(id,x)发送给密钥生成中心kgc,其中id为用户的身份信息。
[0099]
2)密钥生成中心kgc收到(id,x),在群中选择随机元素t1,t2,按下式确定部分密钥q
′0,q
″0,sk

id,1
,sk
id,2
,sk

id,3
,sk
id,4

[0100][0101][0102][0103][0104][0105][0106]
密钥生成中心kgc将(sk

id,1
,sk
id,2
,sk

id,3
,sk
id,4
)发送给用户,将(q
′0,q
″0,id,x)发送给密钥隐私服务中心kpai。
[0107]
3)密钥隐私服务中心kpai收到(q
′0,q
″0,id,x)后,按下式确定中间参数q
′i,中间参数q
″i:
[0108][0109][0110]
密钥隐私服务中心kpai依次计算,将最终的(q
′n,q
″n)发送给用户。
[0111]
4)用户先自行确定中间参数和具体计算过程如下:
[0112][0113][0114]
用户确定自身的密钥sk
id

[0115]
sk
id
=(sk
id,1
,sk
id,2
,sk
id,3
,sk
id,4
)
[0116][0117][0118][0119][0120]
完成分布式密钥生成步骤。
[0121]
本发明在密钥生成步骤中,针对身份基加密机制中的密钥托管问题,通过分布式密钥生成方法,为用户计算解密密钥,保证了用户密钥的隐私性,解决了传统身份基加密中
密钥生成中心权利过大的技术问题。
[0122]
(3)密钥更新
[0123]
密钥生成中心kgc在群中选择随机元素计算更新密钥如下:
[0124][0125][0126][0127][0128][0129]
其中,表示第j轮更新后的密钥,表示第j+1轮更新后的用户密钥。
[0130]
完成密钥更新步骤。
[0131]
在密钥更新步骤中,通过对原始密钥进行再随机化,解决了由信息泄露所造成密钥的熵损失,保证了在连续泄露攻击下技术方案的安全性和实用性。
[0132]
(4)加密
[0133]
加密者为身份的用户加密一个消息m,m表示为一个k长的{0,1}字符串,即m∈{0,1}k,k取值为24~2
12
,本实施例的k取值为28,加密者在中随机选择元素s,随机选择元素η∈{0,1}
t
,t取值为24~2
12
,本实施例的t取值为28,并确定加密信息ct:
[0134]
ct=(c1,c2,c3,v,η)
[0135][0136]
c2=gs[0137]
c3=(u
id
v)s[0138]
v=sk1+k2[0139]
其中,表示异或运算。
[0140]
(k1,k2)=kdf(c4)
[0141][0142]
β=h(c1,c2,c3,η)
[0143]
完成加密步骤。
[0144]
在加密步骤中,通过引入密文合法性验证元素,使得密文不可扩展,确保本发明具有抵抗选择密文攻击的安全性。本发明方法采用抗泄露密码学机制和分布式密钥生成方法,提出了实用的身份基加密方案。
[0145]
(5)解密
[0146]
用户收到加密信息ct后,用户用自身的密钥sk
id
进行解密,按下式计算并输出消息m:
[0147]
β=h(c1,c2,c3,η)
[0148]
x1=e(sk
id,1
,c2)
×
e(sk
id,2
,c3)
[0149]
x2=e(sk
id,3
,c2)
×
e(sk
id,4
,c3)
[0150][0151]
(k
′1,k
′2)=kdf(c
′4)
[0152]
验证gv与是否相等,如果相等则输出消息m如下:
[0153][0154]
如果不相等则终止计算,输出失败。
[0155]
完成抗密钥泄露的分布式身份基加密方法。
[0156]
实施例2
[0157]
本实施例的抗密钥泄露的分布式身份基加密方法由以下步骤组成。
[0158]
(1)系统初始化
[0159]
1)设置公开参数params
[0160]
该步骤与实施例1相同。
[0161]
2)密钥生成中心kgc和密钥隐私服务中心kpai选择各自密钥,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n为有限的正整数,并计算各自公钥如下:
[0162]
密钥生成中心kgc在群中选择随机元素s0作为自己的密钥,并设置密钥生成中心kgc的公钥p0:
[0163][0164]
密钥隐私服务中心kpai在群中选择随机元素si作为自己的密钥,并设置密钥隐私服务中心kpai的公钥pi:
[0165][0166]
其中,1≤i≤n,n表示密钥隐私服务中心kpai的个数,n取值为[50,100],本实施例的n取值为50。
[0167]
密钥生成中心kgc和密钥隐私服务中心kpai按下式得到中间参数g1:
[0168][0169]
公开参数params,密钥生成中心kgc和密钥隐私服务中心kpai的密钥各自秘密保存;完成系统初始化步骤。
[0170]
(2)密钥生成
[0171]
该步骤与实施例1相同。
[0172]
(3)密钥更新
[0173]
该步骤与实施例1相同。
[0174]
(4)加密
[0175]
加密者为身份的用户加密一个消息m,m表示为一个k长的{0,1}字符串,即m∈{0,1}k,k取值为24~2
12
,本实施例的k取值为24,加密者在中随机选择元素s,随机选择元素η∈{0,1}
t
,t取值为24~2
12
,本实施例的t取值为24,并确定加密信息ct:
[0176]
ct=(c1,c2,c3,v,η)
[0177][0178]
c2=gs[0179]
c3=(u
id
v)s[0180]
v=sk1+k2[0181]
其中,表示异或运算。
[0212]
其中,表示异或运算。
[0213]
(k1,k2)=kdf(c4)
[0214][0215]
β=h(c1,c2,c3,η)
[0216]
完成加密步骤。
[0217]
其它步骤与实施例1相同。完成抗密钥泄露的分布式身份基加密方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1