中移(苏州)软件技术有限公司面试问题与解答(1)—— 可信计算国密标准

接前一篇文章:中移(苏州)软件技术有限公司面试问题与解答(0)—— 面试感悟与问题记录

本文参考以下文章:

信息安全第五篇(国密加密算法)_domestic encryption algorithm-CSDN博客

国密加密算法有多安全呢?

特此致谢!

本文对于中移(苏州)软件技术有限公司面试问题中的“(16)是否了解可信计算国密标准?请介绍一下。”进行解答与解析。

一、什么是国密?

主要有:SM1SM2SM3SM4。密钥长度和分组长度均为128位。

顾名思义,国密就是国产化的密码算法,即国家密码局认定的国产密码算法。在我们日常开发过程中会接触到各种各样的密码算法,如RSA、SHA256 等等。为了达到更高的安全等级,许多大公司和国家会制定自己的密码算法。国密就是这样一组由中国国家密码管理局制定的密码算法。在国际形势越发复杂多变的今天,密码算法的国产化替代,在一些领域已经成为了一股势不可挡的潮流。

国密的官方名称为国家商用密码,简称商密,拼音缩写是SM。这也是国密标准中SM1/2/3/4/7/9等算法名称的来源。国密算法的命名方式非常简单直接,就像“绵阳九所”、“二机部”一样,都是“分类+序号”的组合。其中SM1和SM4是对称算法,对标AES;SM2 是非对称算法,对标RSA、ECDSA;SM3是摘要算法,对标MD5。

在基础的国密算法之上,可以构造一个国密的垂直生态,比如实现国密算法的硬件、提供国密支持的密码库、加入国密流程的TLS握手协议等等。正如安全需要纵深防御一样,基于国密的信任链也需要有全软件栈上的支持。

二、国密算法介绍

  • SM1

SM1算法是国家密码管理部门审批的分组密码算法分组长度和密钥长度都为128比特,算法安全保密强度及相关软硬件实现性能与AES相当。该算法不公开,仅以IP核的形式存在于芯片中。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
SM1与AES的对比如下表所示:

SM1 AES
算法结构 基本椭圆曲线(ECC) Substitution-Permutation
区块长度 128bit 128bit
密钥长度 128bit 2048-4096bit
秘钥生成速度
解密加密速度
  • SM2

SM2算法和RSA算法都是公钥密码算法。SM2算法是一种更先进安全的算法,在我国商用密码体系中被用来替换RSA算法。SM2性能更优更安全:密码复杂度高、处理速度快、机器性能消耗更小。

SM2 RSA
秘钥长度 基本椭圆曲线(ECC) 基于特殊的可逆模幂运算
计算复杂度 完全指数级 亚指数级
存储空间 192-256bit 2048-4096bit
秘钥生成速度 较RSA算法快百倍以上
解密加密速度 较快 一般
  • SM3

SM3是摘要加密算法。国产SM3是中国国家密码管理局于2010年公布的中国商用密码杂凑算法标准。SM3算法适用于商用密码应用中的数字签名和验证,是在SHA-256基础上改进实现的一种算法。SM3算法采用Merkle-Damgard结构,消息分组长度为512位摘要值长度为256位

SM3 SHA-256
算法结构 Merkle-Damgard结构 基于特殊的可逆模幂运算
消息长度 2^64位 < 2^64位
分组长度 512位 512位
摘要长度 256位 256位
计算步骤 64步 64步
加密速度
  • SM4

SM4算法是一个分组算法,用于无线局域网产品。该算法的分组长度为128比特密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。此算法采用非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。其中rki为轮密钥,合成置换T组成轮函数。轮密钥的产生与上图流程类似,由加密密钥作为输入生成,轮函数中的线性变换不同,还有些参数的区别。SM4算法的具体描述和示例见SM4标准。

SM4 3DES DES
算法结构 非平衡Feistel 使用标准的算术和逻辑运算 使用标准的算术和逻辑运算
计算轮数 32 48 16
分组长度 128位 128位 64
密钥长度 128位 128位 64
有效密钥长度 112位 128位 56
性能
安全性
  • SM7

SM7是一种分组密码算法分组长度为128比特密钥长度为128比特SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证)、票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。

  • SM9

为了降低公开密钥系统中密钥和证书管理的复杂性,以色列科学家、RSA算法发明人之一Adi Shamir在1984年提出了标识密码(Identity-Based Cryptography)的理念。标识密码将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。

2008年标识密码算法正式获得国家密码管理局颁发的商密算法型号:SM9(商密九号算法),我国标识密码技术的应用奠定了坚实的基础。SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点,从而开启了普及密码算法的大门。

  • ZUC祖冲之算法

祖冲之序列密码算法是中国自主研究的流密码算法,是运用于移动通信4G网络中的国际标准密码算法。该算法包括祖冲之算法(ZUC)加密算法(128-EEA3)完整性算法(128-EIA3)三个部分。目前已有对ZUC算法的优化实现,有专门针对128-EEA3和128-EIA3的硬件实现与优化。
 

三、国密应用场景

当谈论国密支持时,并不仅仅单独指可以用某一种国密算法进行加解密,而是指嵌合入国密的生态,支持某种国密的应用场景。

作为国家密码管理局制定的密码算法,国密广泛应用于电子政务(包括国家政务通、警务通等重要领域)、信创及金融业的各个应用领域。

  • 政府和金融的身份认证终端。依照现行有关规定,许多涉及政府和金融的身份认证终端(诸如 USBKey、智能 IC 卡、银行卡终端等)都需要提供对国密的支持。
  • 国产开源操作系统。许多主打国产替代的开源操作系统,会提供基于国密的安全加固功能。比如龙蜥操作系统 (Anolis OS) 提到自己实现了全栈国密能力;OpenEuler也在做国密相关的一些功能,比如基于国密数字证书扩展了EFI的数字签名。
  • 信创产品。还有许多做信创生意的厂商,围绕国密推出符合相关标准的产品。例如支持使用国密算法做数字签名的PDF工具、支持国密接入标准的音视频软件等等。
  • 基于国密TLS协议的生态。也是在日常开发中接触得最多的。譬如各种国产CA厂商、支持了国密TLS的许许多多密码库和浏览器,以及国密接入的VPN和网关等等。

至此,中移(苏州)软件技术有限公司面试问题中的“(16)是否了解可信计算国密标准?请介绍一下。”就解答完了。

你可能感兴趣的:(面试,面试)