[发明专利]基于SM2算法的两方联合签名和解密的方法及系统在审

专利信息
申请号: 202010138468.2 申请日: 2020-03-03
公开(公告)号: CN111355582A 公开(公告)日: 2020-06-30
发明(设计)人: 尚望;兰天 申请(专利权)人: 成都天瑞芯安科技有限公司
主分类号: H04L9/30 分类号: H04L9/30;H04L9/32
代理公司: 北京天奇智新知识产权代理有限公司 11340 代理人: 叶明博
地址: 610000 四川省成都市*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 sm2 算法 联合 签名 解密 方法 系统
【权利要求书】:

1.基于SM2算法的两方联合签名和解密的系统,其特征在于,包括:

客户端和云服务端;客户端存储有有私钥a和公钥Pa,云服务端存储有私钥b和公钥Pb,客户端与云服务端进行信息交互;

客户端接收需要签名的交易文件,私钥a用于计算第一部分签名Q1,私钥b用于结合Q1计算完整签名Q2,云服务端将Q2反馈给客户端,客户端将交易文件和Q2一同发布;

客户端请求云服务端进行解密文件,私钥b用于计算第一部分解密数据,私钥a用于结合第一部分解密数据计算完整解密数据;

公钥Pa和公钥Pb用于联合运算得联合公钥Pu,联合公钥Pu用于验证完整签名Q2及对文件进行加密。

2.基于SM2算法的两方联合签名和解密的方法,应用于权利要求1所述的基于SM2算法的两方联合签名和解密的系统,两个参与方标记为A和B,A有私钥a和公钥Pa,B有私钥b和公钥Pb,其特征在于,

两方联合签名,包括以下步骤:

C1,B发送Pb给A;

C2,A通过Pa、Pb生成联合公钥Pu;

C3,给定交易消息E,A使用私钥a计算得第一部分签名Q1,A发送Q1到B;

C4,B使用Q1和私钥b计算得完整签名Q2,其中Q2可被联合公钥Pu验签;

两方联合解密,包括以下步骤:

D1,给定联合公钥Pu加密消息M得到密文C,A使用私钥a和密文C计算得第一部分解密数据,并将其发送给B;

D2,B利用第一部分解密数据、私钥b和密文C计算得完整解密数据即明文M。

3.根据权利要求2所述的基于SM2算法的两方联合签名和解密的方法,联合签名方法,其特征在于,C3中,A使用私钥a得第一部分签名Q1的计算过程如下:

1)A生成随机数m,计算s31=m*G,其中,G为SM2的参考基点;

2)生成随机数k,计算k*G=(x1,y1),取该点的x1;

3)交易消息E的散列值记为e,计算r=e+x1;

4)计算s32=s31*(k-r*a);

5)计算s33=s31*(1+a);

6)记Q1=(r,s32,s33)。

4.根据权利要求3所述的基于SM2算法的两方联合签名和解密的方法,联合签名方法,其特征在于,C4中,B使用Q1和私钥b得完整签名Q2的计算过程如下:

1)计算s41=s33*(1+b);

2)对s41整体求逆,得到s42=(s41)-1

3)计算s43=s33*r*b;

4)计算s44=s32-s43;

5)计算s45=s42*s44;

6)记s=s45,输出完整签名Q2=(r,s)作为交易消息E的签名。

5.根据权利要求4所述的基于SM2算法的两方联合签名和解密的方法,联合解密方法,其特征在于,D1中,联合公钥Pu加密消息M得到密文C过程如下:

1)令椭圆曲线点C1=k*G=(x1,y1);

2)计算椭圆曲线点S=H*PA,若S是无穷远点,则报错并退出,其中H是SM2算法规定的余因子,缺省为1;

3)计算椭圆曲线点k*Pu=(x2,y2),即K*(Pa+Pb+a*Pb)=(x2,y2),将坐标x2、y2的数据类型转换为比特串;

计算t=KDF(x2||y2,klen),若t为全0比特串,则返回步骤1),KDF是SM2算法规定的密钥派生函数,输出是一个密钥序列;

4)计算C2=M⊕t,⊕为异或运算;计算C3=Hash(x2||M||y2),其中Hash是SM2算法规定的散列函数;

5)输出密文C=C1||C2||C3。

6.根据权利要求5所述的基于SM2算法的两方联合签名和解密的方法,联合解密方法,其特征在于,D1中,A使用私钥a计算得第一部分解密数据的过程如下:

A从C中取出比特串C1,计算H*C1,H是SM2算法规定的余因子参数,若H*C1是无穷远点,则报错退出,否则计算s61=a*C1;A将s61发送给B。

7.根据权利要求6所述的基于SM2算法的两方联合签名和解密的方法,其特征在于,D2中,B使用第一部分解密数据和私钥b得完整解密数据即明文M的过程如下:

1)B从密文C中取出C1,计算s71=b*C1,计算s72=b*s61=b*a*C1,计算s73=s61+s71+s72=(a+b+a*b)*C1,记s42的坐标为(x2,y2);

2)计算t=KDF(x2||y2,klen),若t为全0比特串,则报错并退出;KDF是SM2算法规定的密钥派生函数,输出是一个密钥序列;

3)从C中取出比特串C2,计算M’=C2⊕t;计算u=Hash(x2||M’||y2);从C中取出比特串C3,若u不等于C3,则报错并退出;

4)输出明文M=M’。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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