参与者身份匿名的多接收者签密方法与流程

文档序号:11803155阅读:136来源:国知局
本发明涉及一种多接收者签密方法,特别涉及一种参与者身份匿名的多接收者签密方法。

背景技术:
在分布式网络应用(例如网络会议、圆桌会议及收费电视)中,为了保护通信系统中进行会话的所有参与者身份隐私,以及确保会话内容仅可以被授权用户正确解密,而非授权用户无法正确解密,需要安全广播技术作为支持。安全广播是实现一个发送者向多个授权接收者安全发送相同消息的技术,能够实现上述网络应用的安全需求。文献“AnonymousIDBasedSigncryptionSchemeforMultipleReceivers,CryptologyePrintArchive.Report2009/345”公开了一种基于身份的发送者匿名的多接收者签密方法,该方法的主要步骤是:首先,用户(包括发送者和接收者)以自身的身份信息向可信第三方TTP(TrustedThirdParty)进行注册,TTP为每一个注册用户计算公钥和私钥,并将用户的公钥公开,将相应的私钥秘密地分发给各个用户;签密时,发送者随机选择若干已注册的用户身份信息并连同自身身份信息构成一个发送者身份信息集合,用自己的私钥、构造的发送者身份信息集合、授权接收者的身份信息以及所要发送的消息进行计算从而得到密文,并将密文进行广播;解密时,接收者收到密文后先查看密文中的授权接收者身份信息列表,如果自己不是授权接收者,则不进行解密;如果自己是授权接收者,则用自己的私钥验证发送者的身份并进行解密。但是该方案存在一些缺陷:首先,虽然发送者通过将自身身份信息隐藏在发送者身份信息集合中来实现发送者身份匿名的方法,但是这样的方法不能阻止攻击者使用对多个密文中的发送者身份信息集合采用交叉对比攻击和串谋攻击的方法来缩小对发送者身份的猜测范围,甚至当猜测范围足够小时可以直接得到发送者身份;其次,在该文献提出的方案中,密文里包含所有授权接收者的身份信息集合,即任何接收到该密文的接收者都可以知道此次消息的授权接收者的身份信息,从而不能保证接收者的身份匿名性(包括授权接收者对非授权接收者的身份匿名以及授权接收者之间的身份匿名)。

