一种针对具有密文同态性的身份标识密码系统的用户撤销方法与流程

文档序号:20202931发布日期:2020-03-27 20:49阅读:404来源:国知局
一种针对具有密文同态性的身份标识密码系统的用户撤销方法与流程

本发明涉及信息安全领域,公开了一种针对具有密文同态性的身份标识密码系统的用户撤销方法。



背景技术:

移动互联网时代,数据的机密性、完整性和不可抵赖性由密码算法保证。传统的公钥加密基础设施(pki)使用证书关联用户公钥和身份,在实际使用中,证书的颁发和维护均需要专门的机构实施,往往带来较大的开销和维护成本。为了降低开销和成本,身份标识密码系统是一种新型的加密系统,由pki发展而来,其优势在于可以使用用户的标识信息作为公钥进行加密,如用户的邮箱、身份证号码等,无需颁发和管理证书,具有成本低和效率高的优势。

近年来,身份标识密码技术被广泛研究,多种密码方案被提出并被标准化。同时,身份标识密码技术在多种场景下得到应用,主要包括安全电子邮件、安全电子政务系统、商用软件等。快速、安全的用户撤销机制是现代信息系统必不可少的核心功能之一,在上述应用场景中,一旦系统中的某位用户离职,该用户应被立即撤销,从而无法继续解密系统中的加密文档。然而,目前针对身份标识密码系统的撤销机制仍存在通讯开销大、计算效率低下和局限性高等问题。此外,用户撤销机制的密钥一旦丢失或发生泄漏,那么用户撤销机制将形同虚设,而现有大多数撤销方案无法抵抗撤销密钥泄漏。因此,一个实用的身份标识密码系统应具备快速、安全、稳定的撤销机制。



技术实现要素:

为解决身份标识密码系统中面临的用户撤销问题,本发明提供一种针对具有密文同态性的身份标识密码系统的用户撤销方法,适用于所有密文具有同态性的身份标识密码系统。借助既存服务器的计算和管理能力,使用服务器端密钥对数据密文进行随机化,引入用户撤销列表对用户进行撤销操作。同时,为了防范服务器撤销密钥泄露造成撤销机制失效,服务器周期性地对服务器密钥和已存储密文进行更新。在保证数据机密性的前提下,实现了高效、安全和稳定的直接用户撤销机制。

为解决上述技术问题,本发明采取的技术方案如下:

本发明提出一种针对具有密文同态性的身份标识密码系统的用户撤销方法,其包括如下步骤:

a、系统初始化:根据系统安全参数λ,设定系统公共参数pp,系统主密钥msk,当前系统计数器t,云密钥cskt和初始撤销列表rl;

b、数据消费者密钥生成:根据系统公共参数pp、系统主密钥msk和数据消费者(即用户)身份idi,生成数据消费者密钥

c、数据加密:根据系统公共参数pp、数据消费者身份idi和明文消息m,对明文消息m进行加密,生成数据原始密文ct;

d、密文初始化:根据系统公共参数pp、数据原始密文ct和云密钥cskt,对数据原始密文ct进行初始化,生成当前时间段密文ctt;

e、云密钥更新:根据系统公共参数pp和当前时间段云密钥cskt,将当前时间段云密钥cskt进行更新,生成下一时间段云密钥cskt′;

f、云端密文更新:根据系统公共参数pp、当前时间段密文ctt、当前时间段云密钥cskt和下一时间段云密钥cskt′,对当前时间段密文ctt进行更新操作,生成下一时间段密文ctt′;

g、云端密文解密:根据系统公共参数pp、当前时间段密文ctt、当前时间段云密钥cskt和撤销列表rl,对当前时间段密文ctt进行云端解密,生成数据转换密文tct;

h、用户端原始密文解密:根据系统公共参数pp、数据转换密文tct和数据消费者密钥对数据转换密文tct进行解密,获得原始消息m;

i、用户撤销:根据数据消费者身份idi和当前撤销列表rl,将数据消费者身份idi添加到撤销列表中,输出新的撤销列表rl′。

本发明还提出一种针对具有密文同态性的身份标识密码系统的用户撤销系统,其涉及到的实体包括参数设置服务器、用户密钥生成服务器、加密服务器、解密服务器、云存储服务器、云计算服务器、用户撤销服务器;在具体实施时,参数设置服务器、用户密钥生成服务器和用户撤销服务器可以为一个实体,云存储服务器和云计算服务器可以为一个实体;各服务器功能如下:

参数设置服务器,用于生成系统公共参数、系统主密钥、当前系统计数器和云密钥,将系统主密钥发送给用户密钥生成服务器,将云密钥发送给云存储服务器和云计算服务器,将系统公共参数发送给系统中的所有参与实体服务器;

