当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于SM9数字签名的盲签名生成方法及系统技术方案

技术编号:18975010 阅读:536 留言:0更新日期:2018-09-19 04:38
本发明专利技术公开了一种基于SM9数字签名的盲签名生成方法及系统,该方法包括以下步骤:1)由密钥生成中心KGC产生签名者Signer的签名私钥DSA;2)签名者Signer计算第一个临时变量w,并将w发送给User;3)用户User收到w后,计算第二个临时变量w′,和待签名消息M的哈希值h),并计算第三个临时变量h′,最后将h′发送给签名者Signer;4)签名者Signer收到h′后,计算出临时签名S′,并将S′发送给User;5)用户User收到s′后计算出签名值S,并输出签名(h,S)。本发明专利技术具有实现复杂度低、安全性高、易验证等特点,产生签名的过程必须有Signer和User两方同时参与,生成SM9盲签名的过程不会向签名者泄漏被签名的消息,保证了消息的安全性,提高了SM9数字签名生成的公平性。

【技术实现步骤摘要】
一种基于SM9数字签名的盲签名生成方法及系统
本专利技术涉及信息安全技术,尤其涉及一种基于SM9数字签名的盲签名生成方法及系统。
技术介绍
数字签名是伴随着信息网络技术的发展而出现的一种安全保障技术,目的就是通过技术手段实现传统的纸面签字或者盖章的功能,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。数字签名是公钥密码体系中重要的一部分,在很多场合有着重要的作用。在很多场合,要求签名者对消息进行签名的时候,并不知道所签名的内容,而且签名过后对自己的签名也不能进行跟踪。尤其在各种不方便透露真名的场合,例如,投票和选举、电子商务、电子现金系统、移动支付等。盲签名恰好能满则这一需求,它的优点在于它比一般数字签名更能保护用户的隐私,因为对于签名者来说在签名的过程中对用户提供的消息是完全未知的,而且,签名以后也无法追踪自己所签的名。SM9标识密码算法是一种基于双线性对的标识密码算法,它可以把用户的身份标识用以生成用户的公、私密钥对。SM9的应用与管理不需要数字证书、证书库或密钥库,主要用于数字签名、数据加密、密钥交换以及身份认证等。该算法于2015年发布为国家密码行业标准(GM/T0044-2016)。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种基于SM9数字签名的盲签名生成方法及系统。本专利技术解决其技术问题所采用的技术方案是:一种基于SM9数字签名的盲签名生成方法,包括以下步骤:1)由密钥生成中心KGC产生系统参数和签名者Signer的签名私钥DSA;2)签名者Signer在集合{1,2,…,N-1}中选择第一个随机数r,计算第一个临时变量w=gr,并将w发送给User;其中,N为循环群和的阶,g=e(P1,Ppub-s),e为双线性对运算,P1为的生成元,Ppub-s为系统主公钥;3)用户User收到w后,在集合{1,2,…,N-1}中选择两个随机数α,β,计算第二个临时变量w′=wαgβ,和待签名消息M的哈希值h=H2(M||w′,N),并计算第三个临时变量h′=α-1(h-β)modN,最后将h′发送给签名者Signer;4)签名者Signer收到h′后,计算出临时签名S′=[r-h′]DSA,并将S′发送给User;5)用户User收到s′后计算出签名值S=[α]S′,并输出签名(h,S)按上述方案,所述步骤1)中,密钥生成中心KGC产生系统参数和签名者Signer的签名私钥DSA的过程如下:1.1)KGC随机选择ks∈[0,N-1]作为签名主私钥,计算Ppub-s=[ks]P2作为签名主公钥;密钥生成中心秘密保存ks,公开Ppub-s;密钥生成中心选择并公开用一个字节表示的签名密钥生成函数识别符hid;其中,P2为的生成元;1.2)签名者A的标识为IDA,KGC为签名者A的产生签名私钥DSA,具体如下:KGC首先计算临时变量t1=H1(IDA||hid,N)+ks,若t1=0则返回步骤1.1)重新产生签名主私钥,计算和公开签名主公钥,并更新已有用户的签名私钥;否则计算最后计算DSA=[t2]P1。一种基于SM9数字签名的盲签名生成系统,包括:签名者签名私钥生成模块,用于通过密钥生成中心KGC产生系统参数和签名者Signer的签名私钥DSA;签名者变量生成模块,用于签名者Signer在集合{1,2,…,N-1}中选择第一个随机数r,计算第一个临时变量w=gr,并将w发送给User;其中,N为循环群和的阶,g=e(P1,Ppub-s),e为双线性对运算,P1为的生成元,Ppub-s为系统主公钥;用户变量生成模块,用于用户User收到w后,在集合{1,2,…,N-1}中选择两个随机数α,β,计算第二个临时变量w′=wαgβ,和待签名消息M的哈希值h=H2(M||w′,N),并计算第三个临时变量h′=α-1(h-β)modN,最后将h′发送给签名者Signer;临时签名生成模块,用于签名者Signer收到h′后,根据公式:S′=[r-h′]DSA计算出临时签名,并将S′发送给User;盲签名生成模块,用于用户User收到s′后计算出签名值S=[α]S′,并输出签名(h,S)。按上述方案,签名者签名私钥生成模块中,密钥生成中心KGC产生签名者Signer的签名私钥DSA的过程如下:1)KGC随机选择ks∈[0,N-1]作为签名主私钥,计算Ppub-s=[ks]P2作为签名主公钥;密钥生成中心秘密保存ks,公开Ppub-s;密钥生成中心选择并公开用一个字节表示的签名密钥生成函数识别符hid;其中,P2为的生成元;2)签名者的标识为IDA,KGC为签名者产生签名私钥DSA,具体如下:KGC首先计算临时变量t1=H1(IDA||hid,N)+ks,若t1=0则返回步骤1.1)重新产生签名主私钥,计算和公开签名主公钥;否则计算最后计算DSA=[t2]P1。本专利技术产生的有益效果是:本专利技术设计了一种SM9盲签名生成方案,现有的大多数盲签名方案是基于离散对数的,安全性和效率都不高,而SM9数字签名是基于椭圆曲线的算法,具有更高的安全性和高效性。本专利技术方案由签名者Signer和用户User共同执行,既能保证签名的正确性,又能保证签名消息的隐私性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术实施例的方法流程图;具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术提供的基于SM9数字签名的盲签名生成方法需要签名的签名者Signer和用户User共同产生SM2盲签名,本实施例中的符号及定义如下:KGC:密钥生成中心Signer,User:通信双方。阶为素数N的加法循环群。阶为素数N的乘法循环群。e:从到的双线性对。gu:乘法群中g的u次幂。H1(·),H2(·):由{0,1}*到的密码杂凑函数。IDA:签名者的标识。DSA:签名者的签名密钥。modN:模N运算。例如27mod5≡2。N:循环群和的阶,且N>2191为素数。P1,P2:分别是群和的生成元。[u]P:加法群中元素P的u倍。x||y:x与y的拼接,其中x和y是比特串或字节串。[x,y]:不小于x且不大于y的整数的集合。如图1,一种基于SM9数字签名的盲签名生成方法,包括以下步骤:1)由密钥生成中心KGC产生系统参数和签名者Signer的签名私钥DSA;步骤1)中,密钥生成中心KGC产生系统参数和签名者Signer的签名私钥DSA的过程如下:1.1)KGC随机选择ks∈[0,N-1]作为签名主私钥,计算Ppub-s=[ks]P2作为签名主公钥;密钥生成中心秘密保存ks,公开Ppub-s;密钥生成中心选择并公开用一个字节表示的签名密钥生成函数识别符hid;1.2)签名者的标识为IDA,KGC为签名者产生签名私钥DSA,具体如下:KGC首先计算临时变量t1=H1(IDA||hid,N)+ks,若t1=0则返回步骤1.1)重新产生签名主私钥,计算和公开签名主公钥,并更新已有用户本文档来自技高网...

