国密算法学习

一、国产算法概述

简介

国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,在金融领域目前主要使用公开的SM2、SM3、SM4三类算法,分别是非对称算法、哈希算法和对称算法。

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

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

     SM4算法:SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。

常用国产密码算法

国密算法是我国自主研发创新的一套数据加密算法,经过多年的发展,已经颁布多个算法标准,包括SM1、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)等。

目前应用最广泛的是SM2、SM3、SM4三种商用密码算法,分别为非对称加密算法、哈希算法和对称加密算法

1. SM1算法。
该算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度和密钥长度均为128位,算法的安全保密强度及相关软硬件实现性能与AES算法相当,目前该算法尚未公开,仅以IP核的形式存在于芯片中。调用该算法时,需要通过加密芯片的接口进行调用。

2. SM2算法
该算法是一种基于ECC算法的非对称密钥算法,其加密强度为256位,其安全性与目前使用的RSA1024相比具有明显的优势。

由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)

3. SM3算法
该算法也叫密码杂凑算法,属于哈希(摘要)算法的一种,杂凑值为256位,和SM2算法一起被公布。功能与MD5,SHA-1相同。产生256位的编码。该算法为不可逆的算法。具体算法也是保密。

4. SM4算法
该算法为对称加密算法,随WAPI标准一起被公布,其加密强度为128位。此算法是一个分组算法,用于无线局域网产品。

该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

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

5. SM7对称密码
SM7算法是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7的算法文本目前没有公开发布。SM7适用于非接IC卡应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。

6. SM9非对称算法
SM9是基于对的标识密码算法,与SM2类似,包含四个部分:总则,数字签名算法,密钥交换协议以及密钥封装机制和公钥加密算法。在这些算法中使用了椭圆曲线上的对这一个工具,不同于传统意义上的SM2算法,可以实现基于身份的密码体制,也就是公钥与用户的身份信息即标识相关,从而比传统意义上的公钥密码体制有许多优点,省去了证书管理等。
双线性对的双线性的性质是基于对的标识密码SM2中的总则部分同样适用于SM9,由于SM9总则中添加了适用于对的相关理论和实现基础。

其他参考:浅谈DES、RAS、SHA-256与SM1、SM2、SM3、SM4区别

SM2

详解国密SM2的数字签名

SM2算法的加密签名消息语法规范

OID

Object identifier 对象标识符,OID智库

1、国密标准GM/T 0010定义的oid如下:

  • 数据类型data                                                             1.2.156.10197.6.1.4.2.1
  • 签名数据类型signedData                                           1.2.156.10197.6.1.4.2.2
  • 数字信封数据类型envelopedData                              1.2.156.10197.6.1.4.2.3
  • 签名及数字信封数据类型signedAndEnvelopedData  1.2.156.10197.6.1.4.2.4
  • 加密数据类型encryptedData                                      1.2.156.10197.6.1.4.2.5
  • 密钥协商类型keyAgreementInfo                                1.2.156.10197.6.1.4.2.6

国密及PKCS7的OID

2、证书OID

 

SM2国密算法证书解析

国密开发系列

写给开发人员的使用密码学 from 陈正勇,公众号:云水木石

二、国密文档

国密局

文档下载方式:

1、国密地址: 国家标准全文公开系统.

2、标准标号查询: 工标网.

eg:《SM2密码算法加密签名消息语法规范》

在全文公开系统查询到是:

在工标网上查到是:

 

posted @ 2021-07-29 20:11  peterYong  阅读(7105)  评论(0编辑  收藏  举报