《网络安全与管理》电子教案-戚文静 第2章 信息安全机制

上传人:E**** 文档编号:89417328 上传时间:2019-05-24 格式:PPT 页数:31 大小:87.50KB
返回 下载 相关 举报
《网络安全与管理》电子教案-戚文静 第2章 信息安全机制_第1页
第1页 / 共31页
《网络安全与管理》电子教案-戚文静 第2章 信息安全机制_第2页
第2页 / 共31页
《网络安全与管理》电子教案-戚文静 第2章 信息安全机制_第3页
第3页 / 共31页
《网络安全与管理》电子教案-戚文静 第2章 信息安全机制_第4页
第4页 / 共31页
《网络安全与管理》电子教案-戚文静 第2章 信息安全机制_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《《网络安全与管理》电子教案-戚文静 第2章 信息安全机制》由会员分享,可在线阅读,更多相关《《网络安全与管理》电子教案-戚文静 第2章 信息安全机制(31页珍藏版)》请在金锄头文库上搜索。

1、第2章 信息安全机制,本章学习目标,通过本章学习,读者应该掌握以下内容: 对称加密机制及典型算法 非对称加密机制及算法 数字签名的原理 数据完整性验证的原理及典型算法 PGP的使用,2.1 加密机制 2.1.1 密码学基础知识 一个密码体制被定义为一对数据变换,其中一个变换应用于我们称之为明文的数据项,变换后产生的相应数据项称为密文;而另一个变换应用于密文,变换后的结果为明文。这两个变换分别称为加密变换(Encryption)和解密变换(Decryption)。加密变换将明文和一个称为加密密钥的独立数据值作为输入,输出密文;解密变换将密文和一个称为解密密钥的数据值作为输入,加密和解密,加密 解

2、密 M:明文 C:密文 KE:加密密钥 KD:解密密钥,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,2.1.3 DES算法,首先把明文分成若干个64-bit的分组,算法以一个分组

