国家必须要有属于自己的一套加密机制才行。。。好复杂。分享下看哪位看得懂其中的原理

国家密码管理局于2010年12月17日发布了SM2椭圆曲线公钥密码算法,并要求为对现有基于RSA算法的电子认证系统、密钥管理系统、应用系统进行升级改造。关于算法标准,请参见《国家密码管理局公告(第 21 号)》,网址为 www.oscca.gov.cn/

SM2算法和RSA算法有什么关系?
  SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。
为什么要采用SM2算法替换RSA算法?
随着密码技术和计算技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。SM2算法在安全性、性能上都具有优势,参见表1算法攻破时间,表2算法性能。

RSA密钥强度

椭圆曲线密钥强度

攻破时间(年)

512

106

104,已被攻破

768

132

108,已被攻破

1024

160

1011

2048

210

1020

表1 算法攻破时间

算法

签名速度(次/秒)

验签速度(次/秒)

1024位RSA

2792

51224

2048位RSA

455

15122

256位SM2

4095

871

表2 算法性能

SM2和椭圆曲线算法是什么关系?
一提起曲线,大家就会想到方程,椭圆曲线算法是通过方程确定的,SM2算法采用的椭圆曲线方程为:
y2 = x3 + ax + b
在SM2算法标准中,通过指定a、b系数,确定了唯一的标准曲线。同时,为了将曲线映射为加密算法,SM2标准中还确定了其它参数,供算法程序使用。

椭圆曲线算法是什么原理?
本文不探讨椭圆曲线的数学理论,仅通过图示展示算法原理。请参见下图: 
 
图1 椭圆曲线算法原理

   上图为方程: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位。

沃通CA做中国数字证书领域行业的领跑者  buy.wosign.com

 
 

SM2椭圆曲线公钥密码算法的更多相关文章

  1. [区块链] 密码学——椭圆曲线密码算法(ECC)

    今天在学椭圆曲线密码(Elliptic Curve Cryptography,ECC)算法,自己手里缺少介绍该算法的专业书籍,故在网上查了很多博文与书籍,但是大多数博客写的真的是...你懂的...真不 ...

  2. 学习笔记——SM2算法原理及实现

    RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法 SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosyste ...

  3. 关于国密算法 SM1,SM2,SM3,SM4 的笔记

    国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4.密钥长度和分组长度均为128位. SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时,需要通过加密芯片的接 ...

  4. SM系列国密算法(转)

    原文地址:科普一下SM系列国密算法(从零开始学区块链 189) 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7. ...

  5. 2017-2018-2 20179207 《网络攻防技术》第十三周作业 python3实现SM234算法

    国密算法SM234 的python3实现 国家标准 GM/T 0002-2012 <SM4分组密码算法> GM/T 0003.1-2012 <SM2椭圆曲线公钥密码算法 第1部分:总 ...

  6. OpenSSL 1.1.1 国密算法支持

    OpenSSL 1.1.1 国密算法支持 https://www.openssl.org/ https://github.com/openssl/openssl OpenSSL 1.1.1 新特性: ...

  7. 实现 RSA 算法之改进和优化(第三章)(老物)

    第三章 如何改进和优化RSA算法 这章呢,我想谈谈在实际应用出现的问题和理解. 由于近期要开始各种忙了,所以写完这章后我短时间内也不打算出什么资料了=- =(反正平时就没有出资料的习惯.) 在讲第一章 ...

  8. sm1、sm2、sm3、sm4简单介绍

    转自:https://blog.csdn.net/andylau00j/article/details/54427395 国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4.密钥 ...

  9. python实现AES/DES/RSA/MD5/SM2/SM4/3DES加密算法模板汇总

    都是作者累积的,且看其珍惜,大家可以尽量可以保存一下,如果转载请写好出处https://www.cnblogs.com/pythonywy 一.md5加密 1.简介 这是一种使用非常广泛的加密方式,不 ...

随机推荐

  1. 点击threadItem查看MessageList时传递数据

    @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {   ...

  2. (原+转)使用anaconda遇到的问题

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6669434.html 使用anaconda怎么感觉都是问题啊.... 1. Intel MKL FAT ...

  3. LUA pcall 多个返回值

    You call lua_pcall with the number of arguments you are passing and the number of results you want. ...

  4. tf.gfile

    一.功能和目的 tf.gfile模块定义在tensorflow/python/platform/gfile.py,但其源代码实现主要位于tensorflow/tensorflow/python/lib ...

  5. Quick Touch – 在 iOS 设备运行的 “Touch Bar”

    关于 Quick Touch & Touch Bar Touch Bar 其实就是在原来 MBP 的按键区顶部新增了一个长条形的OLED触控屏,提供一些常用的快捷键.(iMessage 选表情 ...

  6. Spring使用内存数据库二

    在上篇<Spring 使用内存数据库>中我们使用Hibernate作为ORM的框架,直接调用Hibernate的API进行相关的持久化操作,但在实际项目中,可能会由于公司规定等原因要求统一 ...

  7. 使用 awstats 分析 Nginx 的访问日志(IBM)

    前言 在我的上一篇文章<使用 Nginx 提升网站访问速度>中介绍了 Nginx 这个 HTTP 服务器以及如何通过它来加速网站的访问速度.在实际的网站运营中,我们经常需要了解到网站的访问 ...

  8. 进阶之路(中级篇) - 015 串口控RGB三色灯

    本文由博主原创,如有不对之处请指明,转载请说明出处. /********************************* 代码功能:串口控RGB三色灯 使用函数: Serial.flush(); / ...

  9. windbg cs

    !cs 扩展显示一个或多个临界区(critical section)或者整个临界区树 !cs Address 指定要显示的临界区地址.如果省略该参数,调试器显示当前进程中所有临界区.   :> ...

  10. class-dump在osx 10.11以后安装方法

      当Mac升级了OSX 10.11后,配置class-dump的时候,会发现逆向书上推荐的class-dump存放目录/usr/bin,class-dump存放不进去,尝试过用sudo 还是不被允许 ...