一种两方分布式基于身份的RSA数字签名生成方法与系统与流程

文档序号:14124395阅读:693来源:国知局

本发明属于信息安全领域,特别涉及基于两方分布式rsa数字签名生成方法与系统。



背景技术:

随着通信技术的快速发展和普及,计算机网络的应用领域越来越广泛,已经涉及到金融、商务、军事、外交等诸多领域。网络技术以及各种信息技术的应用给我们的生活带来了极大的便利,它使我们不再受时间和空间的限制,可以在任何时间任何地点与任何一个角落的个人或组织进行信息交流。但同时如何确保信息的安全性是一个亟待解决的问题。

数字签名是解决网络通信中信息安全的一种有效方法,用来代替手写签名或印章。它可以实现电子文件的辨认和验证,确保数据的完整性、私有性和不可抵赖性。目前,数字签名技术已经应用于电子邮件、电子政务和电子资金转账等各社会领域。传统的数字签名体制中,一旦签名密钥泄露,则攻击者可以攻破整个签名体制。为了提高签名体制的安全性,门限签名方案应运而生。在门限签名方案中,将签名密钥分割成n份,分别发送给n个参与者保管,其中每一份称为一个份额。只有当t个或者多于t个参与者同时出示他们所持有的份额时才能重构签名密钥,生成有效的签名,而少于t个参与者既使同时出示他们所持有的份额,也不能产生有效的签名。这样,攻击者至少获得t个签名子密钥才能产生有效签名。但是在门限签名方案中,当持有签名密钥的参与方或者持有份额的参与方不诚实,则他们可能欺骗其他参与方,威胁了方案的安全性和公平性。特别对只有两方参与的情况下,某一方恢复出签名密钥,则可以独立生成有效签名,这将造成直接的利益损失。

第一个基于身份的rsa数字签名方案由shamir提出(参见《identity-basedcryptosystemsandsignatureschemes》crypto.1984,84:47-53),此算法中,用户的验证公钥由用户身份计算而来,用户的签名密钥则由可信机构生成。基于秘密共享的实现方法对签名密钥的保护较弱,存在密钥泄露的隐患。

本发明设计了一种两方分布式基于身份的rsa数字签名方案,在生成数字签名的过程中,两方必须共同参与才能生成有效的签名,并且每一个参与者都无法获得其他参与者的签名子密钥,从而保证了签名密钥的安全性。



技术实现要素:

本发明的目的是提出两个通信方各自拥有一个部分签名密钥,并且通信双方都无法获得对方签名密钥的任何信息,只有当双方协作才能完成对消息的有效签名。

针对本发明的目的,本发明提出了一个两方分布式基于身份的rsa数字签名生成方案与系统,下面给出具体描述。

一种两方分布式基于身份的rsa数字签名生成方法,其特征在于,包括:

生成签名密钥步骤:密钥生成中心分别为参与数字签名的通信双方a,b生成部分签名密钥收到部分签名密钥后,b首先选择两个随机数k1,k2,计算并将μ1和μ2发送给a。

生成分布式数字签名步骤:a选择两个随机数k3,k4,计算第一个部分签名h,并将发送给b。b利用自己的部分签名密钥计算s1,s2并发送给a。a收到s1,s2后,利用自己的部分签名密钥计算第二个部分签名在签名验证通过后,a公布完整的rsa数字签名(h,s)

在上述的一种两方分布式基于身份的rsa数字签名生成方法,所述生成签名密钥步骤具体包括:

步骤2.1、密钥生成中心产生两个固定长度的大素数p,q,计算n=pq,

步骤2.2、生成rsa的公私钥对(e,d),满足条件其中e作为公钥,d作为私钥;

步骤2.3、选择一个随机数d1,计算d2使得满足条件

步骤2.4、计算作为第一部分签名密钥,计算并设置第二部分签名密钥为其中为d1模的逆元,即

步骤2.5、用户把分别存储到设备a和b中。

在上述的一种两方分布式基于身份的rsa数字签名生成方法,生成分布式数字签名步骤具体包括:

步骤3.1、b选择第一个随机数k1和第二个随机数k2,计算第一个临时部分公钥和第二个临时部分公钥并将μ1和μ2发送给a。

步骤3.2、a收到μ1和μ2后,选择第三个随机数k3和第四个随机数k4,计算目标临时公钥并通过μ计算第一个部分签名h=h2(μ,m,id)。a计算第一个临时变量若h′=0则重新选择k3,k4,否则a将h′发送给b。

步骤3.3、b收到h′后,计算第二个临时变量s1=k1·d2和第三个临时变量s2=(h′+k2)·d2,并将s1和s2发送给a。

步骤3.4、a收到s1和s2后,计算第二个部分签名使用签名验证算法验证签名的正确性,若验证通过则输出签名(h,s),否则终止协议。

一种两方分布式基于身份的rsa数字签名生成系统,其特征在于,包括:

密钥生成中心:为参与数字签名的通信双方a,b生成部分签名密钥

