searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

国密算法介绍

2023-10-17 08:30:55
129
0
国密算法是中国国家密码局认定的国产密码算法,也被称为商用密码算法。
 
国密算法包括一系列密码算法标准,有SM1、SM2、SM3、SM4、SM7、SM9以及祖冲之序列密码算法。其中,SM2是国家密码管理局公布的公钥算法,其加密强度为256位。SM1是对称加密算法,加密强度为128位,采用硬件实现。SM3是密码杂凑算法,杂凑值长度为32字节,和SM2算法同期公布。这些商用密码算法被广泛应用于金融、医疗等领域,以保障信息传输安全。
 
下面对较常用的SM1、SM2、SM3、SM4算法进行简单的介绍。
 
1 SM1算法
SM1是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中。集成了该算法的IP核目前主流的国产密码设备芯片中都已经集成了该算法的IP核,可以根据需要应用于电子政务、电子商务以及其他应用系统中。
 
2 SM2算法
SM2就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。另外,SM2推荐了一条256位的曲线作为标准曲线。
SM2算法是一种基于椭圆曲线密码学的非对称加密算法,包括SM2-1椭圆曲线数字签名算法、SM2-2椭圆曲线密钥交换协议、SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名、密钥协商和数据加密等功能。
在SM2算法中,椭圆曲线离散对数问题被用来实现加密、解密和身份认证等功能。简单来说,椭圆曲线离散对数问题是指在有限域上,给定一个椭圆曲线E和两个点P和Q,寻找一个整数k使得kP=Q(其中k为私钥),该问题是计算上困难的,因此SM2算法具有较高的安全性。
SM2算法主要考虑素域Fp和F2m上的椭圆曲线,下面分别介绍这两类域的表示和运算方法,并给出域上的椭圆曲线的点的表示、运算和多倍点计算算法。然后介绍了编程语言中的数据转换,包括整数和字节串、字节串和比特串、域元素和比特串、域元素和整数、点和字节串之间的数据转换规则。
总体来说,SM2算法是一种高效、安全、易用的加密算法,适用于数据加密、数字签名、密钥交换等领域。与RSA等其他公钥密码算法相比,SM2算法具有更高的安全性、效率和易用性。
 
3 SM3算法
SM3是一种密码杂凑算法,由国家密码管理局于2010年12月17日发布。 SM3算法基于Merkle-Damgard结构,其安全性及效率与SHA-256相当。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。
 
SM3算法的输入包括一个长度为512比特的原始消息和一个长度为64比特的初始值IV。算法的输出为长度为32字节的散列值。消息在进入算法之前需要进行填充,以使其长度满足一些特定的条件。填充的具体方式是在原始消息的末尾添加一个比特“1”,然后添加k个“0”,使得消息长度满足l + 1 + k ≡ 448mod512的条件。接下来,再添加一个64位比特串,表示消息的二进制长度。经过这样填充后,消息m′的长度为512的倍数。
 
SM3算法的迭代过程是将填充后的消息m′按照512比特进行分组,然后对每一组进行压缩操作。压缩函数CF是一个256比特的初始值IV和一个填充后的消息分组,经过迭代压缩得到的结果即为杂凑值。
 
总的来说,SM3算法是一种安全、高效的密码杂凑算法,适用于商用密码应用中的数字签名和验证、消息认证码生成及验证、随机数生成等。
 
4 SM4算法
SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。该算法加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
此算法采用非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。其中rki为轮密钥,合成置换T组成轮函数。轮密钥的产生与上图流程类似,由加密密钥作为输入生成,轮函数中的线性变换不同,还有些参数的区别。
总体来说,SM4算法是一种安全、高效的分组密码算法,适用于数据加密、数字签名、密钥交换等领域。
 
国密算法的使用场景非常广泛,以下是一些主要的应用场景:
 
金融行业:国密算法被广泛应用于银行卡、电子支付等领域,以保障用户的账户安全和交易安全。此外,在金融领域的数字签名、委托交易等业务中,国密算法也有广泛应用。
电子政务:国密算法在政府机关、公共事业等领域的信息安全保障中得到广泛应用,以保障国家重要信息的安全。
互联网应用:在互联网领域中,国密算法被广泛应用于各种加密通信、加密存储等应用中,以保障用户的信息安全和隐私。
物联网应用:在智能家居、智能交通等领域的信息安全保障中,国密算法得到了广泛应用,以保障物联网设备的安全和可靠性。
总的来说,国密算法的应用场景涵盖了金融、电子政务、互联网和物联网等多个领域,这些领域对数据安全和隐私保护的需求日益增长,因此国密算法在这些领域的应用也越来越广泛。
0条评论
作者已关闭评论
Coding
19文章数
1粉丝数
Coding
19 文章 | 1 粉丝
原创

