提到密码,大多数人第一时间相当的是各种互联网账户的登录“密码”,严格意义上来说,登录“密码”实质上是一种口令,而密码则是一种混淆技术,将正常可识别的消息转换成无法识别的信息。举个简单的例子,口令相当于面罩,揭开面罩见真容,而密码相当于易容,不复原的话,是发现不了真身的。
我国现行的《中华人民共和国密码法》对密码进行分类管理,按照保护不同的信息分为核心密码、普通密码和商用密码,其中核心密码和普通密码均应用于保护属于国家秘密的信息,而商用密码用于保护不属于国家秘密的信息,也就是我们常说的非涉密信息。而我们常说的“密评”,就是对商用密码在信息系统中应用的安全性评估。
信息系统中常用的密码主要为三类:对称密码算法、非对称密码算法和摘要算法。
- 对称密码算法是指加密密钥和解密密钥相同的密码算法,该算法又分为分组密码算法和流密码算法。分组密码是将明文拆成长度为N的块,对每个块进行加密,并将得到的密文块拼接成密文;流密码算法又称序列密码算法,是将明文每位或者每个字节进行加密。常见的分组密码有AES、DES、3DES、RC2、IDEA、SM1(国密)、SM4(国密)、SM7(国密)等;常见的序列密码有RC4、A5、ZUC(国密)等。
- 非对称密码算法又称公钥算法,该算法使用两个密钥,加密使用公钥,解密使用私钥,其中公钥可以公开,私钥必须保密。常见的算法有RSA、ECC、SM2(国密)、SM9(国密,基于标识的非对称密码算法)
- 摘要算法又称哈希算法、散列算法等,该算法是一种将任意长度消息转化成固定长度数据的算法,这种是不可逆的,主要是验证消息是否被篡改使用。摘要算法主要分为消息摘要算法MD、安全散列算法SHA、消息认证码算法MAC。常见的算法包括MD5、SHA-1、SHA-2系列、HMAC-MD5、HMAC-SHA256、SM3(国密)等
国产商用密码是我国自主设计的密码算法,包括SM1、SM2、SM3、SM4、SM7、SM9和ZUC算法,其中SM2、SM3、SM4、SM9以及ZUC算法已被ISO采纳发布为国际标准,标志着我国密码能力已踏入国际前列。
1.SM1算法
该算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度和密钥长度均为128位,算法的安全保密强度及相关软硬件实现性能与AES算法相当,目前该算法尚未公开,仅以IP核的形式存在于芯片中,使用该算法需要通过加密接口调用,常见的产品有智能IC卡、智能密码钥匙、加密卡、加密机等,目前广泛应用于电子政务、电子商务以及国民经济等领域。
2.SM2算法
SM2算法由国家密码管理局于2010年12月17日发布,全称为椭圆曲线算法,是一种非对称密钥算法,其加密强度为256位,其安全性相当于RSA3072,远超普遍使用的RSA2048。2016年发布为国家标准《信息安全技术 SM2椭圆曲线公钥密码算法 第1部分:总则》( GB/T 32918.1-2016)、《信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法》(GB/T 32918.2-2016)、《信息安全技术 SM2椭圆曲线公钥密码算法 第3部分:密钥交换协议》(GB/T 32918.3-2016)、《信息安全技术 SM2椭圆曲线公钥密码算法 第4部分:公钥加密算法》(GB/T 32918.4-2016)、《信息安全技术 SM2椭圆曲线公钥密码算法 第5部分:参数定义》(GB/T 32918.5-2017)。2018年11月,作为补篇在2017年纳入国际标准的SM2/SM9数字签名算法,以正文形式随ISO/IEC14888-3:2018《信息安全技术带附录的数字签名第3部分:基于离散对数的机制》最新一版发布。
3.SM3算法
该算法也叫密码杂凑算法,属于哈希(摘要)算法的一种。SM3算法采用Merkle-Damgard结构,消息分组长度为512位,摘要值长度为256位。SM3是在SHA-256基础上改进实现的一种算法该算法为不可逆的算法,具体算法也是保密。SM3算法适用于商用密码应用中的数字签名和验证。2016年发布为国家标准《信息安全技术 SM3密码杂凑算法》(GB/T 32905-2016)。2018年10月,含有我国SM3杂凑密码算法的ISO/IEC10118-3:2018《信息安全技术杂凑函数第3部分:专用杂凑函数》(第4版)由国际标准化组织(ISO)发布,SM3算法正式成为国际标准。
4.SM4算法
SM4算法是一种分组加密算法。SM4分组密码算法是一种迭代分组密码算法,由加解密算法和密钥扩展算法组成。SM4是一种Feistel结构的分组密码算法,其分组长度和密钥长度均为128bits。加密算法和密钥扩展算法迭代轮数均为32轮。SM4加解密过程的算法相同但是轮密钥的使用顺序相反。2016年发布为国家标准《信息安全技术 SM4分组密码算法》(GB/T 32907-2016)。2021年6月25日,我国SM4分组密码算法作为国际标准ISO/IEC 18033-3:2010/AMD1:2021《信息技术 安全技术 加密算法 第3部分:分组密码 补篇1:SM4》,由国际标准化组织ISO/IEC正式发布。
5.SM7对称密码
SM7算法是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7的算法文本目前没有公开发布。SM7适用于非接IC卡应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。
6.SM9非对称算法
SM9是基于非对称密码体制的标识密码算法。与SM2类似,SM9算法共包含五个部分:总则、数字签名算法、密钥交换协议以及密钥封装机制和公钥加密算法。与其它标识密码算法相同,SM9算法的安全性是基于椭圆曲线双线性映射的性质。不同于传统意义上的SM2算法,SM9不需要申请数字证书,从而比传统意义上的公钥密码体制有许多优点,省去了证书管理等。双线性对的双线性的性质是基于对的标识密码SM2中的总则部分同样适用于SM9,由于SM9总则中添加了适用于对的相关理论和实现基础。2020年发布为国家标准《信息安全技术 SM9标识密码算法 第1部分:总则》(GB/T 38635.1-2020)、《信息安全技术 SM9标识密码算法 第2部分:算法》(GB/T 38635.2-2020)。2021年2月,我国SM9标识加密算法作为国际标准ISO/IEC18033-5:2015/ADM1:2021《信息技术安全技术加密算法第5部分:基于标识的密码补篇1:SM9》,由国际标准化组织(ISO)正式发布。
7、ZUC算法
祖冲之加密算法(ZUC)是我国自主设计的流密码算法,主要用于与4G网络中的加密,目前主要应用在通信领域当中。2016年发布为国标《信息安全技术 祖冲之序列密码算法 第1部分:算法描述》(GB/T 33133.1-2016)、《信息安全技术 祖冲之序列密码算法 第2部分:保密性算法》(GB/T 33133.2-2021)、《信息安全技术 祖冲之序列密码算法 第3部分:完整性算法》(GB/T 33133.3-2021)。2020年8月,我国ZUC序列密码算法作为ISO/IEC 18033-4:2011/AMD1:2020《信息技术 安全技术 加密算法 第四部分:序列密码 补篇1:ZUC》正式发布。