参考推荐:
国密SM1\ SM2\ SM3\ SM4\ SSF33算法和国际RSA算法的对应关系_小明做IT的博客-CSDN博客_ssf33算法
国密算法SM1/SM2/SM3/SM4_fengwang0301的博客-CSDN博客_sm2/sm3/sm4
国产密码算法
国产密码算法是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SSF33、SM1分组密码算法(SCB2)、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法、SM7分组密码算法、SM9标识密码算法、祖冲之密码算法等。
1、SM1分组密码算法
SM1是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度和密钥长度均为128位,算法的安全保密强度及相关软硬件实现性能与AES算法相当,目前该算法尚未公开,仅以IP核的形式存在于芯片中,调用该算法时,需要通过加密芯片的接口进行调用。
2、*SM2公钥密码算法
SM2算法是国家密码据于2010年12月17日发布的国密标准椭圆曲线加密算法,是一种基于ECC算法的非对称加密算法,SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,对于一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密码较其他公钥密码所需的秘钥规模要小得多。相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。其加密强度为256位,密钥长度短,安全程度高,可用于数字签名、密钥交换、公钥加密。
3、*SM3密码杂凑算法
SM3是我国采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。据国家密码管理局表示,其安全性及效率与SHA-256相当,也叫密码杂凑算法,属于哈希(摘要)算法的一种,功能与MD5,SHA-1相同。对长度小于264比特的消息m,经过填充、压缩,生成256位杂凑值,和SM2算法一起被公布,该算法位不可逆的算法。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,可满足多种密码应用的安全需求,算法已公开。
具体过程:SM3对长度为小于264 比特的消息m, SM3杂凑算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特。
- 消息填充:512*K+448
- 迭代压缩:消息扩展->压缩函数->杂凑值
4、*SM4分组密码算法:
SM4是国家密码管理局发布的分组密码算法,于2012年3月正式公布。与DES和AES算法类似,SM4是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。SM4算法加/解密算法是对合运算,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。加密算法与密钥扩展算法均采用32轮非线性迭代结构(Feistel),以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。目前主要用于无线局域网产品。
注:明文、密文、密钥128位
- 数据处理单位为:字节(8位)、字(32位)
- 非对称的Feistel结构:轮函数->字合成变换T:S盒->非线性变换τ->字线性变换L
5、SM7对称密码
SM7是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7适用于非接IC卡应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。SM7算法目前没有公开发布。
6、*SM9标识密码算法:
SM9是标识密码算法,与SM2类似,包含四个部分:总则,数字签名算法,密钥交换协议以及密钥封装机制和公钥加密算法。在这些算法中使用了椭圆曲线上的对这一个工具,不同于传统意义上的SM2算法,可以实现基于身份的密码体制,也就是公钥与用户的身份信息即标识相关,从而比传统意义上的公钥密码体制有许多优点,省去了证书管理等。SM9可支持实现公钥加密、密钥交换、数字签名等安全功能。
7、*ZUC密码算法:
ZUC算法,又称祖冲之算法,是3GPP(3rdGenerationPartnershipProject)机密性算法EEA3和完整性算法EIA3的核心,是由中国自主设计的加密算法。2009年5月ZUC算法获得3GPP安全算法组SA立项,正式申请参加3GPPLTE第三套机密性和完整性算法标准的竞选工作。历时两年多的时间,ZUC算法经过包括3GPPSAGE内部评估,两个邀请付费的学术团体的外部评估以及公开评估等在内的3个阶段的安全评估工作后,于2011年9月正式被3GPPSA全会通过,成为3GPPLTE第三套加密标准核心算法。
ZUC算法是中国第一个成为国际密码标准的密码算法。其标准化的成功,是中国在商用密码算法领域取得的一次重大突破,体现了中国商用密码应用的开放性和商用密码设计的高能力,其必将增大中国在国际通信安全应用领域的影响力,且今后无论是对中国在国际商用密码标准化方面的工作还是商用密码的密码设计来说都具有深远的影响。
祖冲之算法集是由我国学者自主设计的加密和完整性算法,包括祖冲之算法、加密算法128-EEA3和完整性算法128-EIA3,已经被国际组织3GPP推荐为4G无线通信的第三套国际加密和完整性标准的候选算法。ZUC 算法本质上是一种非线性序列产生器。由此,在种子密钥的作用下,可以产生足够长的安全密钥序列。把与密钥序列晓文数据模 2 相加,便完成了数据加密。同样,把密钥序列与密文数据模 2 相加,便完成了数据解密。
小结
目前,SM2、3、4、9均已公开,1、7未公开。
由国家密码管理部门制订规范,不存在不可公开的密码,保证无国外可利用的后门。目前认为在国内被非常广泛使用的RSA 1024位算法不再安全,国家密码管理局下达了通知:自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2椭圆曲线密码算法。根据要求,安全产品(如密码机)采用的加密算法均应为国密算法,搞好这几个算法,可以去密码售前、密码测评之类的工作。
学习国产密码算法必备:国家密码管理局发布的文档非常详细,附带示例;具体下载链接:
SM2:
国家密码管理局关于发布《SM2椭圆曲线公钥密码算法》公告(国密局公告第21号)_国家密码管理局
SM3:
国家密码管理局关于发布《SM3密码杂凑算法》公告(国密局公告第22号)_国家密码管理局
SM4:
http://www.sca.gov.cn/sca/c///files/f731f64e1eaea0dc27.pdf
1、分组密码算法对比——国际DES、国产SM4
分组密码就是将明文数据按固定长度进行分组,然后在同一密钥控制下逐组进行加密,从而将各个明文分组变换成一个等长的密文分组的密码。其中二进制明文分组的长度称为该分组密码的分组规模。
分组密码的实现原则如下:
(1)必须实现起来比较简单,知道密钥时加密和脱密都十分容易,适合硬件和(或)软件实现.
(2)加脱密速度和所消耗的资源和成本较低,能满足具体应用范围的需要。
国际的DES算法和国产的SM4算法的目的都是为了加密保护静态储存和传输信道中的数据,主要特性如下:

注:图片来源网络!
从算法上看,国产SM4算法在计算过程中增加非线性变换,理论上能大大提高其算法的安全性,并且由专业机构进行了密码分析,民间也对21轮SM4进行了差分密码分析,结论均为安全性较高。
2、RSA、SM2算法主要特性对比:
SM2性能更优更安全:密码复杂度高、处理速度快、机器性能消耗更小。SM2算法与RSA算法一样,同属于非对称算法体系,但与RSA算法不同的是RSA算法是基于大整数分解数学难题,SM2算法是基于椭圆曲线上点群离散对数难题。
相对于RSA算法,SM2算法具有以下优点:
安全性高:192位的SM2密码强度已经比RSA 2048位密码强度要高。
存储空间小:SM2算法密码使用192-256位,RSA算法密码需要使用2048-4096位
签名速度快:SM2在私钥运算上,速度远比RSA快得多。
思考:
1、现在,很多行业在推密码国产化,密码国产化的好处于坏处是什么?
2、国产密码改造是否适用于任何行业?
注:
如有错误、侵权,请联系笔者更改、删除!!!
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224117.html原文链接:https://javaforall.net