用户密钥生成服务器,根据系统公共参数、系统主密钥和数据消费者身份,生成数据消费者密钥,将密钥发送给数据消费者;

加密服务器,根据系统公共参数和数据消费者身份,对明文消息进行加密,生成数据原始密文,将数据原始密文发送给云存储服务器(可先发送给数据拥有者,再由数据拥有者发送给云存储服务器);

云存储服务器,接收加密服务器上传的数据原始密文,并对原始密文进行初始化和更新,得到当前时间段密文,存储当前时间段密文,根据数据消费者发起的数据请求,将存储的密文发送给云计算服务器;

云计算服务器,接收数据消费者的下载请求,从云存储服务器获取当前时间段密文,根据系统公共参数、云密钥和接收到的撤销列表,判断用户是否被撤销,若未被撤销,则计算数据转换密文,将数据转换密文发送给解密服务器;否则将当前时间段密文作为数据转换密文发送给解密服务器;当云密钥需要更新时,云计算服务器负责更新云密钥和云存储服务器中当前时间段密文;

解密服务器,根据系统公共参数和数据消费者密钥,对数据转换密文解密,将解密结果发送给数据消费者;

用户撤销服务器,对用户进行撤销,将数据消费者身份添加到当前撤销列表中来生成新的撤销列表,并将撤销列表发送给云计算服务器。

与现有技术相比,本发明的积极效果为:

本发明方法采用服务器辅助撤销和定期更新云密钥相结合的方式,在保证数据机密性的同时,提供了安全高效稳定的直接用户撤销机制。本发明方法无需密钥生成中心实时在线,可实现对用户的即时撤销;辅助服务器负责初始化和更新密文,周期性地更换服务器端密钥,提高系统撤销机制的稳定性;数据拥有者和数据消费者无额外计算开销和通信开销。其中,辅助服务器提供的直接撤销机制充分利用服务器强大的存储、计算和管理能力,具有高效、稳定的优势,实现了对用户密钥的直接撤销;云密钥和密文定期进行更新,有利于防范云端撤销密钥丢失导致撤销机制失效,提高了撤销机制的稳定性。

附图说明

图1是本发明的一种针对身份标识密码系统的用户撤销系统的结构图;

图2是本发明的一种针对身份标识密码系统的用户撤销方法的算法流程图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明。

本发明的一种针对具有密文同态性的身份标识密码系统的通用撤销涉及的算法如下:

1.身份加密算法ibe,包括四个子算法:

初始化算法ibe.setup(λ)→(pp,msk,cskt,rl),输入系统安全参数λ,输出系统公共参数pp、系统主密钥msk、云密钥cskt和初始撤销列表rl;

密钥生成算法输入系统公共参数pp、系统主密钥msk和数据消费者身份idi,输出数据消费者密钥

加密算法ibe.enc(pp,idi)→(ek,ctkem),输入系统公共参数pp和数据消费者身份idi,输出封装密钥ek和封装密钥原始密文ctkem,其中ctkem必须具有同态性;

解密算法ibe.dec(pp,ctkem)→ek,输入系统公共参数pp、封装密钥原始密文ctkem,输出封装密钥ek;

2.对称加密算法ske,包括两个子算法:

加密算法ske.enc(nk,m)→ctdem,输入会话密钥nk和明文消息m,输出数据密文ctdem;

解密算法ske.dec(nk,ctdem)→m,输入会话密钥nk和数据密文ctdem,输出原始消息m。

3.密钥导出函数kdf:

输入封装密钥ek和长度输出长度为的会话密钥nk。

针对上述身份加密算法,本发明方法提供如下五个子算法:

密文初始化算法ibe.ctinit(pp,ctkem,ctdem,cskt)→ctt,输入系统公共参数pp、封装密钥原始密文ctkem、数据密文ctdem和云密钥cskt,输出当前时间段密文ctt;

云密钥更新算法ibe.cskupdate(pp,cskt)→cskt′,输入系统公共参数pp、当前时间段云密钥cskt,输出更新后的下一时间段云密钥cskt′;

密文更新算法ibe.ctupdate(pp,ctt,cskt,cskt′)→ctt′,输入系统公共参数pp、当前时间段的密文ctt、当前时间段的云密钥cskt和下一时间段的云密钥cskt′,输出下一时间段的密文ctt′;

密文转换算法ibe.trans(pp,cskt,ctt,rl)→(tctkem,ctdem),输入系统公共参数pp、当前时间段的云密钥cskt、当前时间段的数据密文ctt和撤销列表rl,输出数据转换密文tctkem和数据密文ctdem;

撤销算法ibe.revoke(pp,rl,idi)→rl′,输入系统公共参数pp、当前撤销列表rl和数据消费者身份idi,输出更新后的撤销列表rl′。

