提示:本文是国密系列的首篇,主要讲述国密算法的概况。整个系列讲述国密算法的具体应用以及代码实现,如需转载请标注作者,谢谢!!!
近些年随着人工智能、5G通信等技术迅猛的发展,个人所产生的数据、传输的数据逐渐增多,国际局势也风云变幻,信息安全成为当前不容忽视的问题。
密码算法作为信息安全的核心自然而然成为关注的重点。2019年10月27日中华人民共和国密码法发布,也展露出国家对于密码产业的重视。
国密算法是国家密码管理局制定的标准的一系列的算法。其中包括SM1分组密码算法、SM2椭圆曲线公钥密码算法、SM3杂凑算法、SM4分组密码算法、SM7分组密码算法、SM9标识密码算法、ZUC(祖冲之序列密码算法)。
国际算法是美国安全局NSA制定的一系列商用算法,用于加密不涉及国家秘密内容,但是也具有一定价值的数据加密算法,例如政务信息、公司内部资料等。
国密算法和国际算法大致可以分为三种类型,分别是分组加密算法、公钥加密算法、摘要加密算法。数据安全要保证三个基本特性,保密性、完整性、可用性,本文便以此作一简单的介绍。
SM1、SM4、SM7、ZUC四种算法为分组加密算法,类似于国际上的DES分组加密算法。对称加密算法通常使用在明文数据加密。
分组加密算法,数据传输方将明文数据按照固定的长度进行分组,使用同一份密钥进行加密。数据接收方使用相同的密钥进行解密。
分组加密使用相同的密钥进行加密解密,并且加密解密损耗时间较小。但是密钥需要在公网上进行传输,容易出现密钥被窃取等安全问题。
为了解决这一问题,非对称加密算法应运而生。
SM2、SM9为非对称加密算法,类似与国际上的RSA加密算法。非对称加密算法可用于对称加密算法密钥的传递或者是数据的加密解密。
非对称加密算法是指发送方使用公钥进行数据加密,接收方收到密文后,使用自己独有的私钥进行解密,保证了数据保密性。
但是由于算法比分组加密实现较为复杂,所以应用在明文数据加密中会消耗大量的时间,所以一般只用于分组密钥的加密。
SM3为摘要算法,类似于国际上的MD5加密算法。摘要算法用于验证数据的完整性。
为了防止窃听者截获传输密文,并篡改数据。数据发送方在发送数据前使用摘要算法对数据进行处理,输出128位的消息摘要,接收方接收数据后同样处理输出128位消息摘要,查看是否一致,一致才可以确保数据未被篡改。