SM系列算法详解:从国际通用算法到国密算法崛起之路

1、背景

SM系列国密算法是由中国国家密码管理局于2007年颁布的一组密码算法标准,是中国自主研发的一种新一代密码技术。密码算法是保障信息安全的核心技术,尤其是最关键的银行业核心领域长期以来都是沿用3DES、SHA-1、RSA等国际通用的密码算法体系及相关标准。

在一些行业,国密算法已经成为一种强制性政策,其他行业也开始陆续推广:

1、2014年国务院办公厅第6号文件,提出2020年实现国产密码在金融领域的全面应用。

2、2014年9月3日,银监会发文《关于应用安全可控信息技术加强银行网络安全和信息化建设的指导意见》指出“优先应用安全可控信息技术”,并从2015年起,各银行金融机构对安全可控信息技术的应用不低于15%的比例逐年增加,2019年达到不低于75%。

3、2015年1月13日,人民银行印发《关于推动移动金融技术创新健康发展的指导意见》中指出“优先采用自主可控的产品和密码算法”。

4、中共中央办公厅、国务院办公厅和人民银行2020年140号文《金融领域信息系统国产密码改造基线要求》和《金融领域国产密码改造评价指标体系》相关要求,所有交易保护必须使用国密算法进行保护。

2、概述

SM系列算法主要包含SM1-SM9,其中SM2/SM9是非对称算法(公钥秘密)、SM3是单向散列函数,其余都为对称算法。

简单对比下以下几种算法:

SM系列密码类型说明适用场景替代的国际通用算法是否公开
SM1对称密码密钥长度128比特,仅以 IP 核的形式存在于芯片中系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机 AES
SM2非对称加密支持多种密钥长度,椭圆曲线(ECC)公钥加密算法数字签名、密钥交换和公钥加密,速度慢,适用少量数据加密解密过程,一般适用于数据传输RSA/DH/ECDSA/ECDH
SM3单向散列函数密钥长度256比特,密码杂凑算法,采用哈希算法数字签名和验证、消息认证码的生成与验证以及随机数的生成MD5/SHA-1/SHA-2
SM4对称密码密钥长度分组长度128比特,无线局域网标准的分组加密算法数据加密、数字签名、密钥交换,速度快,适用大量数据加密解密过程,一般适用于批量数据存储DES/3DES/AES
SM7对称密码密钥长度138比特,是一种分组密码算法SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。
SM9非对称加密不需要申请数字证书,将用户的标识作为公钥,省略了交换数字证书和公钥过程端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。替代基于数字证书的PKI/CA体系

首先来看下什么是对称算法和非对称算法。

2.1 对称算法

定义:同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

优点:加密、解密处理速度快,具有很高的数据吞吐率,硬件加密实现可达到几百兆字节每秒,软件也可以达到兆字节每秒的吞吐率。密钥相对较短。

缺点:

  • 对称密钥算法的密钥分发过程十分复杂,所花代价高。
  • 多人通信时密钥组合数量会出现爆炸性膨胀,使密钥分发更加复杂化,N个人进行两两通信,总共需要的密钥数为C2N=N(N-1)/2。
  • 通信双方必须统一密钥,才能发送保密的信息。
  • 对称密码算法还存在数字签名困难问题

对称加密算法工作流程图:

2.2 非对称算法

定义:非对称加密算法需要两个密钥来进行加密和解密,这两个密钥其中一个是公开密钥(public key,简称公钥),可以随意发布;另一个是私有密钥(private key,简称私钥),只能自己持有。

传输过程:

  • 接收方B首先生成一对密钥同时将其中的一把作为公开密钥
  • 得到公开密钥的发送方A使用该密钥对需要加密的信息进行加密后再发送给接收方B
  • 接收方B再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。

优点:

  • 网络中每一个用户只需要保护自己的私钥,N个用户仅需要产生N对密钥,密钥少,便于管理。
  • 密钥分配简单,不需要秘密的通道和复杂的协议来传送密钥。
  • 可以完成数字签名和数字鉴别。

缺点:

  • 公钥密码是对大数进行操作,计算量特别浩大,速度远比不上私钥密码体制。
  • 公钥密码中要将相当一部分密码信息予以公布,势必对系统产生影响。
  • 在公钥密码中,若公钥文件被更改,则公钥被攻破。
  • 与对称密码体制相比,非对称密码体制加密、解密处理速度较慢,同等安全强度下,非对称密码体制的密钥位数要求多一些。
2.3 单项散列函数