【技术保护点】
1.一种基于SM9数字签名的盲签名生成方法,其特征在于,包括以下步骤:1)由密钥生成中心KGC产生签名者Signer的签名私钥DSA;2)签名者Signer在集合{1,2,…,N‑1}中选择第一个随机数r,计算第一个临时变量w=gr,并将w发送给User;其中,N为循环群

【技术特征摘要】
1.一种基于SM9数字签名的盲签名生成方法,其特征在于,包括以下步骤:1)由密钥生成中心KGC产生签名者Signer的签名私钥DSA;2)签名者Signer在集合{1,2,…,N-1}中选择第一个随机数r,计算第一个临时变量w=gr,并将w发送给User;其中,N为循环群和的阶,g=e(P1,Ppub-s),e为双线性对运算,P1为的生成元,Ppub-s为系统主公钥;3)用户User收到w后,在集合{1,2,…,N-1}中选择两个随机数α,β,计算第二个临时变量w′=wαgβ,和待签名消息M的哈希值h=H2(M||w′,N),并计算第三个临时变量h′=α-1(h-β)modN,最后将h′发送给签名者Signer;4)签名者Signer收到h′后,计算出临时签名S′=[r-h′]DSA,并将S′发送给User;5)用户User收到s′后计算出签名值S=[α]S′,并输出签名(h,S)。2.根据权利要求1所述的盲签名生成方法,其特征在于,所述步骤1)中,密钥生成中心KGC产生签名者Signer的签名私钥DSA的过程如下:1.1)KGC随机选择ks∈[0,N-1]作为签名主私钥,计算Ppub-s=[ks]P2作为签名主公钥;密钥生成中心秘密保存ks,公开Ppub-s;密钥生成中心选择并公开用一个字节表示的签名密钥生成函数识别符hid;其中,P2为的生成元;1.2)签名者的标识为IDA,KGC为签名者产生签名私钥DSA,具体如下:KGC首先计算临时变量t1=H1(IDA||hid,N)+ks,若t1=0则返回步骤1.1)重新产生签名主私钥,计算和公开签名主公钥;否则计算最后计算DSA=[t2]P1。3.一种基于SM9数字签名的盲签名生成系统,其特征在...

【专利技术属性】
技术研发人员:何德彪张语荻张宇波陈泌文
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

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

1