第2章信息安全机制
第2章 信息安全机制
本章学习目标 通过本章学习,读者应该掌握以下内容 对称加密机制及典型算法 非对称加密机制及算法 数字签名的原理 数据完整性验证的原理及典型算法 PGP的使用
本章学习目标 通过本章学习,读者应该掌握以下内容: 对称加密机制及典型算法 非对称加密机制及算法 数字签名的原理 数据完整性验证的原理及典型算法 PGP的使用
21加密机制 2.1.1密码学基础知识 个密码体制被定义为一对数据变换,其中一个变 换应用于我们称之为明文的数据项,变换后产生的 相应数据项称为密文;而另一个变换应用于密文, 变换后的结果为明文。这两个变换分别称为加密变 换( Encryption)和解密变换( Decryption)。加密 变换将明文和一个称为加密密钥的独立数据值作为 输入,输出密文;解密变换将密文和一个称为解密 密钥的数据值作为输入
2.1 加密机制 2.1.1 密码学基础知识 一个密码体制被定义为一对数据变换,其中一个变 换应用于我们称之为明文的数据项,变换后产生的 相应数据项称为密文;而另一个变换应用于密文, 变换后的结果为明文。这两个变换分别称为加密变 换(Encryption)和解密变换(Decryption)。加密 变换将明文和一个称为加密密钥的独立数据值作为 输入,输出密文;解密变换将密文和一个称为解密 密钥的数据值作为输入
加密和解密 C 加密 解密 加密 解密 M:明文C:密文K:加密密钥Kn:解密密钥
加 密 解 密 KE C C KD M M 加密和解密 加密 解密 M:明文 C:密文 KE:加密密钥 KD:解密密钥
21.2对称加密算法 用密:E(M)=C 解密:D(C)=M 序列密码算法( stream cipher) 分组密码算法( block cipher) 加密过程主要是重复使用混乱和扩散两种技术,混乱( confusion)是改变信息块使输出位和输入位无明显的统计关 系。扩散( diffusion)是将明文位和密钥的效应传播到密文的 其它位。 对称密码算法有很多种:DES、 triple des、IDEA、RC2 RC4、RC5、RC6、GOST、FEAL、LOKI
2.1.2 对称加密算法 加密:Ek (M)=C 解密:Dk (C)=M 序列密码算法(stream cipher) 分组密码算法(block cipher) 加密过程主要是重复使用混乱和扩散两种技术,混乱( confusion)是改变信息块使输出位和输入位无明显的统计关 系。扩散(diffusion)是将明文位和密钥的效应传播到密文的 其它位。 对称密码算法有很多种 :DES、triple DES、IDEA、RC2、 RC4、RC5、RC6、GOST、FEAL、LOKI
21.3DES算法 1、算法描述 首先把明文分成若干个64-b的分组,算法以一个分组 作为输入,通过一个初始置换(IP)将明文分组分成 左半部分(L)和右半部分(R0),各为32bt。然后 进行16轮完全相同的运算,这些运算我们称为函数f, 在运算过程中数据与密钥相结合。经过16轮运算后 左、右两部分合在一起经过一个末转换(初始转换的 逆置换IP1),输出一个64-bit的密文分组
2.1.3 DES算法 首先把明文分成若干个64-bit的分组,算法以一个分组 作为输入,通过一个初始置换(IP)将明文分组分成 左半部分(L0)和右半部分(R0),各为32-bit。然后 进行16轮完全相同的运算,这些运算我们称为函数f, 在运算过程中数据与密钥相结合。经过16轮运算后, 左、右两部分合在一起经过一个末转换(初始转换的 逆置换IP-1),输出一个64-bit的密文分组。 1、算法描述
每一轮的运算过程: 密钥位移位,从密钥的56位中选出48位。① 通过一个扩展置换将数据的左半部分扩展成 48位,②并通过一个异或操作与48位密钥结 合,③通过8个S盒( substitution box)将这 48位替代成新的32位,④再依照P-盒置换 次。以上四步构成复杂函数f(图中虚线框里 的部分)。然后通过另一个异或运算,将复 杂函数f的输出与左半部分结合成为新的右半 部分
密钥位移位,从密钥的56位中选出48位。① 通过一个扩展置换将数据的左半部分扩展成 48位,②并通过一个异或操作与48位密钥结 合,③通过8个S盒(substitution box)将这 48位替代成新的32位,④再依照P-盒置换一 次。以上四步构成复杂函数f(图中虚线框里 的部分)。然后通过另一个异或运算,将复 杂函数f的输出与左半部分结合成为新的右半 部分。 每一轮的运算过程:
每一轮中的子密钥的生成 密钥通常表示为64-bit,但每个第8位用作奇偶校验,实 际的密钥长度为56-bt。在DES的每一轮运算中,从56 b密钥产生出不同的48-bt的子密钥(K,K2…kK16) 首先,56-bt密钥分成两部分(以C、D分别表示这两部 分),每部分28位,然后每部分分别循环左移1位或2 位(从第1轮到第16轮,相应左移位数分别为:1、1、 2、2、2、2、2、2、1、2、2、2、2、2、2、1)。再 将生成的56-bt组经过一个压缩转换( compression permutation),舍掉其中的某8个位并按一定方式改变 位的位置,生成一个48-bt的子密钥K
密钥通常表示为64-bit,但每个第8位用作奇偶校验,实 际的密钥长度为56-bit。在DES的每一轮运算中,从56- bit密钥产生出不同的48-bit的子密钥(K1 ,K2……K16)。 首先,56-bit密钥分成两部分(以C、D分别表示这两部 分),每部分28位,然后每部分分别循环左移1位或2 位(从第1轮到第16轮,相应左移位数分别为:1、1、 2、2、2、2、2、2、1、2、2、2、2、2、2、1)。再 将生成的56-bit组经过一个压缩转换(compression permutation),舍掉其中的某8个位并按一定方式改变 位的位置,生成一个48-bit的子密钥Ki。 每一轮中的子密钥的生成
S-盒置换 48-bit组被分成8个6-b组,每一个6-b组作为一个S盒 的输入,输出为一个4-bt组。每个S-盒是一个4行16列 的表,表中的每一项都是一个4-bit的数。S盒的6-bt的 输入确定其输出为表中的哪一个项,其方式是:6-bi数 的首、末两位数决定输出项所在的行;中间的四位决定 输出项所在的列。例如:第6个S盒如表2-1所示,假设 第6个S-盒的输入为110101,则输出为第3行第10列的 项(行或列的记数从0开始),即输出为4-bit组0001
48-bit组被分成8个6-bit组,每一个6-bit组作为一个S盒 的输入,输出为一个4-bit组。每个S-盒是一个4行16列 的表,表中的每一项都是一个4-bit的数。S盒的6-bit的 输入确定其输出为表中的哪一个项,其方式是:6-bit数 的首、末两位数决定输出项所在的行;中间的四位决定 输出项所在的列。例如:第6个S盒如表2-1所示,假设 第6个S-盒的输入为110101,则输出为第3行第10列的 项(行或列的记数从0开始),即输出为4-bit组0001。 S-盒置换
三重DES 如上所言,DES一个致命的缺陷就是密钥长度 短,并且对于当前的计算能力,56位的密钥长度 已绎抗不住穷举攻击,而DES又不支持变长密钥 。但算法可以一次使用多个密钥,从而等同于更 长的密钥。三重DES算法表示为 C=E K3 (Dk2(EK1(M))) 通常取K3=K1,则上式变为: C=E (D KI K2 (E,;(M))
三重DES 如上所言,DES一个致命的缺陷就是密钥长度 短,并且对于当前的计算能力,56位的密钥长度 已经抗不住穷举攻击,而DES又不支持变长密钥 。但算法可以一次使用多个密钥,从而等同于更 长的密钥。三重DES算法表示为: C=EK3(DK2(EK1(M))) 通常取K3=K1,则上式变为: C=EK1(DK2(EK1(M)))