[发明专利]一种抗能量分析攻击的基于SM2算法的两方协同签名方法有效

专利信息
申请号: 202011156120.2 申请日: 2020-10-26
公开(公告)号: CN112422288B 公开(公告)日: 2023-06-27
发明(设计)人: 荆继武;尤玮婧;王平建;刘丽敏;王跃武;雷灵光;寇春静 申请(专利权)人: 中国科学院大学
主分类号: H04L9/30 分类号: H04L9/30;H04L9/32;H04L9/08
代理公司: 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人: 罗文群
地址: 100049 北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 能量 分析 攻击 基于 sm2 算法 协同 签名 方法
【权利要求书】:

1.一种抗能量分析攻击的基于SM2的两方协同签名方法,其特征在于,该方法包括以下步骤:

(1)用户A、第一通信方和第二通信方共同商议产生签名过程所需的公开参数,所述的公开参数包括SM2算法的椭圆曲线相关参数q、Fq、E、G、n和一个消息摘要长度为v比特的安全密码杂凑函数Hv(),其中n和q是两个长度满足通信安全要求的大素数,Fq是一个包含q个元素的有限域,E是定义Fq上的一条椭圆曲线,G是阶为n的椭圆曲线上的一个基点;

(2)第一通信方和第二通信方分别生成各自子密钥并协同生成用户A的公钥,包括以下步骤:

(2-1)第一通信方生成一个随机数d1,d1∈[1,n-1],并将该随机数d1作为第一通信方的子私钥,根据随机数d1,计算椭圆曲线点P1,P1=d1[*]G,将椭圆曲线点P1作为第一通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第一通信方的密钥对(d1,P1),第一通信方将子公钥P1发送给第二通信方;

(2-2)第二通信方产生随机数d2,d2∈[1,n-1],并将该随机数d2作为第二通信方的子私钥,根据随机数d2,计算椭圆曲线点P2,P2=d2[*]G,将椭圆曲线点P2作为第二通信方的子公钥,其中“[*]”表示椭圆曲线上的点乘运算,得到第二通信方的密钥对(d2,P2);同时第二通信方根据随机数d2和来自第一通信方的子公钥P1,计算椭圆曲线上的一个点PA',PA'=d2[*]P1-G,其中“[*]”表示椭圆曲线上的点乘运算,“-”表示椭圆曲线上的减法运算,第二通信方将子公钥P2和PA'发送给第一通信方;

(2-3)第一通信方根据步骤(2-1)的子私钥d1和步骤(2-2)中的来自第二通信方的子公钥P2,计算椭圆曲线上的一个点PA,PA=d1[*]P2[-]G,其中“[*]”表示椭圆曲线上的点乘运算,“[-]”表示椭圆曲线上的减法运算;第一通信方对来自第二通信方的PA'进行验证,若PA等于PA',则将PA作为用户A的公钥,若PA不等于PA',则用户A的公钥生成失败;

(3)第一通信方和第二通信方进行协同签名,包括以下步骤:

(3-1)第一通信方计算用户A的待签名消息M的消息摘要e;

(3-2)第一通信方产生随机数k1,k1∈[1,n-1],并根据第二通信方公钥P2和随机数k1计算椭圆曲线上的点Q1,Q1=k1[*]P2,其中“[*]”表示椭圆曲线上的点乘运算,第一通信方将步骤(3-1)的用户A的待签名消息M的消息摘要e和Q1发送给第二通信方;

(3-3)第二通信方对来自第一通信方的Q1进行验证,若Q1满足与用户A、第一通信方和第二通信方在步骤(1)共同商议选定的椭圆曲线方程时,进行步骤(3-4),若Q1不满足步骤(1)选定的椭圆曲线方程,则协同签名失败;

(3-4)第二通信方产生随机数k2,k2∈[1,n-1],第二通信方根据用户A的待签名消息M的消息摘要e、来自第一通信方的Q1和本步骤的k2生成部分签名值r;

(3-5)第二通信方根据第二通信方的子私钥d2,计算d2在Fq上的逆元d2-1,第二通信方根据d2-1、步骤(3-4)的部分签名值r和本步骤的k2计算签名中间值s1,s1=d2-1×(r+k2)mod n,其中“×”表示有限域上的数乘运算,“+”表示有限域上的加法运算,mod表示有限域上的求模运算,第二通信方根据步骤(3-6)的k2对r的有效性进行验证,若r不等于0且r+k2不等于n,则第二通信方将部分签名r和签名中间值s1发给第一通信方,进行步骤(3-6),若r等于0或r+k2等于n,则协同签名失败;

(3-6)第一通信方根据步骤(3-2)的k1对来自第二通信方的s1进行验证,若k1+s1不等于n,则进行步骤(3-7),若k1+s1等于n,则协同签名失败,其中“+”表示有限域上的加法运算;

(3-7)第一通信方根据第一通信方的子私钥d1,计算d1在Fq上的逆元d1-1,根据d1-1、步骤(3-2)选取的k1以及来自第二通信方的s2,计算s,s=d1-1×(k1+s1)-r mod n,其中“×”表示有限域上,的数乘运算,“+”表示有限域上的加法运算,“-”表示有限域上的减法运算,mod表示有限域上的求模运算,并对s进行验证,若s不等于0且s+r不等于n,则进行步骤(3-8),若s等于0或s+r等于n,则协同签名失败;

(3-8)第一通信方使用用户A的公钥PA,对签名结果(r,s)进行验证,若(r,s)是用户A待签名消息M的签名,则输出协同签名结果(r,s),若(r,s)不是用户A待签名消息M的签名,则协同签名失败。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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