国密算法概述
更新时间:2024-04-02 来源:网络 作者:网络

国密算法概述

国密算法,即国家密码算法,是由中国国家密码管理局制定和公布的密码算法标准及其应用规范。这些算法标准包括临时加密算法、非临时加密算法、杂凑算法等多种类型,目的在国家保障信息安全方面,减少对外部密码产品的依赖,并提升网络信息安全和自主可控能力。国密算法不仅适用于中国国内的信息系统,还在国际上得到认可和应用。

国家密谋的发展背景

国密算法的推出背景是加强国家信息安全,减少对外部密码技术的依赖,尤其是在国际政治形势复杂多变的大环境下。随着信息技术的发展和网络应用的普及,对信息安全的重要性程度极大增加,国家密码算法因此成为国家战略的重要组成部分。

国家密码算法的主要组成

国家密码算法的主要组成.png

国家密码算法主要包括以下几种:

  1. SM1:终极加密算法,128位密钥长度,备份加密。
  2. SM2:非精确加密算法,基于椭圆曲线算法,256位密钥长度。
  3. SM3:杂凑算法,用于数字签名和验证,消息认证码的生成与验证。
  4. SM4:临时加密算法,用于替代 DES/AES 等国际算法。

国密算法的应用场景

国密算法被广泛评估中国的电子政务、电子商务、金融等多个领域,用于保护重要信息流转的数据安全。例如,在金融领域,国密算法被用于SSL证书来交易双方的身份认证和数据传输保密性。

国家密码算法与国际标准的联系

国家密码算法中的一些算法如SM2、SM3、SM4已被纳入国际标准,这表明国家密码算法在国际上也得到了认可。

国密算法详解

SM1 算法详解

SM1是一种分组加密算法,加密算法中的分组加密算法,其分组长度、密钥长度均为128bit,算法安全保密强度与AES相当,但算法不公开,仅以IP加密的形式存在于芯片上中,需要通过加密芯片的接口进行调用。

SM2 算法详解

SM2是基于椭圆曲线密码的公钥密码算法标准,其密钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。

SM3 算法详解

SM3是一种密码杂凑算法,用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。

SM4算法详解

SM4是分组加密算法,与SM1类似,是我国自主设计的分组加密算法,用于替代DES/AES等国际算法。SM4算法与AES算法具有相同的分组长度、分组长度,均为128bit。 2012年3月21日发布,适用于密码应用中使用分组密码的需求。

国家密码算法的应用案例

国家密码算法在多个领域内发挥着重要作用,例如:

  • 在金融领域,国家加密算法被用于SSL证书来交易双方的身份认证和数据传输的保密性。
  • 在车联网领域,国密算法被用于车辆货车T-BOX存储和传输数据的加密。
  • 在数据存储领域,国密算法被用于保证数据的安全存储。

国家密码算法与国际密码算法的比较

国密算法与国际算法在技术上基于相似原理,但参数与细节存在差异。国密算法在分组长度、密钥长度、安全性、爆炸速度等方面都与国际同类算法相似的对比。

国家密码算法在未来会有哪些新的发展趋势

  1. 自主可控:国密算法将继续强化自主可控特性,以适应国家信息产品国产化的战略需要。随着本土化趋势的进一步加强,国密算法有望实现对RSA等国际算法的加速替代
  2. 技术创新:国家密码算法未来可能通过引入新的密码算法和抗量子密码学的研究来提升其安全性。量子计算的发展可能对传统密码算法构成威胁,因此量子安全的数字签名算法将成为发展趋势。
  3. 国际标准化:国密算法将继续参与国际标准化工作,提高其国际认可度和影响力。通过与国际标准组织和密码学界的交流与合作,国密算法将得到进一步的国际推广。
  4. 广泛应用:国密算法将在更广泛的领域得到应用,如物联网、数字经济等。随着《密码法》的形成和商密评估要求的实施,国密算法体系将进一步融入国家的信息生活中。
  5. 性能优化:国家密码算法的性能优化将是未来的一个重点。通过算法优化和硬件支持,国家密码算法将更好地适应高性能计算和大规模数据处理的需求。
  6. 安全性挑战:随着密码学技术和量子计算机的发展,国家密码算法将面临更大的挑战。现有国家密码算法的改进和新算法的研发将成为应对这些挑战的重要途径。

了解更多

基于Go语言的国密算法:

同济研究院国密算法

SM2: 国密椭圆曲线算法库
. 支持Generate Key, Sign, Verify基础操作
. 支持加密和不加密的pem文件格式(加密方法参见RFC5958, 具体实现参加代码)
. 支持证书的生成,证书的读写(接口兼容rsa和ecdsa的证书)
. 支持证书链的操作(接口兼容rsa和ecdsa)
. 支持crypto.Signer接口

SM3: 国密Hash算法库(摘要算法)
. 支持基础的sm3Sum操作
. 支持hash.Hash接口

SM4: 国密分组密码算法库
. 支持Generate Key, Encrypt, Decrypt基础操作
. 提供Cipher.Block接口
. 支持加密和不加密的pem文件格式(加密方法为pem block加密, 具体函数为x509.EncryptPEMBlock)

Fabric的国密扩展方法

一种是基于Fabric本身扩展国密包。这种改法不用对Golang标准库做任何地改动,所有的修改都在Fabric项目源码上进行;

其一,把国密的库进行移植,封装gm-crypto;

其二,扩展Fabric现有的bccsp模块;

其三,修改x509证书相关的地方。

Fabric-CA主要是为了实现对加入联盟链的成员的身份控制以及数据生成保管。Fabric-CA中,Lib,主要是接口的实现,主要在解析申请证书请求以及签发证书流程要替换为国密算法;Util,该包数据工具类,主要在证书的编解码等操作中扩展国密算法;Vendor中,替换对Fabric的包的引用,提供对国密算法的支持

在Fabric中扩展国密算法,大概有以下几个方面:第一,Fabric框架扩展支持国密算法;第二,Fabric-CA扩展支持国密算法;第三,Fabric-SDK扩展支持国密算法;第四,fabric-baseimage、fabric-baseos镜像扩展支持国密算法;第五,Fabirc框架扩展支持加载.so库。”

另一种方法是基于Golang标准库扩展国密。这种方案是直接扩充Golang标准库,改法更为清晰。

标签

立即加入,让您的品牌更加安全可靠!
申请SSL证书