希望文章能给到你启发和灵感~
如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~
阅读指南
开篇说明
之前我们说过了几种常见加密算法,今天我们再说说另一个SM系列的算法,SM系列都是中国国家密码管理局发布的算法,他们虽然同属一个系列,但是类别确实有很大的不同,例如SM2是非对称加密算法,SM4是对称加密算法,而SM3是分组消息摘要算法;
【AES】简单说说什么是AES加密
【MD5】关于MD5,你不得不知道的概念
【RSA】简单说说什么是RSA非对称加密
一、基础环境说明
考虑环境因素,大家适当的对比自己的软硬件环境情况分析~请仔细阅读硬件、软件环境
1.1 硬件环境
MacOS Monterey 版本 12.6.8 Apple M1
1.2 软件环境
开发工具:Idea 2024
编译环境:Java 1.8.0_171
,
二、什么是SM2加密?
SM2是一种基于椭圆曲线密码学的
非对称加密算法
。同传统意义上的非对称加密算法一样,他也是有着一对公钥和秘钥的。公钥用于加密数据或验证数字签名,而私钥则用于解密数据或生成数字签名。
2.1 应用场景
- 安全通信:加密电子邮件、即时通讯等通信内容,保护通信的机密性和完整性。
- 数字签名:在电子合同、电子票据等场景中,生成和验证数字签名,确保文件的不可否认性和真实性。
- 身份认证:实现安全的身份认证机制,如在电子政务、金融服务等领域。
2.2 与RSA算法的区别
同样属于非对称加密算法, 那RSA和SM2该怎么选择呢,其实,相较于传统的公钥算法(如RSA),SM2在相同安全级别下所需的密钥长度更短
,计算效率更高
,且安全性更高
;
三、什么是SM3加密?
SM3是一种分组消息摘要算法,用于生成数据的哈希值(消息摘要),而非直接加密数据。
3.1 应用场景
- 数据完整性校验:验证数据在传输或存储过程中
是否被篡改
。 - 数字签名:与SM2等算法结合使用,在数字签名过程中生成签名数据的哈希值。
- 网络安全:在网络通信中,用于验证消息的完整性和真实性。
例如我们比较常见的情况就是:在数据传输或存储过程中,可以使用SM3对原始数据进行哈希处理,并将哈希值与原始数据一同存储或传输,以便在后续阶段验证数据的完整性
和真实性
,检验我们的数据是否发生篡改;
四、什么是SM4加密?
提示:SM4加密与SM2虽然都是SM系列,但是他们的机制却不同,因为他是
对称加密算法
,意味着他和AES一样不区分公钥和密钥,而是同一套密钥,但是密钥长度他是固定的128位
,不像AES那样有多种密钥长度;
4.1 应用场景
- 数据加密:对敏感数据进行加密保护,防止数据泄露。
- 物联网安全:在物联网环境中,保护设备间通信数据的隐私安全。
- 金融支付:在金融支付领域,确保交易信息的安全传输和存储。
五、最后
算法 | 加密方式 | 密钥长度 | 应用场景 |
---|---|---|---|
SM2 | 非对称加密 | 128位(公钥/私钥) | 安全通信、数字签名、身份认证 |
SM3 | 分组消息摘要 | 不涉及密钥长度(生成哈希值) | 数据完整性校验、数字签名辅助、网络安全 |
SM4 | 对称加密 | 128位 | 数据加密、物联网安全、金融支付 |