[发明专利]二元扩域上SM2加密算法的实现方法在审
申请号: | 201710378190.4 | 申请日: | 2017-05-25 |
公开(公告)号: | CN107147495A | 公开(公告)日: | 2017-09-08 |
发明(设计)人: | 刘珊珊;熊晓明 | 申请(专利权)人: | 广东工业大学 |
主分类号: | H04L9/30 | 分类号: | H04L9/30;H04L9/08;H04L9/06 |
代理公司: | 广东广信君达律师事务所44329 | 代理人: | 杨晓松 |
地址: | 510062 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 二元 扩域上 sm2 加密算法 实现 方法 | ||
1.一种二元扩域上SM2椭圆曲线公钥加密算法的实现方法,包括以下步骤:
步骤一:用随机数发生器产生随机数k∈[1,n-1];
步骤二:计算椭圆曲线点C1=[k]G=(x1,y1),将C1的数据类型转换为比特串,其中G为椭圆曲线的一个基点;
步骤三:计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错并退出,其中PB为用户B的公钥;
步骤四:计算椭圆曲线点S1=[k]PB=(x2,y2),将坐标x2、y2的数据类型转换为比特串;
步骤五:计算t=KDF(x2∥y2,klen),若t为全0比特串,则返回步骤一,其中KDF(Z,klen)为密钥派生函数,x∥y为x与y的拼接,
步骤六:计C2=M⊕t,其中⊕为长度相等的两个比特串按比特的异或运算;
步骤七:计算C3=Hash(x2∥M∥y2),其中Hash()为密码杂凑函数;
步骤八:输出密文C=C1∥C2∥C3。
2.如权利要求1所述的方法,其特征在于:所有的计算都基于LD射影坐标,在射影投影坐标下,椭圆曲线的投影方程为:y2+xyz=x3z+ax2z2+bz4,a,b为椭圆曲线参数,在这种坐标系下,点加和倍点的运算量最少。
3.如权利要求1所述的方法,其特征在于:所述步骤二时采用如下方法:
设需要存储的点的个数r>1,
步骤(1):G1=G,G2=[2]G1;其中G为椭圆曲线的一个基点,G1为计算的中间量;
步骤(2):i从1增加到r-1计算G2i+1=G2i-1+G2;其中i为控制循环计算的中间量;
步骤(3):NAF(k)=(ki-1,,ki-2,k1,k0);其中Ki为随机数k的从右数第i+1位,正整数k的宽度为w的
步骤(4):令j=l-1,C1=O;当j≥0时;
若Kj=0,则C1=[2]C1,j=j-1;
否则:
令t是使且kt=1或k=-1的最小整数;
如果hj>0,否则
令j=t-1;其中j,t,hj,等都是计算的中间量,l为宽度为w的NAF的长度;
步骤(5):输出C1;
步骤(6):将C1的数据类型转换为比特串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710378190.4/1.html,转载请声明来源钻瓜专利网。