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

一种GOST数字签名生成方法及系统技术方案

技术编号:17253832 阅读:22 留言:0更新日期:2018-02-11 14:20
本发明专利技术涉及一种GOST数字签名分布式生成方法及系统,通过以下技术方案实现:P1和P2两方参加算法生成,P1和P2在集合{1,2,...,q‑1}中随机选取d和k,P1计算Q1=d1P并发给P2,P2同时生成Q2=d2P发给P1,P1和P2可以同时计算出验证公钥Q=d1d2P。P1计算R1=k1P,使用同态加密方法加密d1和k1发送给P2,P2计算R2=k2P返回给P1。P2通过同态加密的性质,可以计算出rd1d2+ek1k2的密文并将此密文发送至P1,P1解密该密文,并计算签名的第一部分r,在签名验证通过后公布完整的签名(r,s)。本发明专利技术复杂度低、安全性高、易验证。

【技术实现步骤摘要】
一种GOST数字签名生成方法及系统
本专利技术属于信息安全
,特别是基于两方共同产生GOST数字签名生成方法及系统。
技术介绍
数字签名是伴随着信息网络技术的发展而出现的一种安全保障技术,目的就是通过技术手段实现传统的纸面签字或者盖章的功能,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。数字签名是公钥密码体系中重要的一部分,在很多场合有着重要的作用。GOST标准最初是由苏联政府制定的,作为其国家标准化战略的一部分。苏联解体后,GOST标准获得了区域标准的新地位。它们现在由独立国家联合体颁发的标准化组织欧洲标准化计量和认证委员会(EASC)管理。目前,GOST标准的收集包括12个国家的合格评定活动中广泛使用的2万多种标题。作为独立国家联合体(CIS)的政府和私营部门认证计划的监管基础,GOST标准涵盖能源,石油和天然气,环境保护,建筑,运输,电信,采矿,食品加工等行业。俄罗斯,白俄罗斯,摩尔多瓦,哈萨克斯坦,阿塞拜疆,亚美尼亚,吉尔吉斯斯坦,乌兹别克斯坦,塔吉克斯坦,格鲁吉亚和土库曼斯坦,以上国家除了采用国家制定的标准外,还采用了全部或部分GOST标准。在某些重要场合,一份文档需要多人签名来保证数据的安全,比如高机密文档的使用或者电子货币的交易中。对于此类问题,比较常见的解决方法是将用户的私钥分割为多份,将分割后的数据分发给多个参与方,当需要使用私钥进行签名时,t个被分割的数据可以恢复用户的私钥,进而产生签名,如果低于t个参与者,则无法恢复私钥。然而,一旦私钥被恢复,任何单独的一方即可在其他参与方不知晓的情况下产生签名。特别是在两方需要共同签名一个合同或协议的情况下,两方中的一方如果获得了原始的签名私钥,则在不经过对方同意的情况下即可对任意合同进行签名。本专利技术设计了一种分布式生成GOST数字签名的方案,此方案在两方分布式生成签名的情况下,既能保证签名的正确性,又能保证签名的私钥不被泄露,且生成签名的过程中必须由两方同时参与。
技术实现思路
本专利技术的目的是提出两方在不泄漏自己的签名密钥并无法获得完整的签名密钥的情况下完成对消息的签名。针对本专利技术的目的,本专利技术提出了一个两方共同生成GOST数字签名的方案,下面给出具体描述。在以下对本方案的描述中,Z代表一个整数域,p是一个大于3的素数,bmodp表示b模p运算(modulooperation),p是阶为q的椭圆曲线上的点,若P、Q是椭圆曲线群中的元素(点),则P+Q表示P、Q的点加;k·P=P+P+...+P(共有k个P)表示k个椭圆曲线点P的点加,省略号“...”,表示多个同样(类型)的数据项或多个同样的运算;对于零点,以下运算成立:0+Q=Q+0=Q(Q是椭圆曲线上任意的一个点),c-1表示整数c的模n乘法逆(即c(c)-1modn=1);多个整数相乘(包括整数符号相乘、常数与整数符号相乘),在不产生二义性的情况下,省略掉乘号“·”,如k1·k2简化为k1k2,3·c,简化位3c。其他规范均对应于“GOSTR34.10-2001:DigitalSignatureAlgorithm”文档。本专利技术时采用如下技术方案实现的:一种GOST数字签名生成方法,其特征在于,包括:分布式密钥对生成步骤:P1和P2两方参加算法生成,P1在集合{1,2,...,q-1}中随机选取私钥d1和随机数k1,P2在集合{1,2,...,q-1}中随机选取私钥d2和随机数k2,P1计算Q1=d1P并发给P2,P2同时生成Q2=d2P发给P1,分布式GOST数字签名生成步骤:P1和P2可以同时计算出GOST数字签名的验证公钥Q=d1d2P。P1计算R1=k1P,使用同态加密方法加密d1和k1发送给P2,P2计算R2=k2P返回给P1。P2通过同态加密的性质,可以计算出rd1d2+ek1k2的密文并将此密文发送至P1,P1解密该密文,并计算签名的第一部分r,在签名验证通过后,P1公布完整的GOST数字签名(r,s)在上述的一种GOST数字签名生成方法,所述分布式密钥对生成步骤具体包括:步骤2.1、P1在集合{1,2,…,q-1}中选择第一个部分私钥d1,首先计算第一个部分公钥Q1=d1P,同时P1对Q1产生一个零知识证明π0,即证明d1是正确生成的。P1产生一个同态加密的公私钥对(pk,sk),在这里使用Paillier加密算法,加密d1,得到d1的密文Ckey=Encpk(d1)和(Encpk代表使用公钥pk加密,输出一个加密后的密文),并生成对Ckey的零知识证明π1,即证明Ckey是d1的合法密文,并将Q1,Ckey,π0,π1发送给P2。步骤2.2、P2在验证π0和π1的正确性后,在集合{1,2,...,q-1}中选择第二个部分私钥d2,计算第二个部分公钥Q2=d2P,和Q2的零知识证明π2并将Q2,π2发送给P1。P2计算出目标公钥Q=d2Q1=d1d2P,保存d2,Q,Ckey和pk。步骤2.3、P1计算目标公钥Q=d1Q2=d1d2P,并保存d1,Q,pk和sk。在上述的一种GOST数字签名生成方法,分布式GOST数字签名生成步骤具体包括:步骤3.1、P1首先在集合{1,2,…,q-1}中选择第一个临时私钥k1,计算第一个临时公钥R1=k1P和k1的密文Cran=Encpk(k1),同时生成对R1的零知识证明π3和对Cran的零知识证明π4,即证明R1是由k1正确生成的,Cran是由k1正确加密得到的。P1将R1,Cran,π3,π4发送给P2。步骤3.2、P2在收到R1,Cran,π3,π4验证π3,π4,若验证通过则P2在集合{1,2,...,q-1}中选择第二个临时私钥k2,计算第二个临时公钥R2=k2P并生成对R2的零知识证明π5。P2通过R的x坐标xR计算签名的第一部分r=xRmodq,选择一个足够大的数ρ,再使用Ckey和Cran计算密文即C1=Encpk(ρ·q+rd1d2+ek1k2)。P2计算目标临时公钥R=k2R1并将C1,R2,π5发送给P1。步骤3.3、P1验证π5通过后,计算出目标临时公钥R=k1R2。P1使用自己的私钥sk对C1进行解密运算Decsk(C1)=rd1d2+ek1k2modq。解密得到的结果rd1d2+ek1k2modq即等于签名中第二部分s。P1再使用R的x坐标xR计算签名的第一部分r=xRmodq,此时P1使用目标公钥Q验证签名(r,s)的正确性,若签名正确则输出签名,否则终止协议。一种GOST数字签名生成系统,其特征在于,包括:分布式密钥对生成单元:P1和P2两方参加算法生成,P1在集合{1,2,...,q-1}中随机选取私钥d1和随机数k1,P2在集合{1,2,...,q-1}中随机选取私钥d2和随机数k2,P1计算Q1=d1P并发给P2,P2同时生成Q2=d2P发给P1,分布式GOST数字签名生成单元:P1和P2同时计算出GOST数字签名的验证公钥Q=d1d2P。P1计算R1=k1P,使用同态加密方法加密d1和k1发送给P2,P2计算R2=k2P返回给P1。P2通过同态加密的性质,可以计算出rd1d2+ek1k2的密文本文档来自技高网
...

