[发明专利]一种两方协同SM2密钥生成、密文解密方法与介质在审
申请号: | 201911023563.1 | 申请日: | 2019-10-25 |
公开(公告)号: | CN110958114A | 公开(公告)日: | 2020-04-03 |
发明(设计)人: | 何德彪;张语荻;冯琦;王婧;陈泌文 | 申请(专利权)人: | 武汉大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/30;H04L9/32 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 协同 sm2 密钥 生成 解密 方法 介质 | ||
1.一种两方协同SM2密钥生成方法,其特征在于,包括:
步骤1、用户U1从{1,...,n}中随机选取一个数x1,计算Q1=x1G,并生成Q1的零知识证明π1,将Q1和π1发送给U2;
步骤2、用户U2验证π1通过后,从{1,...,n}中随机选取一个数x2,计算Q2=x2G,并生成Q2的零知识证明π2,将Q2和π2发送给U1;U2计算保存Q=x2Q1;
步骤3、用户U1验证π2通过后,计算保存Q=x1Q2。
2.一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、用户U1从{1,...,n}中随机选取一个数x1,计算Q1=x1G,并生成Q1的零知识证明π1,将Q1和π1发送给U2;
步骤2、用户U2验证π1通过后,从{1,...,n}中随机选取一个数x2,计算Q2=x2G,并生成Q2的零知识证明π2,将Q2和π2发送给U1;U2计算保存Q=x2Q1;
步骤3、用户U1验证π2通过后,计算保存Q=x1Q2。
3.一种两方协同SM2密文解密方法,其特征在于,包括:
步骤1、从密文C中提取比特串C1,按照SM2规范将C1的数据类型转换成椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
步骤2、用户U2计算C′1=x2C1,并生成C′1的零知识证明π3,将C′1和π3发送给U1;
步骤3、用户U1验证π3通过后,计算S=x1C′1,若S是无穷远点,则报错并退出;
步骤4、用户U1按照SM2规范,使用SM2原始解密步骤继续计算明文:
步骤4.1、计算S的坐标(sx,sy),将坐标sx、sy的数据类型转换为比特串;
步骤4.2、计算t=KDF(sx||sy,klen),若t为全0比特串,则报错并退出;
步骤4.3、从C中提取比特串C2,计算
步骤4.4、计算u=Hash(sx|M′|sy),从C中提取比特串C3,若u≠C3,则报错并退出;
步骤4.5、输出明文M′。
4.一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、从密文C中提取比特串C1,按照SM2规范将C1的数据类型转换成椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
步骤2、用户U2计算C′1=x2C1,并生成C′1的零知识证明π3,将C′1和π3发送给U1;
步骤3、用户U1验证π3通过后,计算S=x1C′1,若S是无穷远点,则报错并退出;
步骤4、用户U1按照SM2规范,使用SM2原始解密步骤继续计算明文:
步骤4.1、计算S的坐标(sx,sy),将坐标sx、sy的数据类型转换为比特串;
步骤4.2、计算t=KDF((sx||sy,klen),若t为全0比特串,则报错并退出;
步骤4.3、从C中提取比特串C2,计算
步骤4.4、计算u=Hash(sx||M′||sy),从C中提取比特串C3,若u≠C3,则报错并退出;
步骤4.5、输出明文M′。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911023563.1/1.html,转载请声明来源钻瓜专利网。