3、作为输入,通过一个初始置换(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(图中虚线框里的部分)。然后通过另一个异或

4、运算,将复杂函数f的输出与左半部分结合成为新的右半部分。,每一轮的运算过程:,密钥通常表示为64-bit,但每个第8位用作奇偶校验,实际的密钥长度为56-bit。在DES的每一轮运算中,从56-bit密钥产生出不同的48-bit的子密钥(K1,K2K16)。首先,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个位并按一定方式改变

5、位的位置,生成一个48-bit的子密钥Ki。,每一轮中的子密钥的生成,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一个致命的缺陷就是密钥长度短,并

6、且对于当前的计算能力,56位的密钥长度已经抗不住穷举攻击,而DES又不支持变长密钥。但算法可以一次使用多个密钥,从而等同于更长的密钥。三重DES算法表示为: C=EK3(DK2(EK1(M) 通常取K3=K1,则上式变为: C=EK1(DK2(EK1(M),2.1.4 RC5算法 RC5是Ron Revist发明的。RSA实验室对64bit分组的RC5算法进行了很长时间的分析,结果表明对5轮的RC5,差分攻击需要264个明文;对10轮需要245个明文;对15轮需要268个明文,而这里最多只可能有264个明文,所以对15轮以上的RC5的攻击是失败的。Rivest推荐至少使用12轮。 RC5是具有

7、参数变量的分组密码算法,其中可变的参量为:分组的大小、密钥的大小和加密的轮次。该算法主要使用了三种运算:异或、加、循环。,RC5的分组长度是可变的,下面我们将采用64bit的分组来描述算法。加密需要使用2r+2(其中r表示加密的轮次)个与密钥相关的32bit字,分别表示为S0、S1、S2S2r+1。创建这个与密钥相关的数组的运算如下:首先将密钥的字节拷贝到32bit字的数组L,如果需要,最后一个字可以用零填充。然后利用线性同余发生器初始化数组S:,S0=P Si=(Si-1+Q) mod 232 (其中 i=1 to 2(r+1)-1,P=0xb7e15163,Q=0x9e3779b9) 最后

8、将L与S混合: 初始化: i=j=0 A=B=0 然后做3n次循环:(其中c为密钥所占32bit字数目,亦即数组L的长度,n为2(r+1)和c中的最大值)。 A=Si=(Si+A+B)3 B=Lj=(Lj+A+B)(A+B) i=(i+1) mod 2(r+1) j=(j+1) mod c,加密过程: 首先将明文分组(64bit)分成两个32位字A和B(假设字节进入字的顺序为第一个字节进行寄存器的低位置),然后进行如下的运算: A=A+S0 B=B+S1 for(i=1;i=r;i+) A=(AB)B)+S2i; B=(BA)A)+S2i+1; 输出的A、B为密文,解密时,把密文分成A和B,然

9、后进行如下运算: for(i=r;r=1;r-) B=(B-S2i+1)A) A; A=(A-S2i)B) B; B=B-S1 A=A-S0 此时输出的A、B为解密后得到的明文。,2.1.5 非对称加密体制,公开密钥体制把信息的加密密钥和解密密钥分离,通信的每一方都拥有这样的一对密钥。其中加密密钥可以像电话号码一样对外公开,由发送方用来加密要发送的原始数据;解密密钥则由接收方秘密保存,作为解密时的私用密钥。公开密钥加密算法的核心是一种特殊的数学函数单向陷门函数(trap-door one way function)。即该函数从一个方向求值是容易的,但其逆变换却是极其困难的,因此利用公开的加密密

10、钥只能作正向变换,而逆变换只有依赖于私用的解密密钥这一“陷门”才能实现。,公开密钥体制最大的优点就是不需要对密钥通信进行保密,所需传输的只有公开密钥。这种密钥体制还可以用于数字签名,即信息的接收者能够验证发送者的身份,而发送者在发送已签名的信息后不能否认。公开密钥体制的缺陷在于其加密和解密的运算时间比较长,这在一定程度上限制了它的应用范围。公开密钥体制在理论上被认为是一种比较理想的的计算密码的方法,但现在真正实用的公开密钥算法还不是很多,目前公认比较安全的要算RSA算法及其变种Rabin算法。算法表示为: Ek1(M)=C Dk2(C)=M Dk2(Ek1(M)=M (其中k1和k2为一对密钥

11、中的私有密钥和公开密钥),2.1.6 RSA算法,RSA算法的思路如下:为了产生两个密钥,先取两个大素数,p和q。为了获得最大程度的安全性,两数的长度一样。计算乘积 n=p*q,然后随机选取加密密钥e,使e和(p-1)*(q-1)互素。最后用欧几里得(Euclidean)扩展算法计算解密密钥d,d满足ed1 mod (p-1)(q-1),即de-1 mod (p-1)(q-1)。则e和n为公开密钥,d是私人密钥。两个大数p和q 应该立即丢弃,不让任何人知道。一般选择公开密钥e比私人密钥 d小。最常选用的e值有三个3,17,65537。,加密消息时,首先将消息分成比n小的数据分组(采用二进制数,

12、选到小于n的2的最大次幂),设mi表示消息分组,ci表示加密后的密文,它与mi具有相同的长度。 加密过程:ci=mie(mod n) 解密过程:mi=cid(mod n),2.1.7 密钥与密码破译方法,1、密钥的穷尽搜索 破译密文最简单的方法,就是尝试所有可能的钥匙组合。 2、密码分析 在不知道钥匙的情况下,利用数学方法破译密文或找到秘密钥匙的方法,称为密码分析。密码分析有两个基本目标:利用密文发现明文,利用密文发现钥匙。 3、其它密码破译方法,2.2 数据完整性机制 密码学除了为数据提供保密方法以外,还可以用于其他的作用: 鉴别(authentication):消息的接收者可以确定消息的来

13、源,攻击者不可能伪装成他人。 抗抵赖(nonrepudiation):发送者事后不能否认自己已发送的消息。 完整性(integrity):消息的接收者能够验证消息在传送过程中是否被修改;攻击者不可能用假消息来代替合法的消息。,2.2.1 数据完整性验证,消息的发送者用要发送的消息和一定的算法生成一个附件,并将附件与消息一起发送出去;消息的接收者收到消息和附件后,用同样的算法与接收到的消息生成一个新的附件;把新的附件与接收到的附件相比较,如果相同,则说明收到的消息是正确的,否则说明消息在传送中出现了错误。,2.2.2 单向散列函数 单向散列函数(one-way hash function),也叫

14、压缩函数、收缩函数,它是现代密码学的中心,是许多协议的另一个结构模块。散列函数长期以来一直在计算机科学中使用,散列函数是把可变长度的输入串(叫做预映射,pre-image)转换成固定长度的输出串(叫做散列值)的一种函数。 利用单向散列函数生成消息的指纹可以分成两种情况。一种是不带密钥的单向散列函数,这种情况下,任何人都能验证消息的散列值;另一种是带密钥的散列函数,散列值是预映射和密钥的函数,这样只有拥有密钥的人才能验证散列值。单向散列函数的算法实现有很多种,如Snefru算法、N-Hash算法、MD2算法、MD4算法、MD5算法,SHA-1算法等等。,MD5算法描述 MD5以512bit的分组

15、来处理输入文本,每一分组又划分为16个32bit的子分组。算法的输出由4个32bit分组组成,将它们级联形成一个128bit的散列值。首先填充消息使用其长度恰好为一个比512的倍数仅小64bit的数。填充方法是在消息后面附一个1,然后填充上所需要的位数的0,然后在最后的64位上附上填充前消息的长度值。这样填充后,可使消息的长度恰好为512的整数倍,且保证不同消息在填充后不相同。,2.2.3 消息摘要算法MD5,2.3 数字签名机制,数字签名机制需要实现以下几个目的: l 可信:消息的接收者通过签名可以确信消息确实来自于声明的发送者。 l 不可伪造:签名应是独一无二的,其它人无法假冒和伪造。 l

16、 不可重用:签名是消息的一部分,不能被挪用到其它的文件上。 l 不可抵赖:签名者事后不能否认自己签过的文件。,2.3.1 数字签名的基本原理 数字签名实际上是附加在数据单元上的一些数据或是对数据单元所作的密码变换,这种数据或变换能使数据单元的接收者确认数据单元的来源和数据的完整性,并保护数据,防止被人(如接收者)伪造。 签名机制的本质特征是该签名只有通过签名者的私有信息才能产生,也就是说,一个签名者的签名只能唯一地由他自己产生。当收发双方发生争议时,第三方(仲裁机构)就能够根据消息上的数字签名来裁定这条消息是否确实由发送方发出,从而实现抗抵赖服务。另外,数字签名应是所发送数据的函数,即签名与消息相关,从而防止数字签名的伪造和重用。,2.3.2 数字签名的实现方法 1、使用对称加密和仲裁者实现数字签名,2、使用公开密钥体制进行数字签名 公开密钥体制的发明,使数字签名变得更简单,它不再需要第三方去签名和验证。签名的实

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号