【技术保护点】
一种GOST数字签名生成方法,其特征在于,包括:分布式密钥对生成步骤:P1和P2两方参加算法生成,P1在集合{1,2,...,q‑1}中随机选取私钥d1和随机数k1,P2在集合{1,2,...,q‑1}中随机选取私钥d2和随机数k2,P1计算Q1=d1P并发给P2,P2同时生成Q2=d2P发给P1;分布式GOST数字签名生成步骤:P1和P2可以同时计算出GOST数字签名的验证公钥Q=d1d2P;P1计算R1=k1P,使用同态加密方法加密d1和k1发送给P2,P2计算R2=k2P返回给P1;P2通过同态加密的性质,可以计算出rd1d2+ek1k2的密文并将此密文发送至P1,P1解密该密文,并计算签名的第一部分r,在签名验证通过后,P1公布完整的GOST数字签名(r,s)。

【技术特征摘要】
1.一种GOST数字签名生成方法,其特征在于,包括:分布式密钥对生成步骤:P1和P2两方参加算法生成,P1在集合{1,2,...,q-1}中随机选取私钥d1和随机数k1,P2在集合{1,2,...,q-1}中随机选取私钥d2和随机数k2,P1计算Q1=d1P并发给P2,P2同时生成Q2=d2P发给P1;分布式GOST数字签名生成步骤:P1和P2可以同时计算出GOST数字签名的验证公钥Q=d1d2P;P1计算R1=k1P,使用同态加密方法加密d1和k1发送给P2,P2计算R2=k2P返回给P1;P2通过同态加密的性质,可以计算出rd1d2+ek1k2的密文并将此密文发送至P1,P1解密该密文,并计算签名的第一部分r,在签名验证通过后,P1公布完整的GOST数字签名(r,s)。2.根据权利要求1所述的一种GOST数字签名生成方法,其特征在于,所述分布式密钥对生成步骤具体包括:步骤2.1、P1在集合{1,2,…,q-1}中选择第一个部分私钥d1,首先计算第一个部分公钥Q1=d1P,同时P1对Q1产生一个零知识证明π0,即证明d1是正确生成的;P1产生一个同态加密的公私钥对(pk,sk),在这里使用Paillier加密算法,加密d1,得到d1的密文Ckey=Encpk(d1)和(Encpk代表使用公钥pk加密,输出一个加密后的密文),并生成对Ckey的零知识证明π1,即证明Ckey是d1的合法密文,并将Q1,Ckey,π0,π1发送给P2;步骤2.2、P2在验证π0和π1的正确性后,在集合{1,2,...,q-1}中选择第二个部分私钥d2,计算第二个部分公钥Q2=d2P,和Q2的零知识证明π2并将Q2,π2发送给P1;P2计算出目标公钥Q=d2Q1=d1d2P,保存d2,Q,Ckey和pk;步骤2.3、P1计算目标公钥Q=d1Q2=d1d2P,并保存d1,Q,pk和sk。3.根据权利要求1所述的一种GOST数字签名生成方法,其特征在于,分布式GOST数字签名生成步骤具体包括:步骤3.1、P1首先在集合{1,2,…,q-1}中选择第一个临时私钥k1,计算第一个临时公钥R1=k1p和k1的密文Cran=Encpk(k1),同时生成对R1的零知识证明π3和对Cran的零知识证明π4,即证明R1是由k1正确生成的,Cran是由k1正确加密得到的;P1将R1,Cran,π3,π4发送给P2;步骤3.2、P2在收到R1,Cran,π3,π4验证π3,π4,若验证通过则P2在集合{1,2,...,q-1}中选择第二个临时私钥k2,计算第二个临时公钥R2=k2P并生成对R2的零知识证明π5;P2通过R的x坐标xR计算签名的第一部分r=xRmodq,选择一个足够大的数ρ,再使用Ckey和Cran计算密文即C1=Encpk(ρ·q+rd1d2+ek1k2);P2计算目标临时公钥R=k2R1并将C1,R2,π5发送给P1;步骤3.3、P1验证π5通过后,计算出目标临时公钥R=k1R2;P1使用自己的私钥sk对C1进行解密运算Decsk(C1)=rd1d2+ek1k2modq;解密得到的结果rd1d2+ek1k2modq即等于签名中第二部分s;P1再使用R的x坐标xR计算签名的第一部分r=xRmodq,此时P1使用目标公钥Q验证签名(r,s)的正确性,若签名正确则输出签名,否则终止协议。4.一种GOST数字签名生成...

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

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

1