[发明专利]一种GOST数字签名生成方法及系统有效

专利信息
申请号: 201711040478.7 申请日: 2017-10-30
公开(公告)号: CN107682151B 公开(公告)日: 2021-02-02
发明(设计)人: 何德彪;张语荻 申请(专利权)人: 武汉大学
主分类号: H04L9/08 分类号: H04L9/08;H04L9/32;H04L9/14
代理公司: 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人: 鲁力
地址: 430072 湖*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 gost 数字签名 生成 方法 系统
【权利要求书】:

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、P1在集合{1,2,…,q-1}中选择第一个部分私钥d1,首先计算第一个部分公钥Q1=d1P,同时P1对Q1产生一个零知识证明π0,即证明d1是正确生成的;P1产生一个同态加密的公私钥对(pk,sk),在这里使用Paillier加密算法,加密d1,得到d1的密文Ckey=Encpk(d1),并生成对Ckey的零知识证明π1,即证明Ckey是d1的合法密文,并将Q1,Ckey01发送给P2;

步骤2.2、P2在验证π0和π1的正确性后,在集合{1,2,...,q-1}中选择第二个部分私钥d2,计算第二个部分公钥Q2=d2P,和Q2的零知识证明π2并将Q22发送给P1;P2计算出目标公钥Q=d2Q1=d1d2P,保存d2,Q,Ckey和pk;

步骤2.3、P1计算目标公钥Q=d1Q2=d1d2P,并保存d1,Q,pk和sk;

分布式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,Cran34发送给P2;

步骤3.2、P2在收到R1,Cran34后验证π34,若验证通过则P2在集合{1,2,...,q-1}中选择第二个临时私钥k2,计算第二个临时公钥R2=k2P并生成对R2的零知识证明π5;P1通过R的x坐标xR计算签名的第一部分r=xRmod q,选择一个大的数ρ,再使用Ckey和Cran计算密文即C1=Encpk(ρ·q+rd1d2+ek1k2);P2计算目标临时公钥R=k2R1并将C1,R25发送给P1;

步骤3.3、P1验证π5通过后,计算出目标临时公钥R=k1R2;P1使用自己的私钥sk对C1进行解密运算Decsk(C1)=rd1d2+ek1k2mod q;解密得到的结果rd1d2+ek1k2mod q即等于签名中第二部分s;P1再使用R的x坐标xR计算签名的第一部分r=xRmod q,此时P1使用目标公钥Q验证签名(r,s)的正确性,若签名正确则输出签名,否则终止协议。

2.一种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、P1在集合{1,2,…,q-1}中选择第一个部分私钥d1,首先计算第一个部分公钥Q1=d1P,同时P1对Q1产生一个零知识证明π0,即证明d1是正确生成的;P1产生一个同态加密的公私钥对(pk,sk),在这里使用Paillier加密算法,加密d1,得到d1的密文Ckey=Encpk(d1),并生成对Ckey的零知识证明π1,即证明Ckey是d1的合法密文,并将Q1,Ckey01发送给P2;

步骤2.2、P2在验证π0和π1的正确性后,在集合{1,2,...,q-1}中选择第二个部分私钥d2,计算第二个部分公钥Q2=d2P,和Q2的零知识证明π2并将Q22发送给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,Cran34发送给P2;

步骤3.2、P2在收到R1,Cran34后验证π34,若验证通过则P2在集合{1,2,...,q-1}中选择第二个临时私钥k2,计算第二个临时公钥R2=k2P并生成对R2的零知识证明π5;P1通过R的x坐标xR计算签名的第一部分r=xRmod q,选择一个大的数ρ,再使用Ckey和Cran计算密文即C1=Encpk(ρ·q+rd1d2+ek1k2);P2计算目标临时公钥R=k2R1并将C1,R25发送给P1;

步骤3.3、P1验证π5通过后,计算出目标临时公钥R=k1R2;P1使用自己的私钥sk对C1进行解密运算Decsk(C1)=rd1d2+ek1k2mod q;解密得到的结果rd1d2+ek1k2mod q即等于签名中第二部分s;P1再使用R的x坐标xR计算签名的第一部分r=xRmod q,此时P1使用目标公钥Q验证签名(r,s)的正确性,若签名正确则输出签名,否则终止协议。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711040478.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top