金融安全算法介绍系列5——国密算法

前言:

为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。

在这里插入图片描述


1. 简介

国密即国家密码局认定的国产密码算法。主要有 SM1,SM2,SM3,SM4。密钥长度和分组长度均为 128 位。其他还有 SM7、SM9、祖冲之密码算法等。

1.1 SM1

SM1 为对称加密。其加密强度和 AES 差不多。该算法目前未公开,调用该算法时,需要通过加密芯片的接口进行调用,仅以 IP 核的形式存在于芯片中。

SM1 加解密的分组长度为 128 bit,密钥长度都为 128 bit,对数据进行加解密时,若消息长度过长,需要进行分组,消息长度不足,则要进行填充补位。

1.2 SM2

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

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

1.3 SM3

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

1.4 SM4

SM4 分组密码算法是用于无线局域网和可信计算系统的专用分组密码算法。对称加密,密钥长度和分组长度均为 128 bit。

加密算法与密钥扩展算法都采用 32 轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

参考:

  1. SM1分组密码
  2. 国密SM1算法、SM4算法与国外算法的安全性比较
  3. 浅谈国密算法
  4. 关于国密算法 SM1,SM2,SM3,SM4 的笔记
  5. 国密算法SM1/SM2/SM3/SM4
  6. 谈谈PBOC3.0中使用的国密SM2算法
  7. ECC加密算法入门介绍
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页