生成签名密钥单元:密钥生成中心通过生成签名密钥单元将部分签名密钥发送给b,b首先选择两个随机数k1,k2,计算并将μ1和μ2发送给a。

生成分布式数字签名单元:a通过生成分布式数字签名单元选择两个随机数k3,k4,计算第一个部分签名h,并将发送给b。b利用自己的部分签名密钥计算s1,s2并发送给a。a收到s1,s2后,利用自己的部分签名密钥计算第二个部分签名在签名验证通过后,a公布完整的rsa数字签名(h,s)

在上述的一种两方分布式基于身份的rsa数字签名生成系统,所述生成签名密钥单元进行生成签名密钥的具体方法包括:

步骤2.1、密钥生成中心产生两个固定长度的大素数p,q,计算n=pq,

步骤2.2、生成rsa的公私钥对(e,d),满足条件其中e作为公钥,d作为私钥;

步骤2.3、选择一个随机数d1,计算d2使得满足条件

步骤2.4、计算作为第一部分签名密钥,计算并设置第二部分签名密钥为其中为d1模的逆元,即

步骤2.5、用户把分别存储到设备a和b中。

在上述的一种两方分布式基于身份的rsa数字签名生成系统,生成分布式数字签名单元进行生成分布式数字签名的具体方法包括:

步骤3.1、b选择第一个随机数k1和第二个随机数k2,计算第一个临时部分公钥和第二个临时部分公钥并将μ1和μ2发送给a。

步骤3.2、a收到μ1和μ2后,选择第三个随机数k3和第四个随机数k4,计算目标临时公钥并通过μ计算第一个部分签名h=h2(μ,m,id)。a计算第一个临时变量若h′=0则重新选择k3,k4,否则a将h′发送给b。

步骤3.3、b收到h′后,计算第二个临时变量s1=k1·d2和第三个临时变量s2=(h′+k2)·d2,并将s1和s2发送给a。

步骤3.4、a收到s1和s2后,计算第二个部分签名使用签名验证算法验证签名的正确性,若验证通过则输出签名(h,s),否则终止协议。

本发明与现有技术相比具有如下优点和有益效果1、目前现有的门限秘密共享方案,是将签名密钥分割成多份,并且分发给不同的参与者保管。但是在密钥重构过程中,某个参与者可能不诚实,没有出示所持有的真实份额,从而降低了方案的公平性。2、现有的门限秘密共享方案,签名密钥可能被某一方恢复,造成签名密钥的泄露,从而降低了签名方案的安全性。3、本发明实现了两方分布式基于身份的rsa数字签名,要求通信双方都不能获得对方部分签名密钥的任何信息,必须通信双方共同参与才能生成有效的签名,这样提高了签名方案的安全性和公平性。本发明适用于通信双方各自持有部分签名密钥,双方在均不泄露自己签名密钥的情况下共同参与完成rsa数字签名。在产生签名的过程中,通信双方只有联合才能生成有效的数字签名,任何一方都不能得到完整的签名密钥,从而不能伪造签名。这既提高了签名密钥的安全性,又保证了签名方案的公平性。

附图说明

图1是本发明的数字签名生成算法流程图。

具体实施方式

下面结合实施例对本发明进行进一步阐述。

一,首先进行符号及定义的解释。

a,b:通信双方。

gcd(a,b):整数a与整数b的最大公因子,若gcd(a,b)=1,则称a与b互素。

1,2,…,n中与n互素的数的个数。

gu:g的u次幂,即其中u是正整数。

h1(·),h2(·):由{0,1}*的密码杂凑函数。

modn:模n运算。

ab:整数a,b相乘。

二、首先是通信双方签名密钥产生算法。

在本发明中,密钥生成中心(kgc)是一个可信第三方,主要负责生成系统参数以及签名密钥。给定用户的身份id,为产生通信双方的部分签名密钥,kgc操作如下:

产生两个固定长度的大素数p,q,计算n=pq,

生成rsa的公私钥对(e,d),满足条件其中e作为公钥,d作为私钥;

选择一个随机数d1,计算d2使得满足条件

计算作为第一部分签名密钥,计算并设置第二部分签名密钥为其中为d1模的逆元,即

用户把分别存储到设备a和b中。

三、其次是分布式数字签名生成算法。

在本发明中,消息m的数字签名由通信双方a和b共同完成,具体操作如下:

b选择第一个随机数k1和第二个随机数k2,计算第一个临时部分公钥和第二个临时部分公钥并将μ1和μ2发送给a。

a收到μ1和μ2后,选择第三个随机数k3和第四个随机数k4,计算目标临时公钥并通过μ计算第一个部分签名h=h2(μ,m,id)。a计算第一个临时变量若h′=0则重新选择k3,k4,否则a将h′发送给b。

b收到h′后,计算第二个临时变量s1=k1·d2和第三个临时变量s2=(h′+k2)·d2,并将s1和s2发送给a。

a收到s1和s2后,计算第二个部分签名使用签名验证算法验证签名的正确性,若验证通过则输出签名(h,s),否则终止协议。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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