国密算法介绍

2023-10-17 08:30:55
129
0
国密算法是中国国家密码局认定的国产密码算法,也被称为商用密码算法。
 
国密算法包括一系列密码算法标准,有SM1、SM2、SM3、SM4、SM7、SM9以及祖冲之序列密码算法。其中,SM2是国家密码管理局公布的公钥算法,其加密强度为256位。SM1是对称加密算法,加密强度为128位,采用硬件实现。SM3是密码杂凑算法,杂凑值长度为32字节,和SM2算法同期公布。这些商用密码算法被广泛应用于金融、医疗等领域,以保障信息传输安全。
 
下面对较常用的SM1、SM2、SM3、SM4算法进行简单的介绍。
 
1 SM1算法
SM1是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中。集成了该算法的IP核目前主流的国产密码设备芯片中都已经集成了该算法的IP核,可以根据需要应用于电子政务、电子商务以及其他应用系统中。
 
2 SM2算法
SM2就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。另外,SM2推荐了一条256位的曲线作为标准曲线。
SM2算法是一种基于椭圆曲线密码学的非对称加密算法,包括SM2-1椭圆曲线数字签名算法、SM2-2椭圆曲线密钥交换协议、SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名、密钥协商和数据加密等功能。
在SM2算法中,椭圆曲线离散对数问题被用来实现加密、解密和身份认证等功能。简单来说,椭圆曲线离散对数问题是指在有限域上,给定一个椭圆曲线E和两个点P和Q,寻找一个整数k使得kP=Q(其中k为私钥),该问题是计算上困难的,因此SM2算法具有较高的安全性。
SM2算法主要考虑素域Fp和F2m上的椭圆曲线,下面分别介绍这两类域的表示和运算方法,并给出域上的椭圆曲线的点的表示、运算和多倍点计算算法。然后介绍了编程语言中的数据转换,包括整数和字节串、字节串和比特串、域元素和比特串、域元素和整数、点和字节串之间的数据转换规则。
总体来说,SM2算法是一种高效、安全、易用的加密算法,适用于数据加密、数字签名、密钥交换等领域。与RSA等其他公钥密码算法相比,SM2算法具有更高的安全性、效率和易用性。
 
3 SM3算法
SM3是一种密码杂凑算法,由国家密码管理局于2010年12月17日发布。 SM3算法基于Merkle-Damgard结构,其安全性及效率与SHA-256相当。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。
 
SM3算法的输入包括一个长度为512比特的原始消息和一个长度为64比特的初始值IV。算法的输出为长度为32字节的散列值。消息在进入算法之前需要进行填充,以使其长度满足一些特定的条件。填充的具体方式是在原始消息的末尾添加一个比特“1”,然后添加k个“0”,使得消息长度满足l + 1 + k ≡ 448mod512的条件。接下来,再添加一个64位比特串,表示消息的二进制长度。经过这样填充后,消息m′的长度为512的倍数。
 
SM3算法的迭代过程是将填充后的消息m′按照512比特进行分组,然后对每一组进行压缩操作。压缩函数CF是一个256比特的初始值IV和一个填充后的消息分组,经过迭代压缩得到的结果即为杂凑值。
 
总的来说,SM3算法是一种安全、高效的密码杂凑算法,适用于商用密码应用中的数字签名和验证、消息认证码生成及验证、随机数生成等。
 
4 SM4算法
SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。该算法加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
此算法采用非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。其中rki为轮密钥,合成置换T组成轮函数。轮密钥的产生与上图流程类似,由加密密钥作为输入生成,轮函数中的线性变换不同,还有些参数的区别。
总体来说,SM4算法是一种安全、高效的分组密码算法,适用于数据加密、数字签名、密钥交换等领域。
 
国密算法的使用场景非常广泛,以下是一些主要的应用场景:
 
金融行业:国密算法被广泛应用于银行卡、电子支付等领域,以保障用户的账户安全和交易安全。此外,在金融领域的数字签名、委托交易等业务中,国密算法也有广泛应用。
电子政务:国密算法在政府机关、公共事业等领域的信息安全保障中得到广泛应用,以保障国家重要信息的安全。
互联网应用:在互联网领域中,国密算法被广泛应用于各种加密通信、加密存储等应用中,以保障用户的信息安全和隐私。
物联网应用:在智能家居、智能交通等领域的信息安全保障中,国密算法得到了广泛应用,以保障物联网设备的安全和可靠性。
总的来说,国密算法的应用场景涵盖了金融、电子政务、互联网和物联网等多个领域,这些领域对数据安全和隐私保护的需求日益增长,因此国密算法在这些领域的应用也越来越广泛。
文章来自个人专栏
开发感悟
19 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0