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

国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。

SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。

SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。

SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。

由于SM1、SM4加解密的分组大小为128bit,故对消息进行加解密时,若消息长度过长,需要进行分组,要消息长度不足,则要进行填充。

SM2,SM3,SM4的相关文档可以参考如下链接:

http://218.241.108.63/wiki/index.php/首页

SM2,SM3,SM4的C代码如下:

http://files.cnblogs.com/files/TaiYangXiManYouZhe/Sm2_sm3_sm4_c%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0.zip

补充:

当使用特定的芯片进行SM1或其他国密算法加密时,若用多个线程调用加密卡的API时,要考虑芯片对于多线程的支持情况。

随着金融安全上升到国家安全高度,近年来国家有关机关和监管机构站在国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。摆脱对国外技术和产品的过度依赖,建设行业网络安全环境,增强我国行业信息系统的“安全可控”能力显得尤为必要和迫切。

密码算法是保障信息安全的核心技术,尤其是最关键的银行业核心领域长期以来都是沿用3DES、SHA-1、RSA等国际通用的密码算法体系及相关标准,为从根本上摆脱对国外密码技术和产品的过度依赖。2010年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2算法)。为保障重要经济系统密码应用安全,国家密码管理局于2011年发布了《关于做好公钥密码算法升级工作的通知》,要求“自2011年3月1日期,在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用SM2算法。自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2算法。”

国产密码算法介绍

国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,在金融领域目前主要使用公开的SM2、SM3、SM4三类算法,分别是非对称算法、哈希算法和对称算法。

SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。

SM3算法:SM3杂凑算法是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短,例如MD5输出128比特杂凑值,输出长度太短,影响其安全性SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,因此SM3算法的安全性要高于MD5算法和SHA-1算法。

SM4算法:SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。

面临的机遇和挑战

1、推广情况说明

国家在金融领域启动国产密码算法试点工作以来,国家发改委启动了金融领域安全IC卡及密码关键产品专项支持工作,积极推动产业链发展。目前支持国密算法的软硬件密码产品共699项,包括SSL网关、数字证书认证系统、密钥管理系统、金融数据加密机、签名验签服务器、智能密码钥匙、智能IC卡、PCI密码卡等多种类型,目前已初步形成形式多样、功能互补的产品链,并保持着持续增长的势头。

2、数字认证系统(CA)的升级改造情况

2015年2月国家商业密码管理办公室发布公告称:根据要求全国第三方电子认证服务机构针对电子认证服务系统和密钥管理系统公钥算法进行了升级改造完毕已经全面支持国产算法,同时各认证服务机构正在积极推动国产算法的应用服务改造,淘汰有安全风险以及低强度的密码算法和产品。北京天威诚信作为最早成立的第三方电子认证服务机构也最早按照国密的要求完成了电子认证服务系统的升级改造,并且同步开始对服务类型的证书应用进行升级改造,目前已经累计完成150余个企业的应用升级工作,使得企业信息系统的安全性得到了极大的提升,也为我们带来了相应的经济效益。

3、挑战和机遇

虽然在SSL VPN、数字证书认证系统、密钥管理系统、金融数据加密机、签名验签服务器、智能密码钥匙、智能IC卡、PCI密码卡等产品上改造完毕,但是目前的信息系统整体架构中还有操作系统、数据库、中间件、浏览器、网络设备、负载均衡设备、芯片等软硬件,由于复杂的原因无法完全把密码模块升级为国产密码模块,导致整个信息系统还存在安全薄弱环节。

作为电子认证机构这个国产密码算法排头兵来说,由于密码服务是信息化安全建设的基础服务,密码的国产化改造和推广就成为我们重要的历史使命。为了普及和推广国产密码我们可以:一方面是产品升级改造,对于国外的产品,通过国产算法的标准出海战略,让国产算法成为国际标准从而国外的产品也就能够支持;对于国产的产品,加快国产算法模块的改造和应用,真正让国产算法为信息系统的安全自主可控;另一方面是应用的宣传和推广,国产算法虽然在安全圈里面是众所周知的事情,但是在其它领域根本就没有听说。所以对于从业者来说,就要不断对用户灌输使用国产密码算法以及尽快升级到国产算法的思想。只有从以上这两个方面入手并且持之以恒,相信国家提出的信息安全领域的自主可控战略最终就会实现。

