简介
国密算法是中国自主研发的密码算法标准,目的是保护国家信息安全,实现自主可控。国密算法主要分为三部分:对称密码算法、非对称密码算法和杂凑算法。
对称密码算法(SM1、SM4)是指加密和解密使用相同密钥的算法。SM1是对称加密算法,适用于数据加密和保护,具有较高的安全性和效率。SM4是分组密码算法,适用于网络数据传输的加密,以及文件的加密存储。
非对称密码算法(SM2、SM9)是指加密和解密使用不同密钥的算法。SM2是椭圆曲线数字签名算法,用于数字证书的生成和验证,以及数字签名的实现。SM9是身份认证和密钥协商算法,具有高度安全性和扩展性。
杂凑算法(SM3)是指将任意长度的消息转换为固定长度的消息摘要的算法。SM3是一种哈希算法,常用于数字签名、证书验证和消息完整性检验。
国密算法是中国政府推动的密码技术标准,具有较高的安全性和可靠性,在政府、军事、金融等领域得到广泛应用。同时,国密算法也逐渐在国际标准中得到认可和采纳。
国密算法是国家密码管理局制定的系列宓码标准句括SM1(SCB2), SM2、SM3、SM4、SM7、SM9,祖冲之密码算法(ZUC)等。在终端设设备上通常需要内嵌国密算法的安全芯片配合使用,依靠安全芯片的安全性来实现密钥的存储和安全防护。
密码算法是保障信息安全的核心技术,在一些重要的行业,如银行业、游戏业、互联网业等,长期以来都是沿用3DES、SHA-1、RSA等国际涌用的密码算法体系及相关标准。2010年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2算法)。为保障重要经济系统的密码应用安全,国家密码管理局于2011年发布了《关于做好公钥密码算法升级工作的通知》,要求“自2011年3月1日起,在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用国密算法。自2011年7月1日起;投人运行并使用公钥密码的信息系统,应使用SM2算法”。经过多年的发展,这些国密算法在国内各行各业都有了广泛的应用,为国内各行业的信息安全提供了可靠的保障。
SM1算法
对称加密算法的加密强度与AES相当。该算法不公开,仅以IP核的形式存在于芯片中,需要通过加密芯片的接口进行调用。
SM2算法
非对称加密算法的实现基于ECC算法。SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法、包括SM2-1椭圆曲线数字签名算法、SM2-2椭圆曲线密钥交换协议和SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上的点群离散对数难题,相对于RSA算法、256位的SM2密码强度比2048位的RSA 密码强度要高。SM2以其高安全性和运算快速的特点在数据安全领域应用越来越广泛。
SM2算法是一种 ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH 等国际标准,而是采取了更为安全的机制。另外,SM2推荐了一条256位的曲线作为标准曲线。
SM2标准包括总则、数字签名算法、密钥交换协议、公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及示例。
SM2算法主要考虑素域Fp和二元扩域F2m上的椭圆曲线,分别介绍le1这l两类域的寇义,运算,以及域上的桶圆曲线的点的定义,运算和耄倍点运算。并目切且介绍了编程语言中的数据转换,包括整数和宇节串、字节串和比特串,城元素和宇节串、域元素和整数,点和字节津之间的数据转换规则。
详细说明了有限域上椭圆曲线的参数牛成以N验征,椭圆曲线的参数包精有限域的选取、椭圆曲线方程参数、椭圆曲线群基点的选取等,并给出了选取的标准以便验证。最后给椭圆曲线上密钥对的生成以及公钥的验证,其中用户的密钥对为(s,sP),为用户的私钥,sP为用户的公钥由于离散对数问题从sP难以得到s,并针对素域和二元扩域给出了密钥对生成细节和验证方式。总则中的知识也适用于SM9算法。
在总则的基础上给出了数字签名算法(包括数字签名生成算法和验证算法)密钥交换协议以及公钥加密算法(包括加密算法和解密算法),并在每个部分给出了算法描述、算法流程和相关示例。
数字签名算法、密钥交换协议以及公钥加密算法都使用了国家密码管理局批准的SM3密码杂凑算法和随机数发生器。数字签名算法、密钥交换协议以及公钥加密算法根据总则来选取有限域和椭圆曲线,并生成密钥对。
SM3算法
该算法为摘要算法,可以用MD5作为对比理解。校验结果为256位。适用于商用密码应用中 的数字签名、验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
SM4 算法
该算法是无线局域网标准的分组数据算法。对称加密、密钥长度和分组长度均为128位。由于SM1,SM4 加解岔的分组大小为128比特位,因此对消息进行加解密时,若消息长度过长,则需要进行分组,若消息长度不足,则要进行填充。