当前位置:   article > 正文

SM国密加密算法简介_sm加密

sm加密
国密(商密)算法算法类型是否公开技术特点应用场景
SM1对称密码算法否,需要加密芯片的接口进行调用加密强度与AES相当电子政务/商务,智能IC卡、加密卡等
SM2非对称密码算法基于ECC,签名速度与密钥生成速度快于RSA;安全强度高于2048位RSA,较RSA算法快百倍以上,已成国际标准。数字签名、密钥交换
SM3哈希(杂凑)密码算法基于SHA-256改进,安全性高于MD5和SHA-1,已成为国际标准。数字签名、完整性验证
SM4对称密码算法实现简单,成本低,增加非线性变换,安全性高于DES。无线局域网加密
SM7对称密码算法否,需要加密芯片的接口进行调用安全性高于Mifare算法

电子标签防伪

SM9非对称密码算法标识密码,加密强度等同于3072位RSA算法,已成为国际标准。数据加密、身份认证、通话加密、通道加密
ZUC(祖冲之算法)流密码算法4G移动通信加密标准,硬件实现开销小于AES。图像加密

1.SM1算法(不公开)

SM1 为对称加密,分组长度和密钥长度都是 128 比特,其加密强度与 AES 相当。该算法不公开,仅以 IP 核的形式存在于芯片中。调用该算法时,需要通过加密芯片的接口进行调用。

2.SM2算法

SM2 算法是我国在 ECC 椭圆曲线算法基础上自主设计的公钥密码实现,包括 SM2-1 椭圆曲线数字签名算法,SM2-2 椭圆曲线密钥交换协议,SM2-3 椭圆曲线公钥加密算法,分别用于实现数字签名、密钥协商和数据加密等功能。不同于 ECDSA(数字签名)、ECDH(密钥交换) 等国际标准,SM2 算法采取了更为安全的机制,它避免可能存在的弱曲线,对抗已知的攻击手段,推荐了一条 256 位的曲线作为标准曲线。

国内目前主要采用 RSA 算法(其他的,Diffie-Hellman/ECDSA/ECDH 等国际算法), 正在陆续过渡到 SM2 国密算法。在相同安全性能下,RSA 算法所需的公钥数要多于 SM2 算法,160位的SM2算法与1024位的RSA算法具有相同的安全等级。同等安全强度下,ECC 密钥的长度比 RSA 密钥的长度要小得多,并且,随着 RSA 密钥的翻倍,ECC 密钥并不需要翻倍就能获取同等的安全强度。这一点对于移动设备、嵌入式以及其它功耗受限、计算能力受限的场景来说就很有用了。

3.SM3算法

SM3 是我国自主设计的哈希算法,是一种密码散列函数标准,适用于商用密码应用中的 息认证码 的生成与验证和 数字签名 以及 伪随机数 的生成,可满足多种密码应用的安全需求。

SM3 算法公开,为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短。SM3 算法对输入长度小于 2 的 64 次方的比特消息,经过填充和迭代压缩,生成长度为 256 比特的杂凑值,其中使用了异或、模、模加、移位、与、或、非运算,由填充、迭代过程、消息扩展和压缩函数所构成。因此 SM3 算法的安全性要高于MD5 算法和 SHA-1 算法,其效率与 SHA-256 相当。

目前主要采用 MD5/SHA 算法,正在陆续过渡到 SM3 国密算法。SM3 算法与国际 SHA 算法相对应, 特别与 SHA-2 算法类似

4.SM4算法

SM4 算法是在国内广泛使用的 WAPI 无线网络标准中使用的加密算法,是一种32轮的迭代非平衡 Feistel 结构的分组加密算法,其密钥长度和分组长度均为128一个分组算法,用于无线局域网产品。用于替代DES/AES等国际算法。

SM4 算法的加解密过程中使用的算法是完全相同的,唯一不同点在于该算法的解密密钥是由它的加密密钥进行逆序变换后得到的。

