《网络管理与信息安全.ppt》由会员分享,可在线阅读,更多相关《网络管理与信息安全.ppt(25页珍藏版)》请在优知文库上搜索。
1、8.3.1 密码技术概述密码技术(Cryptology)对存储或者传输的信息采取秘密的交换以防止第三者对信息的窃取的技术。密码技术分为加密和解密两部分。加密是把需要加密的报文(也称为明文known plaintext)按照以密码钥匙(简称密钥)为参数以及加密函数进行变换,产生无阅读意义的密码文件(简称密文 ciphertext)。解密是按照密钥和解密函数把密文还原成明文的过程。密码学的基本原则是假定密码分析者知道加密和解密使用的方法,但不知道密钥。所以算法(可能多种)必须是公开的,只有密钥是保密的。密钥是为了有效控制加密、解密算法的实现,在这些算法的实现过程中,需要有某些只能被通信双方所掌握的
2、专门的、关键的信息参与,这些信息就是密钥。加密在许多场合集中表现为对密钥的应用,因此密钥是保密和窃密的主要对象。密钥是一个数值,它和加密算法一起生成特别的密文。密钥本质是非常大的数,密钥的尺寸用位(bit)表示,在公开密钥加密方法中,密钥的尺寸越大,密文就越安全。如商业机构至少使用128位的密钥;政府机构至少需要256位密钥,才算得上安全密钥。 几个概念 明文(消息)(Plaintext) :被隐蔽消息。 密文密文(Ciphertext)或密报密报(Cryptogram):明文经密码变换成的一种隐蔽形式。加密加密(Encryption):将明文变换为密文的过程。解密解密(Decryption)
3、:加密的逆过程,即由密文恢复出原明文的过程。加密员加密员或密码员密码员(Cryptographer):对明文进行加密操作的人员。 加密算法(Encryption algorithm):密码员对明文进行加密时所采用的一组规则。接收者(Receiver):传送消息的预定对象。解密算法:接收者对密文进行解密时所采用的一组规则。密钥(Key):控制加密和解密算法操作的数据处理,分别称作加密密钥和解密密钥截收者(Eavesdropper):在信息传输和处理系统中的非受权者,通过搭线窃听、电磁窃听、声音窃听等来窃取机密信息。8.3.1 密码技术概述利用密码技术,报文在从信源发出和进入通信信道之间进行加密,
4、经过信道传输,到信宿接收时进行解密,以实现网络通信保密。加密与解密模型 如图8.8所示。图8.8加密解密模型 在网络中,位于通信双方两个端点之间的任何一个实体均可将信息(信号)轻易拦截下来。若密码分析的攻击者只是监听、破译对密码通信信道上所有信息,称之为被动攻击。若他还能够对通信道上传输的消息进行篡改甚至主动发送信息,破坏信息的完整性和可用性称之为主动攻击。恺撒密码(The Caesar Cipher) 它是一种简单的替换加密法: 字母表中的每个字母依次都被靠后的第三个字母取代。即:字母A变成D、B变成E、X变成A、Y变成B、Z变成C,依次类推。这种加密技术的一个变种是ROT-13密码,每个字
5、母均循环移动13个位置。 简单的替换加密存在重大的缺陷,因为重复出现的某个字母总是会用相同的字母替代。通过对某种语言的分析,可知道字母被移动的大致距离。信源Mm加密器)(1mEck解密器)(2cDmk接收者m非法接入者搭线信道(主动攻击)C 搭线信道(被动攻击)密码分析员m密钥源K1k1密钥源K2k2密钥信道保密系统模型保密系统模型8.3.2 私钥密码技术私钥密码体制是从传统的简单换位、代替密码发展而来的,也称为对称密码体制(Symmetric-key algorithm)。对称密码体制使用相同的密钥加密和解密信息,亦即通信双方建立并共享一个密钥。对称密码体制的工作原理为:用户A要传送机密信息
6、给B,则A和B必须共享一个预先由人工分配或由一个密钥分发中心(KDC)分发的密钥K,于是A用密钥K和加密算法E对明文P加密得到密文C=EK(P),并将密文C发送给B;B 用同样的密钥K和解密算法D对密文进行解密,得到明文P=DK(EK(P)。按加密模式来分,对称密码体制可以分为流密码Stream Cipher(或称序列密码)和分组密码 Block Cipher (或称块密码)两大类。8.3.2 私钥密码技术1. 流密码SSC(Synchronous Stream Cipher):流密码的工作原理是:通过有限状态机产生性能优良的伪随机序列,使用该序列加密信息流,逐比特加密,得到密文序列。所以流密
7、码的安全强度完全取决于它所产生的伪随机序列的好坏。密钥流将独立于明文。流密码的优点是错误扩展小、速度快、同步容易和安全程度高。对流密码的攻击的主要手段有代数方法和概率统计方法,两者的结合可以达到较好的效果。8.4.2 私钥密码技术2. 分组密码分组密码是许多系统安全的一个重要组成部分。分组密码是许多系统安全的一个重要组成部分。分组密码的工作方式是将明文分成固定的块,用同一密钥算法对每一块加密,输出也是固定长度的密文。分组密码(Block Cipher)是将明文消息编码表示后的数字序列x1,x2,x3,划分成长为m的组x=(x0,x1,xm-1),各组分别在密钥k=(k0,k1,kl-1)控制下
8、变换成等长的输出数字序列y=(y0,y1,yn-1),其加密函数E:VnKVn,Vn是n维矢量空间,K为密钥空间。分组密码与流密码不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是还与一组长为m的明文数字有关。这种密码实质上是字长为m的数字序列的代换密码,如图8.9所示。8.3.2 私钥密码技术图8.9 分组密码框图 明文序列 x1, x2, xi, 加密函数E: VnKVn 这种密码实质上是字长为m的数字序列的代换密码。 解密算法加密算法密钥k=(k0, k1, kt-1 )密钥k=(k0, k1, kt-1 )明文明文x=(x0, x1, xm-1)明文明文x=(x0,
9、x1, xm-1)密文密文x=(y0, y1, ym-1)8.3.2 私钥密码技术通常取n=m;若nm,则为有数据扩展的分组密码; 若nm,则为有数据压缩的分组密码。分组密码每次加密的明文数据量是固定的分组长度n,而实用中待加密消息的数据量是不定的,因此需要采用适当的工作模式来隐蔽明文中的统计特性、数据的格式等,以提高整体的安全性,降低删除、重放、插入和伪造的成功的机会。美国NSB规定了四种基本的工作模式,即电码本(ECB)、密码反馈链接(CBC)、密码反馈(CFB)、输出反馈(OFB)。ANSI、ISO和ISO/IEC也规定了类似的工作模式。SET协议使用DES的密码分组链接CBC(Ciph
10、er Block Chaining)模式。比较和选用ECB模式,简单、高速,但最弱、易受重发攻击,一般不推荐。CBC适用于文件加密,但较ECB慢。安全性加强。当有少量错误时,也不会造成同步错误。OFB和CFB较CBC慢许多。每次迭代只有少数bit完成加密。若可以容忍少量错误扩展,则可换来恢复同步能力,此时用CFB。在字符为单元的流密码中多选CFB模式。OFB用于高速同步系统,不容忍差错传播。8.3.2 私钥密码技术3. DES和AES 美国数据加密标准:美国数据加密标准:DES (Data Encryption Standard)是当今使用得最为广泛的一种加密方案,一般认为是很难破解的私钥。它
11、以64bit的块来加密,即通过对64位的明文块加密得到64位的密文块。加密和解密都使用相同的密钥和算法,只是在密钥次序中有些区别。56位的密钥表示为64位的数,而每个第8位都用于奇偶校验。 DES 算法分组长度为64 bits (8 bytes)密文分组长度也是64 bits。密钥长度为64 bits,有8 bits奇偶校验,有效密钥长度为56 bits。算法主要包括:初始置换IP、16轮迭代的乘积变换、逆初始置换IP-1以及16个子密钥产生器。 输入 64 bit明文数据 初始置换IP 乘积变换 (16轮迭代) 逆初始置换IP-1 64 bit密文数据 输出 标准数据加密算法DES可用于所有
12、可用于所有4种模式中:种模式中:ECB、CBC、CFB用用OFB。但。但是,一般是,一般DES只用于密码块链只用于密码块链接接CBC模式和模式和CFB模式。模式。8.3.2 私钥密码技术高级加密标准AES(Advanced Encryption Standard)是替换DES 的一种加密算法。AES具备以下的特点:算法必须是对称密码或私有密码。算法必须是类似DES的一块密码,而不是流密码。算法支持密钥长度范围从128、192到256位,而且算法还应支持不同块数的数据。算法应该用或Java程序语言设计。状态算法中间的结果也需要分组,称之为状态,状态可以用以字节为元素的矩阵阵列表算法中间的结果也需
13、要分组,称之为状态,状态可以用以字节为元素的矩阵阵列表示,该阵列有示,该阵列有4 4行,列数行,列数N Nb b为分组长度除为分组长度除3232 种子密钥种子密钥以字节为元素的矩阵阵列描述,阵列为以字节为元素的矩阵阵列描述,阵列为4 4行,列数行,列数N Nk k为密钥长度除为密钥长度除3232 除上述需求外,AES还必须要高效率,高安全性,而且AES算法必须是公开,免专利权税。 AES的评审1999年8月9日NIST宣布第二轮筛选出的5个候选算法为: MARS(C.Burwick等,IBM), RC6TM(R. Rivest等,RSA Lab.), RIJNDEAL(J. Daemen,比)
14、, SERPENT(R. Anderson等,英、以、挪威), TWOFISH(B. Schiener)。2000年10月2日,NIST宣布Rijndael作为新的AESAES算法设计思想算法设计思想抵抗所有已知的攻击;抵抗所有已知的攻击;在多个平台上速度快,编码紧凑;在多个平台上速度快,编码紧凑;设计简单。设计简单。Rijndael没有采用没有采用Feistel结构,轮函数由结构,轮函数由3个不同的可逆个不同的可逆均匀变换构成的,称为均匀变换构成的,称为3个层个层均匀变换是指状态的每个均匀变换是指状态的每个bit都用类似的方法处理都用类似的方法处理8.3.3 公钥密码技术1.公开密钥密码概述
15、公钥加密算法也称非对称密钥算法,用两对密钥:一个公共密钥和一个专用密钥。公共密钥则可以发布出去,专用密钥要保证绝对的安全。用公共密钥加密的信息只能用专用密钥解密,反之亦然。公共密钥加密算法主要有:RSA、DiffieHellman等。公钥密码体制的原理为:用户A 和B各自拥有一对密钥(KA、KA-1)和(KB、KB-1)。 私钥KA-1 、 KB-1分别由A、B各自秘密保管,而KA 、 KB则以证书的形式对外公布。当A要将明文消息P安全地发送给B,则A用B的公钥KB加密P得到密文C=E KB (P);而B收到密文P后,用私钥KB -1解密恢复明文P= D KB-1 (C)= D KB-1 (E
16、 KB (P)8.3.3 公钥密码技术 公钥加密算法中使用最广的是RSA。RSA使用两个密钥,一个公共密钥,一个专用密钥。如用其中一个加密,则用另一个解密,密钥长度从40到2048bit可变,加密时也把明文分成块,块的大小可变,但不能超过密钥的长度,RSA算法把每一块明文转化为与密钥长度相同的密文块。密钥越长,加密效果越好,但加密、解密的开销也大,所以要在安全与性能之间折衷考虑,一般64位是较合适的。 RSA之所以能够保密,关键在于大质数的乘积因子的分解困难。RSA的重要特点是其中一个密钥对一条信息进行加密,而只有你才能对它进行解密;另外,你也可用自己的私人密钥对任何东西进行加密,而只要拿到你的公共密钥的人都能对它进行解密。这样做的实际意义在于“不可否认”以及数字签名中非常重要。公用密钥的优点就在于,尽管通信双方不认识,但只要提供密钥的CA可靠,就可以进行安全通信,这正是Web商务所要求的。公共密钥方案较保密密钥方案处理速度慢,因此,通常把公共密钥与专用密钥技术结合起来实现最佳性能。8.3.3 公钥密码技术2. RSA密码系统RSA是第一个较完善的公开密钥算法。RSA的理论基础是数论的