一种基于身份的分布式签名方法及系统技术方案

技术编号:15655165 阅读:155 留言:0更新日期:2017-06-17 13:10
本发明专利技术涉及一种基于身份的分布式签名方法及系统,该分布式签名方法包括:用户注册阶段和分布式签名阶段,用户注册阶段是首先客户端维护两对公私钥,一对固定公私钥,另一对是临时公私钥;服务器同样维护着两对固定公私钥,一对固定公私钥,另一对是签名活动发起后生成的临时公私钥对;客户端将用户身份和固定公钥发送给服务器,服务器利用自己的固定公私钥,计算出部分私钥以及相对应的部分公钥,将部分公钥公开;分布式签名阶段是服务器完成签名预处理工作并将代理签名发送给客户端,客户端最后进行签名授权工作,得到签名报文。通过本发明专利技术克服了密钥生成中心PKG不可信的缺点,同时若客户端的安全不能保证,也不会造成私钥的泄漏。

【技术实现步骤摘要】
一种基于身份的分布式签名方法及系统
本专利技术涉及信息密钥安全的
,尤其涉及了一种基于身份的分布式签名方法及系统。
技术介绍
随着科技的发展,移动终端所具备的功能越来越完善,与此同时,在移动终端上的各种安全及隐私问题也逐渐暴露出来。在移动终端上,采取数字签名等措施可以有效地解决相关信息安全问题,以保证数据的安全性以及可靠性。数字签名是现代信息安全的重要的组成部分,应用数字签名技术可以识别篡改、伪装,还可以有效地防止否认。安全的数字签名在电子公文、电子合同等应用中确定双方身份,是保证信息真实可信的基础。随着以手机为代表的移动终端的普及,数字签名在移动端的应用越来越广泛。研究应用于移动终端上的数字签名方案具有重要的意义。由于移动终端的计算资源有限且无线通信带宽受限,所以,基于证书的公钥密码体制不适合应用于上述环境。在基于身份的公钥密码体制中,可利用用户的身份信息直接生成用户的公钥,避免证书管理复杂和成本高的问题。目前基于身份的数字签名方案,大体流程如下,用户将身份标识eId和自身的公钥发送给密钥生成中心PKG,PKG利用用户的标识以及用户的私钥,结合自身的私钥完成部分私钥的生成工作,部分私钥中包含着用户的身份信息,且不可篡改。PKG同时计算出部分私钥对应的部分公钥,将部分公钥公开,部分私钥秘密发送给用户。用户用自身的私钥与接收到的部分私钥合成真正的签名私钥,而任何人都可以通过公开的部分公钥和用户标识计算出真正的验签公钥。而完整的签名私钥只有用户持有,PKG并不知情,即使PKG不可信也能保证私钥的安全。但是在目前基于身份的数字签名方案中,虽然解决了密钥生成中心PKG不可信的问题,但是仍存在一定的安全性隐患,如签名所需要的真实私钥会完整的存在客户端,如果客户端的安全不能保证,容易造成私钥的泄漏。
技术实现思路
本专利技术所要解决的技术问题是:目前的技术方案中密钥生成中心PKG存在安全性隐患,容易造成私钥的泄漏。为解决上面的技术问题,本专利技术提供了一种基于身份的分布式签名方法,该分布式签名方法包括如下步骤:S1,客户端根据用户身份标识eld生成一对与用户永久绑定的固定公私钥(PC,dC),客户端将固定公钥PC以及身份标识eld发送给服务器;S2,服务器根据固定公钥PC以及身份标识eld生成与用户绑定的的固定公私钥对(PB,dB);S3,服务器利用(eld、PB、PC)计算生成部分签名公钥p并发布,同时生成签名代理私钥dp;S4,客户端收到待签名消息M后,生成临时公私钥对(PTmp,dTmp),并将公钥PTmp发送给服务器;S5,服务器生成临时公私钥对(PSTmp,dSTmp),并计算签名消息摘要e;S6,服务器根据临时公钥PTmp、PSTmp、签名消息摘要e和签名代理私钥dp完成签名代理操作,并将签名代理结果发送给客户端;S7,客户端根据签名代理结果,利用固定私钥dC和临时私钥dTmp进行签名授权工作,得到完整的签名并将签名输出。进一步,客户端和服务端均支持SM2标准算法,SM2椭圆曲线参数为E(Fp)、G和n,椭圆曲线E为定义在有限素数域Fp上的椭圆曲线,G为椭圆曲线E上n阶基点。进一步,所述S3中还包括:计算生成部分公钥p,所述部分公钥p包括p1和p2,p1=PC+PB,根据部分公钥p1计算收敛因子h=SM3(p1x||eId||p1y),并根据收敛因子h计算代理签名私钥dp=h*dB,并计算部分公钥p2=[dp]·PC,公布部分公钥p1和p2,则实际公钥W,其中W=p1+p2+[h-1]·PB,·表示点乘,||表示拼接符,公式是表示p1x、eId与p1y三者拼接,SM3()表示杂凑算法。上述进一步的有益效果:任何人都可以利用用户的身份标识eld和公开的部分公钥p1和p2计算生成真正的验证公钥,并进行验签。进一步,所述S5中还包括:根据待签名消息M计算签名消息摘要e,服务器在生成临时公私钥对(PSTmp,dSTmp)后,服务器生成随机数K,以及利用随机数K计算点(x,y)=[k]*(PTmp+PSTmp),k∈[1,n-1],*表示模乘运算。进一步,所述S6中还包括:服务器根据临时公钥PTmp、签名消息摘要e和签名代理私钥dp生成签名代理结果(r,sproxy1,sproxy2),r=(x+e)modn,sproxy1=(1+dp)-1*k,sproxy2=(1+dp)-1*(r+k*dSTmp),mod表示求模运算。进一步,所述S7中包括:生成签名s,计算s=(1+dc)-1*dTmp*sproxy1+(1+dc)-1*sproxy2-r,客户端将(r,s)作为完整的签名,并对完整的签名进行验证,若签名验证成功,则将报文发送给签名业务中心,并将签名输出。进一步,该方法还包括:当完成签名输出后,客户端的临时公私钥对(PTmp,dTmp)和服务器生成的临时公私钥对(PSTmp,dSTmp)自动销毁。本专利技术的有益效果:克服了密钥生成中心PKG不可信的缺点,同时若客户端的安全不能保证,也不会造成私钥的泄漏,大大提高了用户的私钥安全性,另外,无需复杂的证书管理操作,可以利用用户标识eId进行签名和验签,签名私钥不会以明文的形式出现在任何过程中,保证绝对的安全,分布式签名要求双方必须同时进行签名,任何一方不能单独完成签名,安全性进一步提升,可以有效应用于具备唯一身份标识的应用系统中,无需接入CA系统、无需引入额外硬件,就可以实现应用与客户之间安全可靠的数字签名业务,协议简单方便,只需要两次交互就能完成完整的签名,实现简单方便。本专利技术还涉及一种基于身份的分布式签名系统,该系统包括:客户端,服务器;客户端生成固定公私钥对(PC,dC),将公钥PC发送给服务器;服务器接收公钥PC后生成固定公私钥对(PB,dB),服务器利用(eld、PB、PC)计算生成部分签名公钥p并发布,同时生成签名代理私钥dp;客户端收到待签名消息M后,生成临时公私钥对(PTmp,dTmp),并将公钥PTmp发送给服务器;服务器生成临时公私钥对(PSTmp,dSTmp),并计算签名消息摘要e;服务器根据(PTmp、e、dp)完成签名代理操作,并将签名代理结果发送给客户端;客户端根据签名代理结果,利用(dC、dTmp)进行签名授权工作,得到完整的签名并将签名输出。进一步,所述服务器还包括:计算生成部分公钥p,所述部分公钥p包括p1和p2,p1=PC+PB,并且根据部分公钥p1计算收敛因子h=SM3(p1x||eId||p1y),并根据收敛因子h计算代理签名私钥dp=h*dB,并计算部分公钥p2=[dp]·PC,公布部分公钥p1和p2,则实际公钥W,其中W=p1+p2+[h-1]·PB,·表示点乘,||表示拼接符,公式是表示p1x、eId与p1y三者拼接,SM3()表示杂凑算法。进一步,所述服务器还包括:根据待签名消息M计算签名消息摘要e,服务器在生成临时公私钥对(PSTmp,dSTmp)后,服务器生成随机数K,以及利用随机数K计算点(x,y)=[k]*(PTmp+PSTmp),k∈[1,n-1],*表示模乘运算。进一步,所述服务器还包括:服务器根据临时公钥PTmp、签名消息摘要e和签名代理私钥dp生成签名代理结果(r,sproxy1,sproxy2本文档来自技高网
...
一种基于身份的分布式签名方法及系统

【技术保护点】
一种基于身份的分布式签名方法,其特征在于,该分布式签名方法包括如下步骤:S1,客户端根据用户身份标识eld生成一对与用户永久绑定的固定公私钥(P

【技术特征摘要】
1.一种基于身份的分布式签名方法,其特征在于,该分布式签名方法包括如下步骤:S1,客户端根据用户身份标识eld生成一对与用户永久绑定的固定公私钥(PC,dC),客户端将固定公钥PC以及身份标识eld发送给服务器;S2,服务器根据固定公钥PC以及身份标识eld生成与用户绑定的的固定公私钥对(PB,dB);S3,服务器利用(eld、PB、PC)计算生成部分签名公钥p并发布,同时生成签名代理私钥dp;S4,客户端收到待签名消息M后,生成临时公私钥对(PTmp,dTmp),并将公钥PTmp发送给服务器;S5,服务器生成临时公私钥对(PSTmp,dSTmp),并计算签名消息摘要e;S6,服务器根据临时公钥PTmp、PSTmp、签名消息摘要e和签名代理私钥dp完成签名代理操作,并将签名代理结果发送给客户端;S7,客户端根据签名代理结果,利用固定私钥dC和临时私钥dTmp进行签名授权工作,得到完整的签名并将签名输出。2.根据权利要求1所述的一种基于身份的分布式签名方法,其特征在于,所述S3中还包括:计算生成部分公钥p,所述部分公钥p包括p1和p2,p1=PC+PB,根据部分公钥p1计算收敛因子h=SM3(p1x||eId||p1y),并根据收敛因子h计算代理签名私钥dp=h*dB,并计算部分公钥p2=[dp]·PC,公布部分公钥p1和p2,则实际公钥W,其中W=p1+p2+[h-1]·PB,·表示点乘,||表示拼接符,公式是表示p1x、eId与p1y三者拼接,SM3()表示杂凑算法。3.根据权利要求2所述的一种基于身份的分布式签名方法,其特征在于,所述S5中还包括:根据待签名消息M计算签名消息摘要e,服务器在生成临时公私钥对(PSTmp,dSTmp)后,服务器生成随机数K,以及利用随机数K计算点(x,y)=[k]*(PTmp+PSTmp),k∈[1,n-1],*表示模乘运算。4.根据权利要求3所述的一种基于身份的分布式签名方法,其特征在于,所述S6中还包括:服务器根据临时公钥PTmp、签名消息摘要e和签名代理私钥dp生成签名代理结果(r,sproxy1,sproxy2),r=(x+e)modn,sproxy1=(1+dp)-1*k,sproxy2=(1+dp)-1*(r+k*dSTmp),mod表示求模运算。5.根据权利要求4所述的一种基于身份的分布式签名方法,其特征在于,所述S7中包括:生成签名s,计算s=(1+dc)-1*dTmp*sproxy1+(1+dc)-1*sproxy2-r,客户端将(r,s)作为完...

【专利技术属性】
技术研发人员:杨国强刘会议
申请(专利权)人:北京三未信安科技发展有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1