关于国密算法 SM1,SM2,SM3,SM4 的笔记相关推荐

  1. 国密算法SM1/SM2/SM3/SM4

    原创不易,转载请注明出处. 国密算法由国家密码局发布,今天大概介绍4中国密算法,分别是SM1,SM2,SM3,SM4.他们之间异同通过下表展示. 算法名称 算法分类 算法是否公开 明文最大长度(bit ...

  2. 国密SM1\ SM2\ SM3\ SM4\ SSF33算法和国际RSA算法的对应关系

    转载自https://blog.csdn.net/hcnetbee/article/details/53692579,部分内容和排版稍作修改. 国密算法由国家密码局发布,包含SM1\ SM2\ SM3 ...

  3. 浅谈国密算法 SM1、SM2、SM3、SM4

    浅谈国密算法 国密算法是我国自主研发创新的一套数据加密处理系列算法.从SM1-SM4分别实现了对称.非对称.摘要等算法功能.特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能.当然, ...

  4. 【转】关于国密算法 SM1,SM2,SM3,SM4 的笔记

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

  5. 国密算法 SM1,SM2,SM3,SM4 -小白笔记

    国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4. SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用. SM2为非对称加密 ...

  6. 国密算法SM1,SM2,SM3,SM4的研究

    国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4,SM7,SM9,祖冲之密码算法(ZUC).密钥长度和分组长度均为128位.其中SM1.SM4.SM7.祖冲之密码(ZUC)是对 ...

  7. 国密算法(SM1,SM2,SM3,SM4)和国际算法对应关系

    加密领域主要有国际算法和国密算法两种体系.国密算法是国家密码局认定的国产密码算法.国际算法是由美国安全局发布的算法.由于国密算法安全性高等一系列原因.国内的银行和支付机构都推荐使用国密算法. 国密与国 ...

  8. 爬虫逆向基础,认识 SM1/SM2/SM3/SM4/SM7/SM9/ZUC 国密算法

    文章目录 [01x00] 简介 [02x00]算法概述 [03x00]算法详解 [03x01]SM1 分组加密算法 [03x02]SM2 椭圆曲线公钥加密算法 [03x03]SM3 杂凑算法 [03x ...

  9. SM? SM1? SM2? SM3? SM4?

    最近看了一个项目的代码,用到了SM2,SM3,SM4,瞬间懵逼,一会用SM2,一会用SM3,一会又用SM4,SM??? 简单来说,SM2,SM3,SM4 是国家密码局认定的国产密码算法,当然除了这几个 ...

最新文章

  1. CentOS下的DNS服务器搭建
  2. c++后台管理系统_【获奖案例】第三届全国医院物联网大会“中国医院物联网应用十大优秀案例”安徽医科大学第一附属医院手术室行为管理系统...
  3. XP共享访问无权限解决方法
  4. gdal进行遥感影像读写_如何使用遥感影像进行矿物勘探
  5. windows下使用cmake+mingw配置makefile(2)
  6. 【汇编优化】之linux下如何利用gdb调试汇编代码
  7. c语言自由存储区,C/C++ 内存分区以及自由存储区和堆的区别
  8. 最长公共子序列(POJ1458)
  9. win10恢复经典开始菜单_window10开始菜单经典怎么设置
  10. Bug--Mybatis报错:There is no getter for property named 'id' in 'class java.lang.Integer'
  11. 让你认识Android 开发简介及应用程序架构示例
  12. 常见分布的数学期望和方差
  13. C#打开文件夹加载图片
  14. Kotlin 使用DSL构建语法结构 看这一篇就够了~
  15. 这家SaaS公司估值50亿美元,竟然没有一个销售人员
  16. Lens5 指南:专为Kubernetes人员设计的IDE
  17. 防火墙NAT综合实验——nat控制,豁免,远程,DMZ区域(带命令)
  18. Android 10 添加安装白名单和卸载黑名单
  19. OpenFOAM学习笔记_01_icoFoam理解
  20. 用Quartus实现2-4线,3-8线,4-16线译码器及控制七段数码管

热门文章

  1. 万由NS202,ESXI虚拟机下安装OpenWRT+群晖NAS+Windows,打造All in One系统
  2. 互联网扫地僧精心总结,39W字上千道Java一线大厂面试题手册
  3. 北京航空航天计算机学院陈小武,最新2015年北京航空航天大学计算机应用技术考博考试科目.doc...
  4. 关于计算编程中的数据类型长度和大小范围
  5. abaqus要求计算机配置,Abaqus对电脑硬件配置要求-元王科技(feaworks)
  6. 推荐20个非常优秀的网站菜单设计案例
  7. tkinter学习——button的显示图片文字
  8. matlab simulink四分之一高铁车辆模型悬架主动控制
  9. 8月4日第壹简报,星期四,农历七月初七,七夕节
  10. 基于php027网上答疑系统在线答疑