Chapter 3 信息安全技术基础
3.1 密码学概论
3.1.1 密码学历史
- 古代加密方法(手工加密):略
- 古典密码(机械阶段):一般采用文字置换,使用手工或机械变换的方式实现。如:德国的Enigma机
- 近代密码(计算机阶段):1977年,美国国家标准局颁布了数据加密标准DES;1978年,美国麻省理工学院的里维斯特,沙米尔和阿德曼提出了RSA公钥密码体制。
3.1.2 密码系统的概念
一个密码系统由算法 以及所有可能的明文、密文和密钥组成。
M, 明文
C,密文:明文变换的结果
K, 密钥
E,加密算法:一组含有参数的变换
D,解密算法:加密的逆变换
密钥体制的设计要求应符合造在1883年 有科克霍夫斯提出的一个重要原则:密码系统中的算法即使为密码分析者已知,也无助于用来推导出明文和密文。
3.1.3 密码的分类
-
按应用技术或历史发展阶段划分
手工密码
机械密码
电子机内乱密码
计算机密码 -
按保密程度划分
理论上保密的密码
实际上保密的密码
不保密的密码 -
按密钥方式划分
对称式密钥:收发双方使用相同密钥的密码
非对称式密钥:收发双方使用不同密钥的密码 -
按明文形态划分
模拟型密码:用于加密模拟信号
数字型密码:用于加密数字信号
3.2 常用加密技术
3.2.1 对称加密算法
在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES
1.DES算法
DES (数据加密标准) 是IBM研制的对称密码体制加密算法
明文按64位进行分组,密钥长64位;
事实上,密钥是56位参与DES运算(第8,16,24,32,40,48,56,64 位是校验位,使得每个密钥都有奇数个1)
分组后的明文组和56位的密钥按位替代或交换的方法形参密文组的加密方法。
DES 的工作流程: 初始置换–迭代过程–逆置换。迭代过程涉及置换表、函数f、S盒以及子密钥的生成
工作原理:
入口参数:key:密钥64位; data :加密解密的数据 ;mode : 工作模式
当mode 为加密模式时,明文按64位分组,形成明文组;key用于对数据加密
当mode 为解密模式时,key用于对数据解密。
DES整体流程
首先:一个64位的明文组,进行初始置换(也表述为IP置换)。 即将明文按IP置换表的位置标记,将数据进行替换,从而得到一个新的明文顺序。
注:IP置换表里的数字代表 明文中的位置。
初始置换后的结果分两组,L0代表左32位,R0代表右32位
然后,进入迭代过程:
迭代过程:
Li=Ri-1
Ri=L(i-1)⊕f(R(i-1),Ki)
从16轮迭代的过程发现,有函数f和密钥K,它们怎么产生的呢?
来看看函数F 的处理流程:
-
E置换:将32位的Ri-1输入按E置换表 拓展成48位
-
子秘钥的生成:假设密钥为K,长度64位。其中8,16,24,32,40,48,56,64作为奇偶校验位。
首先,对于给定的密钥K,应用PC1变换进行选位,选定后的结果为56位,前28位为C0,后28位为D0;
第一轮,对C0作左移LS1得到C1,对D0作左移LS1得到D1,对C1D1应用PC2进行选位得到K1。
–其后如上–
注:左移的原理是所有的二进制位向左移动,原来最右边的比特位移动到最左边。
- S盒
在函数f 中,对48位中间结果和48位子秘钥进行异或后的结果的处理
S盒是6位输入,4位输出;中间差为2,2*8=16 正正好是48位输入,32位输出
S盒的对照表:
处理流程:假设S1进入6位的输入110100, 将首尾提出10(2位表示0-3 作为行),中间1010(4位表示0-15 作为列),则110100表示第2 行,第10列的数字,即 9其二进制表示为1001,输出此结果。
详细:S盒以6位作为输入,4位作为输出,用S1说明。假设输入为A=a1a2a3a4a5a6,则a2a3a4a5所代表的数在0~15之间的一个数,记k=a2a3a4a5, 由a1a6所代表的数是0-3间的一个数,记h=a1a6,在S1的h行,k列找到一个数B,B 在0-15之间,它可以用4位二进制表示,B为b1b2b3b4,这就是S1的输出。
4.P变换
P变换的算法是从S盒的输出作为P变换的输入,P的功能是对输入进行置换。
也是按置换表进行替换。
以上是f函数+S盒内容
IP逆置换和IP置换的原理是一致的。
DES算法回顾:
64位明文进行IP置换,后分左32位,右32位输入,进入16轮迭代。在迭代过程中需要f函数和密钥K,其中f函数将32位的Ri-1进行E变换拓展至48位中间结果,64位密钥通过PC1变换为56位,分左28位,右28位,LS左移后,进行PC2(压缩置换)得到子秘钥Ki(48位)。子秘钥Ki和48位的中间结果进行异或,其结果进入S盒,S盒的48位输入32输出,得到32位的结果,并通过P置换完成f函数的所有流程。迭代完成,通过IP逆置换,得到密文。
DES解密过程?
加密和解密可以使用相同的算法。加密和解密唯一不同的是秘钥的次序是相反的。就是说如果每一轮的加密秘钥分别是K1、K2、K3…K16,那么解密秘钥就是K16、K15、K14…K1。为每一轮产生秘钥的算法也是循环的。加密是秘钥循环左移,解密是秘钥循环右移。
其解密过程:
- 加解密算法可以一致
- 加解密密钥顺序相反
- 解密的密钥是循环右移
注重点:
- 最后第16轮迭代结束后,左边和右边交换,因此逆置换的输入是R16L16。
DES特点
1、分组加密算法:
以64位为分组。64位明文输入,64位密文输出。
2、对称算法:
加密和解密使用同一秘钥
3、有效秘钥长度为56位
秘钥通常表示为64位数,但每个第8位用作奇偶校验,可以忽略。
DES解密过程+注重点+DES特点----------参考了DES算法原理完整版
如有思路错误,还望指正,感谢!
2.三重DES(3DES)
3DES解决了DES 密钥长度较短的问题。
通过两个独立密钥K1、K2,对明文进行三次加密,得到112位有效密钥强度。
算法流程:
- 用K1对明文进行加密
- 用K2对步骤一的结果进行解密
- 用K1对步骤二的结果进行加密
这个过程称为EDE,(Encrypt Decrypt Encrypt).
3DES 特点:
缺点:时间开销比较大,是DES的3倍
优点:112位有效密钥长度。
3. IDEA加密:略
3.3 非对称加密算法
非对称密码系统的解密密钥和加密秘钥是不同的,一个称为公开密钥,另一个称为私人密钥。这种密码体系也被称为 公钥密码体系,其代表有RSA算法、椭圆曲线、背包密码、McEliece密码、Diff-Hellan、Rabin和ElGamal 算法。
1. RSA算法
RSA 算法,参考: RSA 非对称加密原理(小白也能看懂哦~)