(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211126972.6
(22)申请日 2022.09.16
(71)申请人 郑州信大捷安信息技 术股份有限公
司
地址 450000 河南省郑州市金 水区杨金路
139号F4号楼
(72)发明人 卫志刚 安小鹤 彭金辉 廖正赟
(74)专利代理 机构 郑州德勤知识产权代理有限
公司 41128
专利代理师 张微微
(51)Int.Cl.
H04L 9/32(2006.01)
H04L 9/08(2006.01)
H04L 9/30(2006.01)
(54)发明名称
一种基于椭圆曲线的通信双方协同签名和
解密方法与系统
(57)摘要
本发明技术方案提供一种基于ECDSA算法的
通信双方协同签名方法与系统, 以及具有相同发
明构思的基于ECIES的通信双方协同解密方法与
系统。 通信双方分别 产生各自的子私钥和部分公
钥, 由其中一方根据己方子私钥和双方的部分公
钥计算出完整的公钥并公布。 在双方协同签名或
解密时, 通过交换各自产生的签名或解密分量,
最终计算出完整的签名和消息, 或者是明文。 本
发明技术方案解决了ECC算法软件密码 模块中私
钥的安全性问题, 并且通过对协同签名算法的安
全增强设计, 避免了攻击者通过多次截获协同签
名过程中通信双方交换的信息推算私钥分量的
风险, 大大提高了协同签名的安全性。
权利要求书4页 说明书8页 附图3页
CN 115459932 A
2022.12.09
CN 115459932 A
1.一种基于ECDSA算法的通信双方协同签名方法, 所述通信双方包括第一通信方和第
二通信方, 所述第一通信方和所述第二通信方共享ECDSA算法椭圆曲线E和E上阶数为n的基
点G, 其特 征在于, 所述方法包括以下步骤: 包括协同生成公钥阶段和协同签名阶段,
所述协同生成公钥阶段包括:
S101、 所述第一通信方产生随机数d1∈[1,n‑1], 把d1作为所述第一通信方的子私钥; 根
据d1和基点G计算得到椭圆曲线点P1=[d1]G, 即为第一部分公钥P1, 并将P1发送给所述第二通
信方;
S102、 所述第二通信方产生随机数d2∈[1,n‑1], 把d2作为所述第二通信方的子私钥; 根
据d2和基点G计算得到椭圆曲线点P2=[d2]G, 即为第二部分公钥P2; 根据d2、 P2和接收到的P1
计算得到 完整的公钥P = P1+P2+[d2]P1, 并公开P;
所述协同签名阶段包括:
S201、 所述第一 通信方对待签名消息 M使用预定的杂凑函数,得到消息摘要e;
S202、 所述第一通信方产生随机数k1,b1∈[1,n‑1], 根据k1和基点G生成第一部分签名
W1 = [k1]G, 根据b1和基点G生成第二部分签名W2 = [b1]G,并将e、 W1和W2发送给所述第二通
信方;
S203、 所述第 二通信方产生随机数k2,b2∈[1,n‑1], 根据k2和接收到的W1计算椭圆曲线
点W = [k2]W1, W的坐标为 (x1,y1) , 根据W计 算得到第三部分签名r = x1 mod n, 并在r=0时返
回步骤S202;
S204、 所述第二通信方根据b2和基点G生成第四部分签名W3 = [b2]G; 根据b2和接收到的
W2计算椭圆曲线点T = [b2]W2, T的坐标为 (x2,y2) , 根据T计算得到过程随机数k3 = x2 mod
n; 根据r、 d2、 k3、 k2以及接收到的e, 计 算得到第五部分签名s1 = k2‑1(e+d2r) mod n和第六部
分签名s2 = k3k2‑1(1+d2) mod n,并将r、 W3、 s1、 s2发送给所述第一 通信方;
S205、 所述第一通信方根据b1和接收到的W3计算椭圆曲线点T' = [b1]W3, T' 的坐标为(
x2' ,y2' ), 根据T' 计 算得到过程随机数k3' = x2' mod n; 根据r、 s1、 s2、 k3' 和d1计算得到签名分
量s = (k1‑1s1+ k3'‑1k1‑1d1s2r) mod n; 若s=0则返回步骤S202, 否则第一通信方输出消息M
和完整的签名 (r, s) ;
其中, 以[k]G的形式表示椭圆曲线E上点G的k倍点, 以k‑1的形式表示k的逆元k‑1mod n, k
是正整数; mod n表示模n 运算。
2.根据权利要求1所述的基于ECDSA算法的通信双方协同签名方法, 其特征在于: 随机
数d1、 d2、 b1、 b2、 k1、 k2分别由一个或多个位于[1,n ‑1]之间的随机数运算得到; 所述运算包括
线性运算、 相乘、 求逆。
3.根据权利要求1所述的基于ECDSA算法的通信双方协同签名方法, 其特征在于: 所述
第一通信方和所述第二 通信方为可信通信方。
4.一种基于ECIES的通信双方协同解密方法, 所述通信双方包括第一通信方和第二通
信方, 所述第一通信方和所述第二通信方共享ECIES算法椭圆 曲线E和E上阶为n的基点G; 设
密文结构为R||C||t, 其中||表示拼接, 其特征在于, 所述协同解密方法包括协同生成公钥
阶段和协同解密阶段,
所述协同生成公钥阶段包括:
S101、 所述第一通信方产生随机数d1∈[1,n‑1], 把d1作为所述第一通信方的子私钥; 根权 利 要 求 书 1/4 页
2
CN 115459932 A
2据d1和基点G计算得到椭圆曲线点P1=[d1]G, 即为第一部分公钥P1, 并将P1发送给所述第二通
信方;
S102、 所述第二通信方产生随机数d2∈[1,n‑1], 把d2作为所述第二通信方的子私钥; 根
据d2和基点G计算得到椭圆曲线点P2=[d2]G, 即为第二部分公钥P2; 根据d2、 P2和接收到的P1
计算得到 完整的公钥P = P1+P2+[d2]P1, 并公开P;
所述协同解密阶段包括:
S201、 所述第一通信方从密文结构中取出R, 并确认其有效性, 若确认失败则报错并退
出;
S202、 所述第一 通信方将R 发送给所述第二 通信方;
S203、 所述第二通信方根据d2、 R计算椭圆曲线点Z2 = [hd2]R,并将Z2发送给所述第一通
信方; 其中h是椭圆曲线E的阶数除以n得到的余因子;
S204、 所述第一通信方根据d1、 R、 Z2计算椭圆 曲线点Z1=[hd1]R+[d1]Z2, Z=Z1+Z2, Z的坐标
为(xZ,yZ), 若Z是无穷远点, 则报错并退 出;
S205、 所述第一通信方根据Z和R计算(k1,k2) = KDF(xZ,R), 然后计算t' = MACk2(C); 若
t' ≠ t, 则报错并退 出;
S206、 所述第一 通信方计算明文m = DECk1(C), 并输出m;
其中, 以[k]G 的形式表示椭圆曲线E上点G的k倍点, k是正整数, k1、 k2为派生密钥, KDF
为密钥派生 函数, MAC为消息认证码算法, DE C为对称密码算法。
5.根据权利要求4所述的基于ECIES的通信双方协同解密方法, 其特征在于: 随机数d1、
d2分别由一个或多个位于[1,n ‑1]之间的随机数运算得到; 所述运算包括线性运算、 相乘、
求逆。
6.根据权利要求4所述的基于ECIES的通信双方协同解密方法, 其特征在于: 密文 由加
密终端利用公钥P采用基于 ECIES的加密算法对明文 进行加密得到 。
7.一种基于ECDSA算法的通信双方协同签名系统, 包括第 一通信方和第 二通信方, 所述
第一通信方包括第一密码运算模块和 第一通信模块, 所述第二通信方包括第二密码运算模
块和第二通信模块, 所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二
通信模块通信连接; 所述第一通信方和所述第二通信方共享ECDSA算法椭圆曲线E和 E上阶
为n的基点G; 所述第一通信方和所述第二通信方协同生成公钥, 并在需要签名时进行协同
签名; 其特 征在于:
所述第一 通信方和所述第二 通信方协同生成公钥的过程包括:
所述第一通信方通过所述第一密码 运算模块产生随机数d1∈[1,n‑1], 把d1作为所述第
一通信方的子私钥; 根据d1和基点G计算得到椭圆曲线点P1=[d1]G, 即为第一部分公钥P1, 再
通过所述第一 通信模块将P1发送给所述第二 通信方;
所述第二通信方通过第二通信模块接收P1, 通过所述第二密码运算模块产生随机数d2
∈[1,n‑1], 把d2作为所述第二通信方的子私钥; 根据d2和基点G计算得到椭圆曲线点P2=
[d2]G, 即为第二部分 公钥P2; 再根据d2、 P2和接收到的P1计算得到完整的公钥P = P1+P2+[d2]
P1, 并通过第二 通信模块公开P;
所述第一 通信方和所述第二 通信方协同签名的过程包括:
所述第一通信方通过所述第一密码运算模块对待签名消息M使用预定的杂凑函数, 得权 利 要 求 书 2/4 页
3
CN 115459932 A
3
专利 一种基于椭圆曲线的通信双方协同签名和解密方法与系统
文档预览
中文文档
16 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-03-03 12:16:10上传分享