关于SM2、SM3、SM4、SM9这四种国密算法

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 本文介绍了四种国密算法——SM2、SM3、SM4和SM9。SM2是一种基于椭圆曲线的非对称加密算法,用于数据加密和数字签名;SM3是哈希算法,用于数字签名和消息完整性验证;SM4是对称加密算法,用于数据加密和解密;SM9是基于标识的非对称密码算法,适用于物联网环境中的数据安全和隐私保护。

以下是一个关于SM2、SM3、SM4、SM9这四种国密算法的表格:

算法名称

类型

描述

发布时间

应用场景

SM2

非对称加密算法

基于椭圆曲线密码算法,包含加解密算法、数字签名算法,安全强度高于RSA 2048位,运算速度快

2010年12月17日

数字签名和验证、消息认证码的生成与验证以及随机数的生成,适用于电子认证服务系统等

SM3

密码杂凑算法

结构上与SHA-256类似,但设计上有特定改进以增强安全性,生成256位的哈希值

-

主要用于数字签名和消息完整性验证

SM4

分组加密算法

与AES算法具有相同的密钥长度、分组长度(128bit),算法未公开

2012年3月21日

适用于密码应用中使用分组密码的需求

SM9

基于标识的非对称密码算法

使用椭圆曲线实现基于标识的数字签名算法、密钥交换协议等,加密强度等同于3072位密钥的RSA加密算法

2016年3月28日

主要用于用户的身份认证,可替代基于数字证书的PKI/CA体系

SM2  

类型:非对称加密算法,基于椭圆曲线密码学(ECC)。

用途:主要用于数据加密、解密、数字签名和身份认证等操作。它适用于国家关键信息系统的信息安全保障。

特点

  • 安全性高:基于椭圆曲线离散对数难题,能够有效防止黑客攻击。
  • 效率高:运算效率较高,能满足大量数据加密、解密和数字签名的需求。
  • 灵活性好:支持多种密钥长度,可根据实际需求灵活选择。
  • 自主创新:具有我国自主知识产权,能保障国家信息安全。

SM3

类型:哈希算法。

用途:主要用于数字签名和消息完整性验证。它是中国国家密码算法标准之一。

特点

  • 生成256位的哈希值。
  • 使用32轮的迭代运算,依赖于消息扩展、压缩函数、消息混淆等步骤。
  • 安全性较高,有特定的改进以增强安全性。

SM4

类型:分组密码算法,对称加密算法。

用途:可用于替代DES/AES等国际密码算法,实现数据加密和解密。

特点

  • 明文、密文以及密钥长度均为128位。
  • 采用32轮非线性迭代,涉及异或、合成置换、S盒变换等操作。
  • 解密过程仅需将加密密钥反序使用,算法结构简洁且高效。

SM9

类型:基于标识的非对称密码算法。

用途:在物联网(IoT)环境中实现数据安全和隐私保护,支持数字签名、身份验证和密钥交换等操作。

特点

  • 允许设备和实体使用其身份信息生成密钥对,简化了身份管理和密钥交换过程。
  • 支持群签名,群成员可以使用群签名密钥对进行签名操作,验证方可以验证签名的有效性,但无法确定签名的确切来源。
  • 在资源受限的物联网设备上运行时非常高效,适用于移动设备和嵌入式系统。
  • 提供了较强的隐私保护功能,允许用户在不泄露其真实身份的情况下进行身份验证和签名操作。
目录
相关文章
|
1月前
|
算法 安全 物联网
如何应用SM2算法进行身份认证
【10月更文挑战第5天】如何应用SM2算法进行身份认证
59 1
|
1月前
|
存储 算法 安全
SM2算法的应用场景有哪些?
【10月更文挑战第5天】SM2算法的应用场景有哪些?
69 1
|
6月前
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
226 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
2月前
|
存储 算法 安全
超级好用的C++实用库之国密sm4算法
超级好用的C++实用库之国密sm4算法
55 0
|
2月前
|
算法 安全 Serverless
超级好用的C++实用库之国密sm3算法
超级好用的C++实用库之国密sm3算法
60 0
|
6月前
|
算法 数据库 数据安全/隐私保护
铜锁探密,SM3杂凑算法加强至pro版
铜锁探密,SM3杂凑算法加强至pro版
158 0
|
5月前
|
Java BI C#
技术笔记:SM4加密算法实现Java和C#相互加密解密
技术笔记:SM4加密算法实现Java和C#相互加密解密
87 0
|
算法 JavaScript 前端开发
JavaScript学习 -- SM4算法应用实例
JavaScript学习 -- SM4算法应用实例
191 0
|
6月前
|
算法 JavaScript 前端开发
JavaScript学习 -- SM4算法应用实例
JavaScript学习 -- SM4算法应用实例
172 0
|
6月前
|
算法 JavaScript 前端开发
JavaScript学习 -- SM3算法基本原理
JavaScript学习 -- SM3算法基本原理
115 0