5.SM7算法(不公开)

SM7算法,是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。

6.SM9算法

SM9算法对标国际IBC算法,是基于标识的非对称密码算法体系,该算法于2016年正式发布,在应用的成熟度方面还在不断完善,目前在电子邮件领域有一些实际应用。

SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。可以替代基于数字证书的PKI/CA体系。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点,从而开启了普及密码算法的大门。

7.ZUC祖冲之算法

祖冲之算法是中国自主研究的流密码算法,是我国第一个走向国际的国密算法,对标国际的 RC4 算法,属于对称密码算法中的序列密码算法。目前主要是承担 LTE 网络中语音流加密的功能,是运用于移动通信4G网络中的国际标准密码算法。该算法包括祖冲之算法( ZUC )、加密算法( 128-EEA3 )和完整性算法( 128-EIA3 )三个部分。目前已有对 ZUC 算法的优化实现,有专门针对 128-EEA3 和 128-EIA3 的硬件实现与优化。

附录

证书标准规范X.509

X509 协议,是 PKI 技术体系中应用最为广泛、也是最为基础的一个国际标准。它的主要目的在于定义一个规范的数字证书的格式。大多数认证机构颁发的证书,都使用由 ITU (国际电信联盟)和 ISO (国际标准化组织)制定的 X.509 规范。

X.509 证书包括:

  • 签名前的证书--签名对象的信息
  • 数字签名算法--对证书签名时所使用的算法
  • 数字签名--对证书使用数字签名

X.509 证书编码格式:

  • .DER :用二进制 DER 编码的证书,都是二进制格式
  • .PEM :用 ASCLL 编码的证书,都是 base64 格式

X.509 文件扩展:

  • .crt :证书文件,编码方式有可能是 .pem ,也有可能是 .der
  • .cer :证书文件,多用于 Windows 平台,编码方式有可能是 .pem,也有可能是 .der
  • .csr :证书签名请求,是向权威证书颁发机构获得签名证书的申请,其实就是一个带有自身机构信息的公钥。通常在生成这个申请的时候,同时也会生成一个私钥

Spirent Cyberflood GmSSL

国密体系中的双证书并不是站点部署自适应的两种证书(RSA证书+SM2证书),而是指加密证书(加密密钥对)+签名证书(签名密钥对)。国密的双证书体系和传统的单证书,最大的区别就是将单证书的的加密和签名功能一分为二了-----加密证书只用来进行加密,签名证书只用来签名。

加密证书和签名证书主要区别就是使用相同的DN(Distinguished Name可识别名),密钥用法(KeyUsage)不一样。
加密证书:Key Encipherment,Data Encipherment,Key Agreement
数字签名:Digital Signature,Non-Repudiation

传统的单证书:

通常情况下,服务器会部署一张证书,用于签名和加密,这就是所谓的单证书

  • 签名时,服务器使用自己的私钥加密信息的摘要(签名),客户端使用服务器的公钥(包含在证书中)进行解密,对比摘要是否正确,若正确,则客户端就确定了服务器的身份,即签名验证成功。
  • 加密时,服务器和客户端协商出绘画密钥(一般为对称密钥),绘画密钥的产生根据密钥协商算法的不同,过程有所不同,但都会用到证书的公钥和私钥,也就是说证书也用在加密场景中。

在单证书配置下,服务器的公钥和私钥由服务器负责保存。服务器要对私钥特别保存,如果泄露出去就会发生很大的安全风险。客户端的公钥和私钥一般在通信过程中动态产生,客户端也不会存储。

双证书:

  • 签名证书仅用于数字签名,提供身份认证服务,私钥由用户私有,保证身份信息安全;
  • 加密证书仅用于数据加密,提供保密性服务,私钥由用户和管理机构共有,管理机构可以通过共有的加密证书私钥来解密用户流量。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/809900
推荐阅读
相关标签
  

闽ICP备14008679号