本发明提供的一种针对具有密文同态性的身份标识密码系统的用户撤销系统如图1所示,采用的用户撤销方法涉及的算法流程如图2所示,各步骤具体说明如下:

步骤a包括:

a1.选择输出长度的密钥导出函数kdf,其中nk为对称加密算法ske的会话密钥;

a2.选择系统安全参数λ,执行ibe.setup(λ),生成系统公共参数pp、系统主密钥msk、初始时间段云密钥cskt和初始撤销列表rl;

步骤b包括:

b1.执行ibe.extract(pp,msk,idi),生成数据消费者私钥

步骤c包括:

c1.执行ibe.enc(pp,idi),生成封装密钥ek和封装密钥原始密文ctkem;

c2.执行生成会话密钥nk;

c3.执行ske.enc(nk,m),生成数据密文ctdem;

c4.得到数据原始密文ct=(ctkem,ctdem);

步骤d包括:

d1.执行ibe.ctinit(pp,ctkem,ctdem,cskt),生成当前时间段的密文ctt;

步骤e包括:

e1.执行ibe.cskupdate(pp,cskt),生成下一时间段的云密钥cskt′;

步骤f包括:

f1.执行ibe.ctupdate(pp,ctt,cskt,cskt′),生成下一时间段的密文ctt′;

步骤g包括:

g1.执行ibe.trans(pp,cskt,ctt,rl),获得封装密钥转换密文tctkem和数据密文ctdem;

步骤h包括:

h1.执行ibe.dec(pp,tctkem),生成封装密钥ek;

h2.执行生成会话密钥nk;

h3.执行ske.dec(nk,ctdem),得到原始消息m;

步骤i包括:

i1.执行ibe.revoke(pp,idi,rl),将数据消费者身份idi进行撤销,输出新的撤销列表rl′。

以下为应用本发明提出的一种针对具有密文同态性的身份标识密码系统的用户撤销方法的一实施例,本实施例针对国产密码身份标识标准算法sm9中的密钥封装算法。作为一个被广泛使用的身份标识密码算法,目前,国产密码算法标准sm9密钥封装算法尚无撤销机制。本发明方法提出的撤销机制,具有一定的通用性,适用于所有密文具有同态性的身份加密算法,包括sm9。

本实施例中,步骤a包括:

a1.选择输出长度的密钥导出函数kdf,其中nk为对称加密算法的会话密钥,选择密码学安全的哈希函数选择密码学安全的哈希函数h:{0,1}*→{0,1}l2,选择密码学安全的伪随机函数选择密码学安全的密钥导出函数kdf,选择密码学安全的对称加密算法ske;

a2.选取阶数为p的群以及双线性映射选择随机元素计算u=e(g,h)γ,w=gγ;选择随机比特串csk1∈{0,1}l1,设置当前时刻计数器t=1,设置云密钥cskt=(csk1,t);初始化撤销列表rl为空;得到系统公共参数系统主密钥msk=γ,以及云密钥cskt=(cskt,t);

步骤b包括:

b1.为拥有身份idi的数据消费者生成私钥

步骤c包括:

c1.选取随机元素计算c1=qz,u′=uz,得到密钥封装密文ctkem=c1;

c2.导出对称密钥

c3.执行ske.enc(nk,m),生成数据密文ctdem;

c4.得到数据原始密文ct=(ctkem,ctdem);

步骤d包括:

d1.计算δ=prf(cskt,h(ctdem))和ct′kem=(ctkem)δ,输出当前时间段的密文ctt=(ct′kem,ctdem)。

步骤e包括:

e1.设置下一时间段计数器t′=t+1,选择随机比特串cskt′∈{0,1}l1,输出下一时间段云密钥cskt′=(cskt′,t′)。

步骤f包括:

f1.针对当前时刻的密文ctt=(ct′kem,ctdem),计算δ=prf(cskt,h(ctdem))和δ′=prf(cskt′,h(ctdem)),计算下一时间段的密文ctt′=(ct′kemδ′/δ,ctdem)。

步骤g包括:

g1.若与密文ctt对应的数据消费者已被撤销,则输出当前时间段的密文ctt=(ct′kem,ctdem);否则针对当前时刻的密文ctt=(ct′kem,ctdem),计算δ=prf(cskt,h(ctdem)),计算封装密钥转换密文tctkem=(ct′kem)1/δ,输出tctkem和ctdem。

步骤h包括:

h1.计算

h2.导出对称会话密钥

h3.执行ske.dec(nk,ctdem),得到消息m;

步骤i包括:

i1.将数据消费者身份idi添加到撤销列表rl中:rl′=rl∪{idi},输出新的撤销列表rl′。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1