国密算法简介及使用

国密算法简介

什么是国密

国密即国家密码局认定的国产密码算法,即商用密码。

国密主要有SM1,SM2, SM3, SM4。密钥长度和分组长度均为128位。

1、SM1为对称加密。其加密强度与AES(高级加密标准, Advanced Encryption Standard)相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

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

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

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

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

为什么要使用国密算法

  1. 国家在大力推进商用密码应用
  • 2011年,国密局字[2011]50号“关于做好公钥密码算法升级工作的通知”, 要求新投入运行并使用公钥密码的信息系统,应使用SM2椭圆曲线密码算法,已投入运行的信息系统应尽快进行系统升级;
  • 2012年以来,国家密码管理局以《中华人民共和国密码行业标准》的方式, 陆续公布了SM2/SM3/SM4等密码算法标准及其应用规范;
  • 2014年,国办发[2014] 6号文《国务院办公厅关于转发密码局等部门金融领域应用指导意见的通知》 要求率先在金融领域实现国产密码应用突破,力争到 2020 年实现密码全面应用;
  • 国务院办公厅【2018】36号文,要求金融和重要领域在2022年前落实并完成国产密码改造工作;
  • 《密码法》2020年1月1日式实行, 标志着国家在规范密码应用和管理,促进密码事业发展,保障网络与信息安全,维护国家、社会、保护公民、法人、其他组织合法权益的决心;
  • 密码测评在各类信息化项目中开展,遵循2018年2月8日《信息系统密码应用基本要求》,符合《信息系统密码应用测评要求》;
  • 《信息安全技术 网络安全等级保护基本要求》即等保2.0, 强化了密码技术的应用和管理要求,包括通信传输、数据存储、身份鉴别、产品采购、使用和密钥管理中均有密码相关的要求。
  1. 网络安全形势不容乐观
  • 国际通用加密算法存在安全风险:RSA算法后门事件的爆出说明美国可以用较短时间解密RSA加密数据
  • 我国网站99%使用国外CA厂商非国密数字证书,存在系统性风险:比如,2016年10月,美国GlobalSign的一个误操作导致淘宝、京东、天猫等网站无法访问,直接影响我国6亿网购用户

Java代码中使用国密算法

引入依赖

以一个maven项目为例,引入依赖,代码如下。

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>5.8.8</version>
</dependency>
<dependency>
	<groupId>org.bouncycastle</groupId>
	<artifactId>bcprov-jdk15to18</artifactId>
	<version>1.69</version>
</dependency>

依赖安装好之后,在测试类中进行演示。

使用SM2,与RSA算法类似,属于非对称加密

随机生成的密钥对
自定义密钥对

使用SM3,与MD5算法类似,属于摘要算法

SM3算法

使用SM4,类似于AES算法,属于对称加密算法。

SM4算法

更多的使用方法可以查看源码,也可以参考Hutool文档
源码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值