定义:单向散列函数算法也称Hash(哈希)算法,是一种将任意长度的消息压缩到某一固定长度(消息摘要的)的函数(该过程不可逆)。

SM3是我国国家标准的商用密码体系中提供的一种密码学哈希算法,首版由国家密码管理局于2010年12月17日发布。目前最新版本为2016年发布的GB/T 32905-2016 信息安全技术 SM3密码杂凑算法。

SM3算法过程:

  1. 明文进行补位处理,使明文长度为512的整数倍。(散列算法是将任意长度的输入数据映射为固定长度输出)
  2. 将补位后的明文拆分为n个512位的块。
  3. 对n个块进行迭代,依次对每个块做SM3压缩运算,最终得到8个散列字(一个字4个字节)。
  4. 将最终的8个散列字拼接起来,得到最终的散列值,共32个字节,256位。

3、主要加密算法详解

目前我国主要使用公开的SM2、SM3、SM4作为商用密码算法。

3.1 SM2:

定义:SM2算法是一种基于椭圆曲线密码的公钥密码算法,其安全性主要基于椭圆曲线离散对数难题。。SM2算法包括密钥生成算法、加密算法、解密算法和数字签名算法等部分。常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。

优势:

  • 安全性高:SM2算法基于椭圆曲线离散对数难题,安全性较高,能够有效地防止黑客攻击。
  •  效率高:SM2算法具有较高的运算效率,能够满足大量数据加密、解密和数字签名的需求。
  •  灵活性好:SM2算法支持多种密钥长度,可根据实际需求灵活选择密钥长度,适用于不同的应用场景。
  • 自主创新:SM2算法是我国自主创新的密码算法,具有独立的知识产权,能够保障国家关键信息系统的信息安全。

应用:

在实际应用中,一般由服务器端生成一对密钥,其中公钥发送给客户端,客户端使用公钥加密,服务器端使用私钥解密。

3.2 SM3:

定义:将输入的消息分成512位的分组,并对每个分组进行填充、分组、扩展、迭代压缩等操作,最后输出256位的摘要值。具体算法过程见2.3介绍。

适用场景:

电子支付与身份认证:在电子支付和身份认证领域,SM3 可用于对重要信息(如交易明细、用户身份)进行哈希计算,确保数据的完整性与不可篡改性。例如:

  • 电子支付: 对交易数据进行 SM3 哈希计算,生成摘要并与交易一同传输。
  • 身份认证: 使用 SM3 哈希存储用户密码或身份信息摘要,防止数据泄露。
3.3 SM4:

定义:

SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。

算法过程:

应用:

其在实现高强度加密的同时,保持了较高的加解密速度,适用于大量数据的实时加密与解密,如金融交易、在线支付等对时间敏感的应用场景。

4、总结

综上所述,国密算法中的SM2、SM3和SM4算法都具有较高的安全性,可以满足不同场景下的密码应用需求。在实际应用中,可以根据具体的需求和场景选择合适的算法进行使用。

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国密算法系列SM4视频课程(七日成蝶)是一门以SM4加密算法为核心内容的视频课程。SM4是中国自主研发的分组加密算法,是国密算法系列中的一种,也是国际上公认的安全强度高、运算效率高的对称加密算法之一。 这门七日成蝶的SM4视频课程旨在为学习者提供系统全面的SM4算法知识和实践经验。首先,通过紧凑且易理解的视频讲解,课程将深入介绍SM4算法的基本原理、结构和运算过程。学习者将了解到SM4算法的加密、解密和密钥扩展等核心过程,对SM4算法的内部运作方式有了充分的了解。 除了理论知识的介绍,课程还提供了大量的实际案例和编程实践,帮助学习者更好地掌握SM4算法的具体应用。通过实验和练习,学习者将学会如何使用编程语言实现SM4算法的加密、解密和密钥管理等功能。这些实践操作能够进一步加深学习者对SM4算法的理解和应用能力。 此外,视频课程还涵盖了SM4算法在信息安全领域中的应用场景和实际案例,例如网络通信安全、文件加密和数据保护等。通过这些案例的介绍,学习者将对SM4算法的实际应用有着更深入的认识,能够将所学的知识应用到实际的信息安全工作中去。 总而言之,国密算法系列SM4视频课程(七日成蝶)是一门全面系统地介绍SM4算法的教育课程。通过该课程的学习,学员将能够获得对SM4算法的深入理解,具备使用SM4算法进行数据加密、解密和密钥管理的实际技能,以应对信息安全领域中的各种挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值