第1章 解读DES和SM4、RSA和SM2及SM3
第2章 谈PBOC3.0中使用的国密SM2算法
第1章:解读DES和SM4、RSA和SM2及SM3
1.1概念说明:
国密算法是由国家密码局发布,包含SM1\ SM2\ SM3\ SM4\ SSF33算法,其中SM1是硬件实现的算法,这里不与讨论,而SM2、SM3、SM4等可以使用软件实现,这里后续重点研究。另外国际算法由美国的安全局发布,是现今最通用的商用算法。密码学中应用最为广泛的的三类算法包括对称算法(分组密码算法)、非对称算法(公钥密码算法)、杂凑算法(摘要算法)在这里以分组密码算法(DES和SM4)、公钥密码算法(RSA和SM2)、摘要算法(SM3)为例,介绍一下国密算法、国际算法及两者的区别。
1.2分组密码算法——国际DES、国产SM4
分组密码就是将明文数据按固定长度进行分组,然后在同一密钥控制下逐组进行加密,从而将各个明文分组变换成一个等长的密文分组的密码。其中二进制明文分组的长度称为该分组密码的分组规模。
分组密码的实现原则如下:
(1)必须实现起来比较简单,知道密钥时加密和脱密都十分容易,适合硬件和(或)软件实现.
(2)加脱密速度和所消耗的资源和成本较低,能满足具体应用范围的需要.
分组密码的设计基本遵循混淆原则和扩散原则。
混淆原则就是将密文、明文、密钥三者之间的统计关系和代数关系变得尽可能复杂,使得敌手即使获得了密文和明文,也无法求出密钥的任何信息;即使获得了密文和明文的统计规律,也无法求出明文的任何信息。
扩散原则就是应将明文的统计规律和结构规律散射到相当长的一段统计中去。也就是说让明文中的每一位影响密文中的尽可能多的位,或者说让密文中的每一位都受到明文中的尽可能多位的影响。
1.2.1 DES算法
DES算法是在美国NSA(国家安全局)资助下由IBM公司开发的密码算法,其初衷是为政府非机密的敏感信息提供较强的加密保护。它是美国政府担保的第一种加密算法,并在1977年被正式作为美国联邦信息处理标准。DES主要提供非军事性质的联邦政府机构和私营部门使用,并迅速成为名声最大,使用最广的商用密码算法。
1.2.2 SM4算法
2006年我国公布了无限局域网产品使用的SM4密码算法。这是我国第一次公布自己的商用密码算法。
国际的DES算法和国产的SM4算法的目的都是为了加密保护静态储存和传输信道中的数据,主要特性如下:
des算法 | SM4算法 | |
计算基础 | 二进制 | 二进制 |
算法结构 | 使用标准的算术和逻辑运算、先代替后 置换,不含非线性变换 | 基本轮函数加迭代、含非线性变换 |
加解密算法是否相同 | 是 | 是 |
计算轮数 | 16轮(3des为16轮*3) | 32轮 |
分组长度 | 64位 | 128位 |
秘钥长度 | 64位(3DE |