SM2算法第二篇:“七问”SM2椭圆曲线公钥密码算法

原创 2016年04月19日 00:17:44


引言:

国家密码管理局于2010年12月17日发布了SM2椭圆曲线公钥密码算法,并要求为对现有基于RSA算法的电子认证系统、密钥管理系统、应用系统进行升级改造。


第一问:SM2算法和RSA算法有什么关系?


SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。


第二问:为什么要采用SM2算法替换RSA算法?


随着密码技术和计算技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。SM2算法在安全性、性能上都具有优势,参见表1算法攻破时间,表2算法性能。




第三问:SM2和椭圆曲线算法是什么关系?


一提起曲线,大家就会想到方程,椭圆曲线算法是通过方程确定的,SM2算法采用的椭圆曲线方程为:

y2 = x3 + ax + b

在SM2算法标准中,通过指定a、b系数,确定了唯一的标准曲线。同时,为了将曲线映射为加密算法,SM2标准中还确定了其它参数,供算法程序使用。


第四问:椭圆曲线算法是什么原理?


详细解释请看本人的上一篇博客,链接为:ECC算法原理。此处只做简要叙述。


上图为方程:y2 = x3–x的曲线。

1、P点为基点;

2、通过P点做切线,交与点 2P点,在2P’点做竖线,交与2P点,2P点即为P点的2倍点;

3、进一步,P点和2P点之间做直线,交与3P’点,在3P’点做竖线,交与3P点,3P点即为P点的3倍点;

4、同理,可以计算出P点的4、5、6、… 倍点;

5、如果给定图上Q点是P的一个倍点,请问Q是P的几倍点呢?

6、直观上理解,正向计算一个倍点是容易的,反向计算一个点是P的几倍点则困难的多。

在椭圆曲线算法中,将倍数d做为私钥,将Q做为公钥。当然,椭圆曲线算法还有更严格的计算过程,相对图示要复杂的多。


第五问:SM2算法可以进行哪些密码应用?


SM2算法做为公钥算法,可以完成签名、密钥交换以及加密应用。SM2算法标准确定了标准过程:

1、签名、验签计算过程;

2、加密、解密计算过程;

3、密钥协商计算过程。

需要说明,其他国家的标准和SM2确定的计算过程存在差异,也就是说相互之间是不兼容的。


第六问:SM2算法速度快吗?


简单讲,SM2签名速度快,验签速度慢,这点和RSA算法的特性正好相反。参见表2。

另外,加解密速度和验签速度相当。

SM2签名算法支持多大的数据量,签名结果为多少字节?签名原始数据量长度无限制,签名结果为64字节。

SM2加密算法支持多大的数据量,加密结果增加多少字节?支持近128G字节数据长度,加密结果增加96个字节。


第七问:SM2相关算法有哪些?


SM2,为国家密码管理局公布的公钥算法,其加密强度为256位。其它几个重要的商用密码算法包括:

SM1,对称加密算法,加密强度为128位,采用硬件实现;

SM3,密码杂凑算法,杂凑值长度为32字节,和SM2算法同期公布,参见《国家密码管理局公告(第 22 号)》;

SMS4,对称加密算法,随WAPI标准一起公布,可使用软件实现,加密强度为128位。





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

谈谈PBOC3.0中使用的国密SM2算法

完全理解ECC算法需要一定的数学功底,因为涉及到射影平面坐标系,齐次方程求解, 曲线的运算规则等概念。这里不做过多的数学分析(主要是我自己也没有完全整明白)。想要深入了解ECC的我推荐网名为ZMWor...

SM2算法第三篇:实现SM2秘钥交换协议的算法流程

秘钥交换协议

国密算法(SM2,SM3,SM4)辅助工具升级版(OTP+PBOC3.0)

从编写最初版本用于验算SM2,SM3和SM4算法的辅助工具已有一年多的时间了,国密算法的应用和普及也是不温不火的。编写最初算法代码和工具时所参考的文档还非正式的国密标准文件,而目前国密标准文件发布了几...

CSDN新版博客feed流内测用户征集令

亲爱的CSDN用户: 感谢您一直对我们的支持和信赖9月14日我们对CSDN博客的皮肤做了一次全新的升级,在升级过程中也发现了很多bug,我们取消了继续升级的入口,并且给用户提供了皮肤切换功能...

《心情变好不完全手册》

《心情变好不完全手册》又名《心情魔法书》 本书不是教你如何调节让你心情变好起来,而是直接让你心情变好起来!就像使用魔法一样!心情魔法书并不能治病救人,只是能让你心情变好起来。如果你看了本书心情还是没有...

软件推荐:思维导图(FreeMind)

软件推荐:思维导图(FreeMind) 可以将你的思维或者工作事件绝对简单地记录下来,并能非常直观地导航,拆分,移动,合并。(需要JAVA VM,1.4+) 中文版的。国际化的不错。http://fr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)