技术实现要素:
为了克服现有的多接收者签密方法安全性差的不足,本发明提供一种参与者身份匿名的多接收者签密方法。该方法的发送者在每次广播通信时都根据自己的公钥构造一个伪公钥来进行通信,由于攻击者通过公钥可以查询到其对应的发送者身份信息,所以伪公钥的使用可以将发送者的真实身份隐藏起来,从而可以实现发送者匿名;发送者在签密消息时采用拉格朗日插值技术将所有授权接收者的身份信息融合在一起作为签密密文的一部分,从而在签密密文中不直接暴露发送者的身份信息列表,进而可以实现授权接收者对非授权接收者的身份匿名;同时,授权接收者之间也不能通过签密密文元素之间的关系计算出对方的身份信息,从而可以实现授权接收者之间的身份匿名。防止了广播通信时潜在的参与者的身份信息泄露问题,保护了通信各方的隐私性,提高了多接收者签密方法的安全性。本发明解决其技术问题所采用的技术方案:一种参与者身份匿名的多接收者签密方法,其特点是包括以下步骤:(1)发送者的签密过程;发送者IDs对明文消息M的签密时,(1a)发送者IDs选取n个授权接收者ID1,ID2,...,IDn,建立授权接收者身份信息列表L={ID1,ID2,...,IDn},其中n为大于零的整数;(1b)发送者IDs选取随机数r∈Zq*,计算发送者的伪公钥Y=rQs,其中Qs为发送者IDs的公钥,Zq*为基于素数q的非零乘法群;(1c)对于每一个授权接收者IDi,其中i=1,2,…,n,发送者IDs计算数值xi=H2(IDi)和数值yi=αi(Qi+P1),然后,利用拉格朗日插值方法构造多项式函数fi(x)如下:其中,x为多项式函数fi(x)的自变量;接着,发送者IDs计算如下信息:其中,H2为密码单向哈希函数,Qi为授权接收者IDi的公钥,P1为发送者IDs从群G1中任意选取的元素,ai,j是多项式函数fi(x)的系数且i≠j,i=1,2,…,n,j=1,2,…,n,Ji′=ααi-1Ppub,αi为发送者IDs随机选择的正整数,(1d)构造集合T={T1,T2,...,Tn}和集合J={J1,J2,...,Jn};(1e)发送者IDs计算数值U=αP,并利用发送者IDs的伪公钥Y计算数值X=αY和密钥K=H3(e(Ppub,P1)α),其中,H3为密码单向哈希函数,e为双线性映射,Ppub为系统主公钥;(1f)发送者IDs利用对称加密算法Ek()对明文消息M进行加密,得到消息密文σ=EK(M);(1g)发送者IDs计算h=H4(σ,X,U,T,J),然后,计算签名信息W=(α+h)rDs,其中Ds为发送者IDs的私钥,H4为密码单向哈希函数。(1h)发送者IDs构造签密密文C=<Y,X,U,σ,W,T,J>,并将签密密文C进行广播,完成签密操作;(2)接收者的解密过程;接收者IDi,其中i=1,2,...,n,对签密密文C的解密时,(2a)接收者IDi首先根据签密密文C中的元素σ、X、U、T、J,计算h′=H4(σ,X,U,T,J),然后判断等式e(W,P)=e(X+h′Y,Ppub)是否成立,其中,W、X、Y为签密密文C中的元素,P和Ppub为系统公开参数,e为双线性映射;若等式不成立,则说明签密密文C是无效的或者接收者IDi不是授权接收者,这时,接收者IDi退出解密过程;若等式成立,则签密密文C是有效的并且接收者IDi是授权接收者,接着,接收者IDi继续执行以下过程;(2b)接收者IDi计算数值xi=H2(IDi),然后利用签密密文C中的元素T和J计算中间参数(2c)接收者IDi使用签密密文C中的元素U以及中间参数ηi和τi计算数值ω=e(τi,ηi)e(U,Di)-1,其中Di为接收者IDi的私钥,然后,计算密钥K=H3(ω);(2d)接收者IDi利用对称解密算法Dk()对消息密文σ进行解密得到明文消息M=DK(σ),完成解密过程。本发明的有益效果是:由于该方法的发送者在每次广播通信时都根据自己的公钥构造一个伪公钥来进行通信,由于攻击者通过公钥可以查询到其对应的发送者身份信息,所以伪公钥的使用可以将发送者的真实身份隐藏起来,从而实现了发送者匿名;发送者在签密消息时采用拉格朗日插值技术将所有授权接收者的身份信息融合在一起作为签密密文的一部分,从而在签密密文中不直接暴露发送者的身份信息列表,进而实现了授权接收者对非授权接收者的身份匿名;授权接收者之间也不能通过签密密文元素之间的关系计算出对方的身份信息,从而实现了授权接收者之间的身份匿名。防止了广播通信时潜在的参与者的身份信息泄露问题,保护了通信各方的隐私性,提高了多接收者签密方法的安全性。下面结合附图和实施例对本发明作详细说明。附图说明图1是本发明参与者身份匿名的多接收者签密方法的流程图。具体实施方式参照图1详细说明本发明。名词解释。TTP:可信第三方,常由密钥生成中心担当,负责产生发送者和接收者的私钥;z:可信第三方TTP选取的系统安全参数;q:可信第三方TTP选取的大素数,满足q>2z;G1:可信第三方TTP选取的q阶加法循环群;G2:可信第三方TTP选取的q阶乘法循环群;e:可信第三方TTP选取的G1和G2上的双线性映射,即e:G1×G1→G2;A→B:定义域A到值域B的映射;P:G1上的生成元,由可信第三方TTP随机选取;s:系统主密钥,由可信第三方TTP随机选取的;Zq*:基于素数q的非零乘法群;Ppub:系统主公钥,Ppub=sP;Hi:密码单向哈希函数,其中i=1,2,3,4;{0,1}*:任意长的“0”或“1”构成的串;M:明文消息;|M|:明文消息M的长度;Ek():对称加密算法,其中k为密钥;Ek(m):利用对称加密算法Ek()对消息m进行加密;Dk():对称解密算法,与对称加密算法Ek()相对应,其中k为密钥;Dk(c):利用对称解密算法Dk()对密文c进行解密;params:系统公开参数;ID:用户身份信息,用户包括发送者和接收者;IDs:发送者的身份信息;Qs:发送者IDs的公钥,Qs=H1(IDs);Ds:发送者IDs的私钥,Ds=sQs;Y:发送者IDs的伪公钥;n:授权接收者的个数;IDi:授权接收者i的身份信息,其中i=1,2,…,n;Qi:授权接收者IDi的公钥,Qi=H1(IDi),其中i=1,2,…,n;Di:授权接收者IDi的私钥,Di=sQi,其中i=1,2,…,n;L:授权接收者身份信息列表;P1:从群G1中任意选取的元素;fi(x):利用拉格朗日插值法构造的多项式函数,其中x为自变量,i=1,2,…,n;Amodq:表示A除以q后的余数;σ:消息密文;C:签密密文;<a,b,…,c>:由元素a,b,…,c构成的有顺序的元素集合;具体实施方法如下:步骤1,系统建立。密钥生成中心根据安全参数z选取一个大素数q,其中q>2z,构造一个q阶的加法循环群G1和一个q阶乘法循环群G2;构造一个双线性映射e:G1×G1→G2;从群G1上随机选取生成元P,并随机选取系统主密钥s∈Zq*,计算对应的系统主公钥Ppub=sP;构造4个密码单向哈希函数,记为:H1:{0,1}*→G1;H2:{0,1}*→Zq*;H3:G2→{0,1}|M|;H4:{0,1}|M|×G1n+3→Zq*;选取对称加密算法Ek()和对称解密算法Dk(),其中k为密钥;密钥生成中心构造并公布系统参数params,params构造方法为:params=<G1,G2,q,e,P,Ppub,H1,H2,H3,H4,Ek(),Dk()>同时,密钥生成中心安全保存系统主密钥s。步骤2,用户注册。用户向密钥生成中心提交身份信息ID∈{0,1}*,密钥生成中心根据系统参数params,系统主密钥s和用户身份信息ID∈{0,1}*计算用户的公钥QID=H1(ID),用户的私钥DID=sQID,对外公布该用户的公钥并将用户的私钥安全地发送给用户。步骤3,发送者签密。发送者IDs选取n个授权接收者ID1,ID2,...,IDn,其中n为整数且n大于0,构造授权接收者身份信息列表L={ID1,ID2,...,IDn};发送者IDs对明文消息M的签密过程如下:发送者IDs选取随机数r∈Zq*,计算发送者的伪公钥Y=rQs,其中Qs为发送者IDs的公钥;发送者IDs从群G1中随机选取一个的元素P1,对于每一个授权接收者IDi,i=1,2,...,n,发送者IDs选取随机数αi∈Zq*,计算数值xi=H2(IDi)和数值yi=αi(Qi+P1),利用拉格朗日插值法构造n-1次多项式函数fi(x):其中,x为多项式函数fi(x)的自变量;接着,发送者IDs计算如下信息:其中,H2为密码单向哈希函数,Qi为授权接收者IDi的公钥,ai,j是多项式函数fi(x)的系数且i≠j,i=1,2,…,n,j=1,2,…,n,Ji′=ααi-1Ppub,αi为发送者IDs随机选择的正整数;发送者IDs计算数值U=αP,并利用发送者IDs的伪公钥Y计算数值X=αY,然后,利用双线性对和密码单向哈希函数H3计算密钥K=H3(ω),其中ω=e(Ppub,P1)α;利用对称加密算法Ek()对明文消息M进行加密得到消息密文σ=EK(M);发送者IDs计算h=H4(σ,X,U,T,J),然后,计算签名信息W=(α+h)rDs,其中Ds为发送者IDs的私钥,H4为密码单向哈希函数;发送者IDs构造签密密文为C=<Y,X,U,σ,W,T,J>,并将签密密文C进行广播。步骤4,接收者解密。接收者IDi,其中i=1,2,...,n,对签密密文C的解密过程如下:首先根据签密密文C计算h′=H4(σ,X,U,T,J),然后根据签密密文C中的元素X、Y、W和系统公开参数P和Ppub判断等式e(W,P)=e(X+h'Y,Ppub)是否成立;若等式不成立,则说明签密密文C是无效的或者接收者IDi不是授权接收者,这时,接收者IDi退出解密过程,若成立,则签密密文C是有效的并且接收者IDi是授权接收者,继续执行以下过程;接收者IDi利用密码单向哈希函数H2计算数值xi=H2(IDi),利用数值xi和签密密文C中的集合T和J计算中间参数ηi=T1+xiT2+...+(xin-1modq)Tn和τi=J1+xiJ2+...+(xin-1modq)Jn;接收者IDi使用签密密文C中的元素U以及参数ηi和τi计算数值ω=e(τi,ηi)e(U,Di-1,)然后计算密钥K=H3(ω);最后利用系统参数中的解密算法Dk()对消息密文σ进行解密得到消息明文M=DK(σ),完成解密过程。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1