首页 >> 安全 >> 技术交流 >> 正文
 
通用可组合安全的门限签名协议
http://www.cww.net.cn   2009年7月2日 15:41    通信学报    

    子签名生成。接收到S的输入(ThSign,sid,m)后,计算σ=PS(m)并验证PV(m,σ)=1。如果等式成立,把消息(ThSignature,sid,m,σ)输出给S并记录(m,σ,PV);否则,输出error给S并停止。

    子签名验证。接收到参与者V的输入(ThVerify,sid,m,σ,PV)后,把(ThVerified,sid,m,σ,f)输出给V,其中f按下面的规则计算:

    若PV=PV’,存在记录(m,σ,PV)且PV(m,σ)=1,令f=1。确保了若PV’是注册的公钥,σ是合法的子签名,则一定通过验证。

    若PV=PV’,不存在记录(m,σ,PV),令f=0。确保了若PV是注册的公钥,σ不是合法的子签名,即这是个成功的伪造子签名,则一定不通过验证。

    若PV≠PV’,令f=1。确保了如果是被攻破的用户,则他提供的子签名一定通过验证。

    子签名联合。接收到参与者C的输入(Combine,sid,m,σ1,PV1,…,σt,PVt)后,若对于每个σi都存在记录(m,σi,PVi),则计算δ=C(σ1,…,σt),并验证PV(m,σ)=1。如果等式成立,把(Combine,m,σ,V)输出给C并记录(m,δ,V);否则输出error给C并停止。

    门限签名验证。接收到参与者V的输入(Verify,sid,m,δ,V),把(Verified,sid,m,δ,g)输出给V,其中g按照下面的规则计算。

    若V=V’,存在记录(m,δ,V),且V(m,δ)=1,令g=1。确保了若V’是注册的公钥,δ是合法的门限签名,则一定通过验证。

    若V=V’,不存在记录(m,δ,V),令g=0。确保了若V’是注册的公钥,δ不是合法的门限签名,即这是个成功的伪造门限签名,则一定不通过验证

    若V≠V’,令g=0。确保了就算是被攻破的用户,他也不能注册一个用户集合的门限签名。

    简单来说,门限签名理想功能FThSign提供一个“注册机”,使得签名者S能注册子签名和门限签名。任何提供了正确验证密钥的用户能检验子签名或门限签名是否已经被注册。它有5类输入,这些输入对应5个基本模块:密钥生成、子签名生成、子签名验证、子签名联合、门限签名验证。

    3.2与标准概念下安全性的等价

    Almansa等人定义的FThSign06并没有证明与标准概念下安全性的等价,他只是证明了等价的充分性,即证明了若协议π是不可伪造的,则协议π安全实现了FThSign06。而且,他证明时所采用的也是签名方案的安全性,并没有包含门限签名中的重要性质——强壮性。本文对于标准概念的安全的定义采用Shoup的定义:一个安全的门限签名协议Σ是指这个签名协议具有强壮性和不可伪造性。

    定理1门限签名协议π是强壮的和不可伪造的,当且仅当,π安全实现了门限功能FThSign。

    证明首先证充分性,即需要证明若π安全实现了FThSign,则π是强壮的和不合伪造的。假设π不具有强壮性或不具有不可伪造性,就能构造环境机Z和实际攻击者A,对于任何理想攻击者S,Z都能分辨它是与A和π交互,还是与S和FThSign交互。

    1)假设π不具有伪造性,即存在π的一个成功的伪造者B。Z一开始就激活B,并输出从签名者S得到的子签名验证函数PV。一旦S请求签名消息m,Z用输入(Thsign,sid,m)激活S,并把S输出发给B。当B产生伪造的子签名(m,σ,PV)时,Z执行如下:若消息m之前已经签过,Z输出0并停止;否则Z用输入(ThVerify,sid,m,σ,PV)激活验证者V,Z的输出是验证结果。很明显,当Z与A和π交互时,因为B能伪造一个子签名,所以Z能以不可忽略的概率输出1。但是,当Z与S和FThSign交互时,Z不可能输出1。

    2)假设π不具有强壮性。存在π的某个被攻破的签名者S’能参与门限签名的生成。环境机Z用输入(ThSign,sid,m)激活S’,因为他是被攻击者控制,所有的签名都能通过子消息的验证。然后S’用伪造的签名(m,σ,PV)参与子签名的联合。从这里可以看出,当Z与A和π交互时,因为S’能参与联合签名的生成过程,所以Z能以某个不可忽略的概率输出1。但是,当Z与S和FThSign交互时,FThSign并没有记录被攻破的用户S’的记录(m,σ),Z是不可能输出1的。

    接下来证充分性。即需要证明若π是强壮的和不可伪造的,则π安全实现FThSign。同样采用反证法。假设π不能安全实现FThSign,是存在Z能分辨它是与D(dummyadversary,完全按照Z的指令运行)和π交互,还是与S和FThSign交互。即使π具有强壮性,仍然能构造一个攻击者B伪造签名。B可以调用环境机Z,当Z用输入(KeyGen,sid,m)激活参与者S时,B把V传输给Z。当Z用输入(ThSign,sid,m)激活S时,B通过他的子签名生成算法计算出m的子签名σ。当Z用输入(ThVerify,sid,m,σ,PV)激活参与者P时,B首先检查(m,σ)是否是伪造的子签名,若是伪造的,则B输出(m,σ)并停止,否则继续模拟。

    当Z用输入(Combine,sid,m,σ1,PV1,…,σt,PVt)激活联合者C时,挑战者B用子签名联合算法计算出m的签名并交给Z。当Z用输入(Verify,sid,m,δ,V)激活参与者P时,B首先检查(m,δ)是否是伪造的门限签名,若是伪造的,则B输出(m,δ)并停止。接下来分析B成功的概率。首先用事件X代表B成功伪造了一个子签名或门限签名。很显然,只要事件X不发生,则Z不能分辨它是与运行D的协议π交互,还是与运行S的理想功能FThSign交互。但是已经假设Z能以一个不可忽略的概率分辨它是与运行D的协议π交互,还是与运行S的理想功能FThSign交互。那么很显然事件X发生的概率也是不可忽略的。

    4实现理想功能FThSign

    4.1UC安全的门限签名协议

    已经证明如果Shoup方案中散列函数H’(·)是一个随机预言机,则Shoup方案是一个安全的门限签名方案(即不可伪造的和强壮的)。该方案的安全性基于标准RSA签名方案的安全性。

    用Shoup方案来实现门限理想功能FThSign。首先把它转变成如下的协议ρ。

    密钥生成。接收到输入(KeyGen,sid),验证sid=(S,sid’),如果不成立,则忽略该请求。否则,签名者S调用Dealer以得到他的密钥SKi,和公钥VKi。输出(VerificationAlgorithm,sid,VKi,e)。

    Dealer的执行如下:随机选择2个大素数p,q,其中p=2p’+1,q=2q’+1,令N=pq,M=p’q’。选择RSA指数e,并计算d,使得ed≡1mod M。选择Zm上的t维多项式函数aixi,和验证密钥VK=v,计算Ski=f(i) mod M, VKi=vski mod M。

    子签名生成。接收到输入(ThSign,sid,m)后,令x=H(m),签名者S计算他的子签名σi=x2ΔSKimodN,并计算这个子签名的证明(z,c),其中r是随机数,z=Skic+r。输出(Thsignature,sid,m,σi)。

    子签名验证。接收到输入(ThVerify,sid,m,σ,(VKi,z,c))后,验证者V验证,如果成立,输出(ThVerified,sid,m,σ,1),否则输出(ThVerified,sid,m,σ,0)。

[1]  [2]  [3]  
相关新闻
编 辑:石美君    联系电话:010-67110006-818
[收藏] [打印] [进入论坛] [推荐给朋友]
文章评论评论()】
昵称:  验证码:
 
重要新闻推荐
每日新闻排行
企业黄页
会议活动