1、 5.2 5.2 密码破译与密钥管理密码破译与密钥管理2 2 5.3 5.3 实用密码技术概述实用密码技术概述3 3 5.4 5.4 PGPPGP软件应用实验软件应用实验4 4 5.1 5.1 密码技术概述密码技术概述1 1 5.5 5.5 本章小结本章小结 5 5 掌握掌握加密技术、密码学加密技术、密码学相关概念相关概念 掌握掌握数据及网络加密数据及网络加密方式方式 了解了解密码破译方法密码破译方法与与密钥管理密钥管理 掌握掌握实用加密技术实用加密技术 5.1密码技术概述密码技术概述n 5.1.1 5.1.1 密码学发展历程密码学发展历程 二战中二战中,日本研制的日本研制的JN-25BJN-
2、25B密码密码曾自认为是曾自认为是当时最高级密码而不可被破解,并为日军成功偷袭珍珠当时最高级密码而不可被破解,并为日军成功偷袭珍珠港发挥了重要作用。港发挥了重要作用。19421942年年5 5月,日军欲故技重施,妄月,日军欲故技重施,妄图偷袭中途岛,想一战奠定其在西太平洋的统治地位。图偷袭中途岛,想一战奠定其在西太平洋的统治地位。然而,美国海军密码局在英国然而,美国海军密码局在英国“布莱切雷庄园布莱切雷庄园”协助下,协助下,成功破译此密码,洞悉到日本人的野心,给了日本联合成功破译此密码,洞悉到日本人的野心,给了日本联合舰队致命一击。美军尼米兹上将曾写道:舰队致命一击。美军尼米兹上将曾写道:“中
3、途岛战役中途岛战役本质上是一次情报侦察的胜利。本质上是一次情报侦察的胜利。”案例案例5 5-1-15.1.1 密码学发展历程密码学发展历程 根据古罗马历史学家苏维托尼乌斯的记载,根据古罗马历史学家苏维托尼乌斯的记载,恺撒恺撒曾用此方法曾用此方法对重要的军事信息进行加密对重要的军事信息进行加密:“如果如果需要保密,信中便用暗号,也即是改变字母顺序,使需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第的意思,得用第4 4个字母置换第一个字母,即以个字母置换第一个字母,即以D D代代A A,余此类推
4、。余此类推。”案例案例5 5-2-25.1.1 密码学发展历程密码学发展历程n 19491949年,年,香农香农(ShannonShannon)开创性开创性的发表了的发表了论文论文保密系统的保密系统的通信原理,为密码学建立了理论基础,从此密码学成为一门通信原理,为密码学建立了理论基础,从此密码学成为一门科学。自此以后,越来越多针对密码学的研究开始出现,密码科学。自此以后,越来越多针对密码学的研究开始出现,密码学开始有了理论的数学基础,其地位已上升为一专门的学科。学开始有了理论的数学基础,其地位已上升为一专门的学科。n 1976 1976 年,密码学界发生了两件年,密码学界发生了两件有影响力的事
5、情有影响力的事情. . 一是数据加一是数据加密算法密算法DES DES 的发布,二是的发布,二是Diffie Diffie 和和Hellman Hellman 公开提出了公钥公开提出了公钥密码学的概念。密码学的概念。DES DES 算法的发布是对称密码学的一个里程碑,算法的发布是对称密码学的一个里程碑,而公钥密码学概念的出现也使密码学开辟了一个新的方向。而公钥密码学概念的出现也使密码学开辟了一个新的方向。n 自此以后,密码学已经从军事领域走出来,成为一个公开的学自此以后,密码学已经从军事领域走出来,成为一个公开的学术研究方向。无论是对称密码学还是公钥密码学,其都是为了术研究方向。无论是对称密码
6、学还是公钥密码学,其都是为了解决数据的保密性,完整性和认证性这三个主要的问题。解决数据的保密性,完整性和认证性这三个主要的问题。5.1.1 密码学发展历程密码学发展历程n 现在的学术界一般认为,现在的学术界一般认为,密码学研究的目的密码学研究的目的乃是要保证数据的乃是要保证数据的保密性、完整性和认证性。保密性、完整性和认证性。n 数据的保密性数据的保密性是指未经授权的用户不可获得原始数据的内容。是指未经授权的用户不可获得原始数据的内容。n 数据的完整性数据的完整性是验证数据在传输中未经篡改。是验证数据在传输中未经篡改。n 数据的认证数据的认证( (审查审查) )性性是指验证当前数据发送方的真实
7、身份。是指验证当前数据发送方的真实身份。n 密码学正是研究信息保密性、完整性和认证性的科学,是数学密码学正是研究信息保密性、完整性和认证性的科学,是数学和计算机的交叉学科,也是一门新兴并极有发展前景的学科。和计算机的交叉学科,也是一门新兴并极有发展前景的学科。5.1.2 密码学相关概念密码学相关概念n 密码学包含两个互相对立的分支密码学包含两个互相对立的分支n 研究编制密码的技术称为研究编制密码的技术称为密码编码学密码编码学(CryptographyCryptography),),主要研究对数据进行变换的原理、手段和方法,用于密码主要研究对数据进行变换的原理、手段和方法,用于密码体制设计。体制
8、设计。n 研究破译密码的技术称为研究破译密码的技术称为密码分析学密码分析学(CryptanalysisCryptanalysis),),主要研究内容如何破译密码算法。密码编制学和密码分析主要研究内容如何破译密码算法。密码编制学和密码分析学共同组成密码学。学共同组成密码学。5.1.2 密码学相关概念密码学相关概念n 基本概念基本概念n 在学习密码技术之前,首先定义一些术语。在学习密码技术之前,首先定义一些术语。n 明文明文是原始的信息(是原始的信息(PlaintextPlaintext,记为,记为P P)。)。n 密文密文是明文经过变换加密后信息(是明文经过变换加密后信息(CiphertextC
9、iphertext,记为,记为C C)。)。n 加密加密是从明文变成密文的过程(是从明文变成密文的过程(EncipheringEnciphering,记为,记为E E)。)。n 解密解密是密文还原成明文的过程(是密文还原成明文的过程(DecipheringDeciphering,记为,记为D D)。)。5.1.2 密码学相关概念密码学相关概念n 加密算法加密算法(Encryption AlgorithmEncryption Algorithm)是实现加密所遵循的规则)是实现加密所遵循的规则。用于对明文进行各种代换和变换,生成密文。用于对明文进行各种代换和变换,生成密文。n 解密算法解密算法(D
10、ecryption AlgorithmDecryption Algorithm)是实现解密所遵循的规则)是实现解密所遵循的规则,是加密算法的逆运行,由密文得到明文。,是加密算法的逆运行,由密文得到明文。n 密钥密钥(KeyKey,记为,记为K K)。为了有效地控制加密和解密算法的实现)。为了有效地控制加密和解密算法的实现,密码体制中要有通信双方的专门的保密,密码体制中要有通信双方的专门的保密“信息信息”参与加密和参与加密和解密操作,这种专门信息称为密钥。解密操作,这种专门信息称为密钥。 5.1.2 密码学相关概念密码学相关概念n 加密协议定义了如何使用加密、解密算法来解决特定的任务。加密协议定
11、义了如何使用加密、解密算法来解决特定的任务。n 发送消息的对象称作发送消息的对象称作发送方发送方(SenderSender)。)。n 传送消息的预定接收对象称作传送消息的预定接收对象称作接收方接收方 (Receiver) (Receiver) 。n 非授权进入计算机及其网络系统者称为非授权进入计算机及其网络系统者称为入侵者入侵者(Intruder) (Intruder) 。5.1.2 密码学相关概念密码学相关概念n 在消息传输和处理系统中,除了意定的接收者外,非授权在消息传输和处理系统中,除了意定的接收者外,非授权者通过某种办法(如搭线窃听、电磁窃听、声音窃听等)来者通过某种办法(如搭线窃听、
12、电磁窃听、声音窃听等)来窃取机密信息,称为窃取机密信息,称为窃听者窃听者 (Eavesdropper) (Eavesdropper) 。n 入侵者入侵者主动向系统窜扰,采用删除、更改、增添、重放、主动向系统窜扰,采用删除、更改、增添、重放、伪造等手段向系统注入假消息,以达到损人利己的目的,这伪造等手段向系统注入假消息,以达到损人利己的目的,这类攻击称作类攻击称作主动攻击主动攻击 (Active Attack) (Active Attack) 。n 对一个密码体制采取截获密文进行分析,称作对一个密码体制采取截获密文进行分析,称作被动攻击被动攻击 (Passive Attack) (Passive
13、 Attack) 。5.1.2 密码学相关概念密码学相关概念n 密码体制密码体制n 任何一个任何一个密码体制密码体制至少包括至少包括五个组成部分五个组成部分:明文、密文、加密:明文、密文、加密、解密算法及密钥。、解密算法及密钥。5.1.2 密码学相关概念密码学相关概念n 一个密码体制的一个密码体制的基本工作过程基本工作过程是:发送方用加密密钥,通过是:发送方用加密密钥,通过加密算法,将明文信息加密成密文后发送出去;加密算法,将明文信息加密成密文后发送出去;n 接收方在收到密文后,用解密密钥,通过解密算法将密文解接收方在收到密文后,用解密密钥,通过解密算法将密文解密,恢复为明文。如果传输中有人窃
14、取,他只能得到无法理密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。解的密文,从而对信息起到保密作用。5.1.2 密码学相关概念密码学相关概念n 密码体制的分类密码体制的分类n 对称密码体制对称密码体制n加密、解密都需要密钥。如果加、解密密钥相同,这样加密、解密都需要密钥。如果加、解密密钥相同,这样的系统称为对称密钥密码体制的系统称为对称密钥密码体制(Symmetric Key System)(Symmetric Key System),也称单钥密码体制。系统特点是加、解密的密钥是相,也称单钥密码体制。系统特点是加、解密的密钥是相同的、保密的。同的、保密的
15、。n 非对称密码体制非对称密码体制n如果加、解密密钥不同,则这种系统是非对称密钥密码如果加、解密密钥不同,则这种系统是非对称密钥密码体体制制 (Non-Symmetric Key System) ,又称双钥密码体制又称双钥密码体制、公开密钥密码体制。、公开密钥密码体制。n 混合混合密码体制密码体制5.1.2 密码学相关概念密码学相关概念n 对称与非对称密码体制特性对比对称与非对称密码体制特性对比n 对称与非对称密码体制特性对比表5.1.2 密码学相关概念密码学相关概念n 混合密码体制基本原理混合密码体制基本原理5.1.2 密码学相关概念密码学相关概念n KerckhoffKerckhoff原理
16、原理n 系统密文不可破译;系统密文不可破译;n 系统的保密性不依赖于对加密算法的保密,而是依赖于密系统的保密性不依赖于对加密算法的保密,而是依赖于密钥;钥;n 加密和解密算法适用于密钥空间中的所有密钥;加密和解密算法适用于密钥空间中的所有密钥;n 系统应该有良好的可用性,便于实现和使用。系统应该有良好的可用性,便于实现和使用。5.1.2 密码学相关概念密码学相关概念n 按照密码体制所处的时代,按照密码体制所处的时代,密码体制密码体制又可以又可以划分划分为:为:n 古典密码体制。古典密码体制。 在计算机出现之前所涉及的密码体制一般在计算机出现之前所涉及的密码体制一般称为古典密码体制。这类密码一般
17、直接对明文采用置换和称为古典密码体制。这类密码一般直接对明文采用置换和代换操作,运算较为简单,安全性差。代换操作,运算较为简单,安全性差。n 现代密码体制。自计算机出现后产生的密码体制,使用计现代密码体制。自计算机出现后产生的密码体制,使用计算机加密运算较为复杂,破译难度大。算机加密运算较为复杂,破译难度大。5.1.2 密码学相关概念密码学相关概念n 安全的密码体制安全的密码体制应具有的应具有的性质性质n 从密文恢复明文应该是难的,即使分析者知道明文空间,从密文恢复明文应该是难的,即使分析者知道明文空间,如明文是英语。如明文是英语。n 从密文计算出明文部分信息应该是难的。从密文计算出明文部分信
18、息应该是难的。n 从密文探测出简单却有用的事实应该是难的,如相同的信从密文探测出简单却有用的事实应该是难的,如相同的信息被发送了两次。息被发送了两次。5.1.2 密码学相关概念密码学相关概念n 密码体制安全性评价密码体制安全性评价n 无条件安全性无条件安全性如果一个密码体制满足条件:无论有多少可使用的密文,如果一个密码体制满足条件:无论有多少可使用的密文,都不足以惟一地确定密文所对应的明文,则称该密码体制都不足以惟一地确定密文所对应的明文,则称该密码体制是无条件安全的。是无条件安全的。n 计算安全性计算安全性n人们更关心在计算复杂性上不可破译的密码体制。如果人们更关心在计算复杂性上不可破译的密
19、码体制。如果一个密码体制满足以下标准:一个密码体制满足以下标准:n 破译密码的代价超出密文信息的价值;破译密码的代价超出密文信息的价值;n 破译密码复杂度超出了攻击者现有的计算能力;破译密码复杂度超出了攻击者现有的计算能力;n 破译密码的时间超过了密文信息的有效生命期;破译密码的时间超过了密文信息的有效生命期;5.1.3 数据及网络加密方式数据及网络加密方式n 数据传输加密数据传输加密n 链路加密n 节点对节点加密n 端对端加密n 三种加密方式比较三种加密方式比较:n 链路加密的目的是保护链路两端网络设备间的通信安全;节点加密的目的是对源节点到目的节点之间的信息传输提供保护;n 端到端加密的目
20、的是对源端用户到目的端用户的应用系统通信提供保护。n 链路加密和端对端加密方式的区别是:链路加密方式是对整个链路的传输采取保护措施,而端对端方式则是对整个网络系统采取保护措施。端对端加密方式是未来发展主要方向。对于重要的特殊机密信息,可以采用将二者结合的加密方式。5.1.3 数据及网络加密方式数据及网络加密方式n 数据存储加密数据存储加密: :n 利用系统本身的加密功能加密n 密码加密法n 通过密钥加密n 数据存储加密方法比较数据存储加密方法比较:n 利用系统本身的加密功能加密特点是加密方式对系统的依赖性强,离开系统会出现无法读取现象;n 密码加密法是读取时加密,没有对文件加密;通过密匙加密;
21、是对文件整体加密。(1)什么是密码学?密码体制有哪些?什么是密码学?密码体制有哪些?(2)数据加密技术主要分为哪两种加密方式?数据加密技术主要分为哪两种加密方式?(3)对传输中的数据流进行加密方式有哪些?其特点?对传输中的数据流进行加密方式有哪些?其特点?(4)数据加密技术在未来网络安全技术中的作用和地位数据加密技术在未来网络安全技术中的作用和地位?5.2 密码破译与密钥管理密码破译与密钥管理n 密码破译方法密码破译方法n 穷举搜索密钥攻击n 密码分析密码分析5.2 密码破译与密钥管理密码破译与密钥管理n 惟密文攻击惟密文攻击 (Ciphertext-only attack)(Cipherte
22、xt-only attack)n 在这种方法中,密码分析员已知加密算法,掌握了一段或几段要解密的密文,通过对这些截获的密文进行分析得出明文或密钥。n 惟密文破解是最容易防范的,因为攻击者拥有的信息量最少。但是在很多情况下,分析者可以得到更多的信息。如捕获到一段或更多的明文信息及相应的密文,也可能知道某段明文信息的格式。5.2 密码破译与密钥管理密码破译与密钥管理n 已知明文攻击已知明文攻击(Known-plaintext attackKnown-plaintext attack)n 在这种方法中,密码分析员已知加密算法,掌握了一段明文和对应的密文。目的是发现加密的钥匙。在实际使用中,获得与某些
23、密文所对应的明文是可能的。5.2 密码破译与密钥管理密码破译与密钥管理n 惟选定明文攻击惟选定明文攻击 (Chosen-plaintext attack)(Chosen-plaintext attack)n 在这种方法中,密码分析员已知加密算法,设法让对手加密一段分析员选定的明文,并获得加密后的密文。目的是确定加密的钥匙。差别比较分析法也是选定明文破译法的一种,密码分析员设法让对手加密一组相似却差别细微的明文,然后比较加密后的结果,从而获得加密的钥匙。n 选择密文攻击选择密文攻击 (Chosen-ciphertext attack)(Chosen-ciphertext attack)n 选择密
24、文攻击指的是一种攻击模型。在此种攻击模型中,密码分析者事先任意搜集一定数量的密文,让这些密文透过被攻击的加密算法解密,透过未知的密钥获得解密后的明文。它在密码分析技术中很少用到。5.2 密码破译与密钥管理密码破译与密钥管理n 防止密码破译的措施防止密码破译的措施n 增强密码算法安全性。通过增加密码算法的破译复杂程度,进行密码保护。例如增加密码系统的密钥长度,一般在其他条件相同的情况下,密钥越长破译越困难,而且加密系统也就越可靠。n 使用动态会话密钥。每次会话所使用的密钥不相同。n 定期更换会话密钥。5.2 密码破译与密钥管理密码破译与密钥管理n 密钥管理密钥管理n 密钥管理是指对所用密钥生命周
25、期的全过程实施的安全保密管理。包括密钥的产生、存储、分配、使用和销毁等一系列技术问题。主要任务是如何在公用数据网上安全地传递密钥而不被窃取。n 目前主要有两种网络密钥管理方法:KDC(Key Distribution Center)和Diffie-Hellman。5.2 密码破译与密钥管理密码破译与密钥管理n 密钥管理密钥管理n KDC使用可信第三方来验证通信双方的真实性,产生会话密钥,并通过数字签名等手段分配密钥。Diffie-Hellman则不需KDC,通信发起方产生通信会话的私用密钥,并通过数字签名或零知识证明等方式安全传递通信密钥。n 网络密钥主要有会话密钥(Session Key)、
26、基本密钥(Basic Key)和主密钥(Master Key)三种。5.2 密码破译与密钥管理密码破译与密钥管理n 密钥分配密钥分配n 密钥分配协定是这样的一种机制:系统中的一个成员先选择一个秘密密钥,然后将它传送另一个成员或别的成员。密钥协定是一种协议,是通过两个或多个成员在一个公开的信道上通信联络建立一个秘密密钥。n 理想的密钥分配协议理想的密钥分配协议应满足以下两个条件:应满足以下两个条件: n 传输量和存储量都比较小; n 每一对用户U和V都能独立地计算一个秘密密钥K。 5.2 密码破译与密钥管理密码破译与密钥管理n 密钥交换密钥交换n Diffic-Hellmen算法n仅当需要时才生
27、成密钥,减少了因密钥存储期长而使遭受攻击的机会;除对全局参数的约定外,密钥交换不需要事先存在的基础结构。n Oakley算法n是对Diffie-Hellman密钥交换算法的优化,保留了后者的优点,同时克服了其弱点。Oakley算法具有五个重要特征:采用cookie程序的机制来对抗阻塞攻击;使双方能够协商一个全局参数集合;使用了限时来抵抗重演攻击;能够交换Diffie-Hellman公开密钥;它对Diffie-Hellman交换进行鉴别以对抗中间人的攻击。5.2 密码破译与密钥管理密码破译与密钥管理n 秘密共享技术秘密共享技术n Shamir于1979年提出了一种解决方法,称为门限法,实质上是一
28、种秘密共享的思想。n 密钥托管技术密钥托管技术n 美国政府于1993年4月16日通过美国商业部颁布了具有密钥托管功能的加密标准EES。(1)对称密码体制破译的两种主要方法是什么?如何预防?对称密码体制破译的两种主要方法是什么?如何预防?(2)什么是密钥管理?为什么要进行密钥管理?什么是密钥管理?为什么要进行密钥管理?(3)密钥管理包含的内容是什么?主要的密钥管理技术有哪些?密钥管理包含的内容是什么?主要的密钥管理技术有哪些?5.3 实用密码技术概述实用密码技术概述实用密码技术实用密码技术主要包括:主要包括:n 古典对称密码古典对称密码n 现代分组密码现代分组密码n 现代流密码算法现代流密码算法
29、n 现代散列算法现代散列算法古典对称古典对称密码密码n 1)代换技术代换技术n代换技术是将明文中的每个元素(字母、比特、比特组合或字母组合)映射为另一个元素的技术,即明文的元素被其他元素所代替而形成密文。常见的代换技术的古典对称密码包括凯撒密码、单字母替换密码及Vigenere密码。5.3 实用加密技术概述实用加密技术概述n 凯撒密码凯撒密码是是最古老最古老的一种的一种单表替代单表替代密码。这种技术将字母按密码。这种技术将字母按字母表字母表的的顺序顺序排列,并将排列,并将最后最后一个字母和一个字母和第一个第一个字母相连起来,构成一个字母相连起来,构成一个字母序列字母序列,明,明文中的每个字母用
30、该序列中在它后面的第三个字母来代替,构成文中的每个字母用该序列中在它后面的第三个字母来代替,构成密文密文。也。也就是说密文字母相对明文字母循环右移就是说密文字母相对明文字母循环右移3 3为,所以也成为,所以也成“循环循环移位移位密码密码”。n 明文字母:a b c d e f g h I j k l m n o p q r s t u v w x y zn 密文字母:D E F G H I J K L M N O P Q R S T U V W X Y Z A B Cn 如果让每个字母如果让每个字母对应对应一个数值(一个数值(a=0a=0,b=1b=1,z=25z=25),则该算法可以),则该
31、算法可以表示为:表示为:n 其中:其中: P P:明文信息元素:明文信息元素 C C:密文信息元素:密文信息元素n 密文字母密文字母与与明文字母明文字母的的偏移偏移可以是可以是任意任意值,形成了所谓的值,形成了所谓的移位密码移位密码,其,其加加密算法密算法可以表示为:可以表示为: 其中其中, K K是加密算法的是加密算法的密钥密钥,可以在可以在1 1到到2525之间取值。之间取值。n 解密算法解密算法可以表示为:可以表示为: 5.3 实用加密技术概述实用加密技术概述n 2 2)置换技术)置换技术n 置换置换是在不丢失信息的前提下对明文中的元素进行是在不丢失信息的前提下对明文中的元素进行重新排列
32、重新排列,分为分为矩阵置换矩阵置换和和列置换列置换。矩阵置换矩阵置换:这种加密法是把明文中的:这种加密法是把明文中的字母字母按给定的顺序按给定的顺序安排安排在一在一矩阵矩阵中,然后用另一种顺序中,然后用另一种顺序选出选出矩矩阵的字母来产生阵的字母来产生密文密文。 1 2 3 4 N I E G E R N E N A I G 图图6-10 置换前、后排列置换前、后排列明文明文E ENGINEERINGNGINEERING按行排在按行排在3 34 4矩阵中,矩阵中,如最后一行不全可用如最后一行不全可用A A,B B,C C填充填充。给定一个置换给定一个置换E=(1234)(2413)E=(123
33、4)(2413),现在根据,现在根据给定的置换,给定的置换, 按第按第2 2列,第列,第4 4列,第列,第1 1列,列,第第3 3列的次序排列,得到密文列的次序排列,得到密文 NIEGERNENAIGNIEGERNENAIG。 解密算法解密算法D D (2413) (1234) (2413) (1234)。参见图。参见图6-106-10。案例案例6-36-3 1 2 3 4 E N G I N E E R I N G A5.3 实用加密技术概述实用加密技术概述n 2 2现代对称加密现代对称加密技术技术 如果在一个密码体系中,如果在一个密码体系中,加密密钥加密密钥和和解密密钥解密密钥相同相同,就
34、称,就称为为对称加密对称加密。现代密码技术阶段。现代密码技术阶段加密加密和和解密解密算法算法是是公开的公开的,数,数据的据的安全性安全性完全完全取决于取决于密钥的安全性,因此,对称加密体系中密钥的安全性,因此,对称加密体系中如果如果密钥密钥丢失丢失,数据将,数据将不再安全不再安全。 代表性的对称加密算法有代表性的对称加密算法有DESDES(数学加密标准),(数学加密标准),IDEAIDEA(国(国际数据加密算法),际数据加密算法),RijndaelRijndael,AESAES,RC4RC4算法等。算法等。数据加密标准算法数据加密标准算法DESn 最早而且得到最广泛应用的分组密码算法是数据加密
35、标准DES(Data Encryption Standard)算法,是由IBM公司在70年代发展起来的。 n DES于1976年11月被美国政府采用,随后被美国国家标准局(现为国家标准和技术研究所NIST)承认,并被采纳为联帮信息处理标准46(FIPS PUB 46)。n DES算法采用了64位的分组长度和56位的密钥长度。它将64位的比特输入经过16轮迭代变换得到64位比特的输出,解密采用相同的步骤和相同的密钥5.3 实用加密技术概述实用加密技术概述n 1) DES1) DES 算法思想算法思想:DESDES算法将输算法将输入的明文分为入的明文分为6464位的数据位的数据分分组组,使用,使用
36、6464位位的的密钥密钥进行进行变变换换,每个,每个6464位位明文明文分组分组数据数据经过经过初始置换初始置换、1616次次迭代迭代和和逆初始置换逆初始置换3 3个主要阶段,个主要阶段,最后最后输出输出得到得到6464位位密文密文。7 7明文明文。6464位块位块初始置换初始置换左边左边3232位位右边右边3232位位5656位密钥位密钥右边右边2828位位左边左边2828位位循环左移循环左移重新合并成重新合并成5656位密钥位密钥压缩后得到压缩后得到4848位位扩展变换成扩展变换成4848位位s s盒压缩成盒压缩成3232位位经过经过P P置换成置换成3232位位XOXOR RXOXOR
37、R新右边新右边3232位位新左边新左边3232位位经过经过1616轮后得到的轮后得到的6464位位逆置换逆置换。1 1从第从第4 4步开始重复进行步开始重复进行1515轮轮, ,加第一轮共计是加第一轮共计是1616轮迭代轮迭代3 35 56 68 810106464位密文位密文循环左移循环左移图图6-11 DES6-11 DES加密算法加密算法9 92 24 45.3 实用加密技术概述实用加密技术概述n 2) 2) 三重三重DES DES n DESDES算法现在已经算法现在已经不能不能提供足够的提供足够的安全性安全性,因为其有效密钥只,因为其有效密钥只有有5656位。因此,后来又提出了位。因
38、此,后来又提出了三重三重DESDES(或称(或称3DES3DES),该方法),该方法的的强度强度大约和大约和112112比特的密钥强度相当。比特的密钥强度相当。n 这种方法用这种方法用两个密钥两个密钥对明文进行对明文进行三次运算三次运算。设两个密钥是。设两个密钥是K1K1和和K2K2:n (1) (1) 用密钥用密钥K1K1进行进行DESDES加密加密。n (2) (2) 用用K2K2对步骤对步骤1 1的结果进行的结果进行DESDES解密解密。n (3) (3) 用步骤用步骤2 2的结果使用密钥的结果使用密钥K1K1进行进行DESDES加密加密。三重三重DESn 三重(三重(Triple DE
39、STriple DES)是)是DESDES的加强版。它能够使用多个密钥,的加强版。它能够使用多个密钥,对信息逐次作三次对信息逐次作三次DESDES加密操作。加密操作。3DES3DES在使用在使用DESDES算法三次,算法三次,其中可以用到两组或者三组其中可以用到两组或者三组5656比特长度密钥。比特长度密钥。n 3DES3DES有有2 2个显著的优点。首先它的密钥长度可以达到个显著的优点。首先它的密钥长度可以达到168168比特比特,能克服,能克服 DES DES 面对的穷举攻击问题;其次,面对的穷举攻击问题;其次,3DES 3DES 的底层加的底层加密算法与密算法与 DES DES 的加密算
40、法相同,使得原有的加密设备能够得的加密算法相同,使得原有的加密设备能够得到升级。到升级。n 最后,最后, DESDES加密算法比其他加密算法受到分析的时间要长得加密算法比其他加密算法受到分析的时间要长得多,相应地多,相应地3DES3DES对分析攻击有很强的免疫力。缺点是用软件对分析攻击有很强的免疫力。缺点是用软件实现该算法比较慢。实现该算法比较慢。高级数据加密标准算法高级数据加密标准算法 AESn NISTNIST在在20012001年发布了高级加密标准年发布了高级加密标准AESAES(Advanced Encryption Advanced Encryption StandardStanda
41、rd)。)。NISTNIST从最终的五个候选者中选择从最终的五个候选者中选择RijndaelRijndael算法作算法作为为AESAES标准标准. .n AES的分组长度128位,密钥长度可以为128、192或256位。 n AES算法具有能抵抗所有的已知攻击,平台通用性强,运行速度快,设计简单等特点。 n 目前最流行的版本是128比特密钥长度的AES-128, 其对128比特的消息块使用10轮迭代后得到密文。相比DES,AES的安全性更好,但其加密步骤和解密步骤不同,因而其硬件实现没有DES简单。分组密码运行模式分组密码运行模式n 电子密码本模式(电子密码本模式(ECBECB)。)。n 密码
42、块链接模式(密码块链接模式(CBCCBC)。)。n 密文反馈模式(密文反馈模式(CFBCFB)。)。n 输出反馈模式(输出反馈模式(OFBOFB)。)。n 计数器模式计数器模式 (CTRCTR)。)。现代流密码算法现代流密码算法n 一个流密码通常是使用密钥和种子生成一个任意长度的一个流密码通常是使用密钥和种子生成一个任意长度的密钥流,再将生成的密钥流与需要进行加密操作的数据密钥流,再将生成的密钥流与需要进行加密操作的数据进行逐比特的异或操作。进行逐比特的异或操作。n 流密码既可以直接通过分组密码相应的运行模式得到,流密码既可以直接通过分组密码相应的运行模式得到,也可以直接特定的设计。很多基于硬
43、件实现的流密码都也可以直接特定的设计。很多基于硬件实现的流密码都会使用到线性移位寄存器(会使用到线性移位寄存器(LFSRLFSR) ,所以其运行速度,所以其运行速度非常快。非常快。现代流密码算法现代流密码算法n A5/1A5/1及及A5/2A5/2。 该算法被用在全球移动通信系统该算法被用在全球移动通信系统GSMGSM蜂窝移动蜂窝移动电话中,是电话中,是9090年代最广泛应用的流密码算法。目前该算法已年代最广泛应用的流密码算法。目前该算法已经被成功破译,不再得到应用。经被成功破译,不再得到应用。 n KASUMIKASUMI。 KASUMI KASUMI算法是第三代合作伙伴计划(算法是第三代合
44、作伙伴计划(3GPP3GPP)中的)中的日本学者提出的用在第三代移动通信网络(日本学者提出的用在第三代移动通信网络(3G3G)上的流密码)上的流密码算法,算法,KASUMIKASUMI是是“雾雾”的意思,其运行速度快,安全性好,的意思,其运行速度快,安全性好,已被使用在通用移动通信系统已被使用在通用移动通信系统UMTSUMTS中。中。n 其他的知名流密码算法包括美国图灵奖得主其他的知名流密码算法包括美国图灵奖得主Ronald RivestRonald Rivest设计的设计的RC4, RC4, 比利时密码学家比利时密码学家Bart PreneelBart Preneel等人设计的等人设计的Tr
45、iviumTrivium及瑞士密码学家及瑞士密码学家Willi MeierWilli Meier等人设计的等人设计的GrainGrain等。等。现代散列算法现代散列算法n HashHash算法将任意长度的二进制消息转化成固定长度的散列值。算法将任意长度的二进制消息转化成固定长度的散列值。n HashHash算法是一个不可逆的单向函数。不同的输入可能会得到相算法是一个不可逆的单向函数。不同的输入可能会得到相同的输出,而不可能从散列值来唯一的确定输入值。同的输出,而不可能从散列值来唯一的确定输入值。n 散列函数广泛应用在密码检验、身份认证、消息认证以及数字散列函数广泛应用在密码检验、身份认证、消息
46、认证以及数字签名上,因此散列函数往往是被应用的最广泛的密码算法。签名上,因此散列函数往往是被应用的最广泛的密码算法。n 据统计据统计Windows XPWindows XP操作系统就需要用到散列算法操作系统就需要用到散列算法700700多次。多次。n 常见的散列算法包括常见的散列算法包括MD4MD4、MD5MD5、SHA-1SHA-1、SHA-2 SHA-2 以及最新的美以及最新的美国国家标准与技术局发布的国国家标准与技术局发布的SHA-3SHA-3。MD4和和MD5n MD4MD4(Message Digest 4Message Digest 4),是麻省理工学院的教授),是麻省理工学院的教
47、授Ronald Ronald Rivest Rivest 的研究小组在的研究小组在19901990年设计的散列算法,因其是他们设年设计的散列算法,因其是他们设计的一系列散列算法中的第计的一系列散列算法中的第4 4个算法,所以称为个算法,所以称为MD4MD4。MD4MD4算法算法是基于是基于 32 32 位操作数的比特位操作来实现的,其输出散列值长位操作数的比特位操作来实现的,其输出散列值长度为度为128128位。该算法设计后被成功破译。位。该算法设计后被成功破译。n MD5MD5是是 Rivest Rivest 于于19911991年对年对MD4MD4的改进版本。与的改进版本。与MD4MD4算
48、法一样,算法一样,MD5 MD5 算法将输入的信息进行分组,每组仍以算法将输入的信息进行分组,每组仍以512 512 位(位(6464个个 字字节),顺序处理完所有分组后输出节),顺序处理完所有分组后输出128 128 位散列值。在每一组消位散列值。在每一组消息的处理中,都要进行息的处理中,都要进行4 4 轮、每轮轮、每轮16 16 步、总计步、总计64 64 步的处理。步的处理。其中,每步计算中含一次左循环移位,每一步结束时将计算结其中,每步计算中含一次左循环移位,每一步结束时将计算结果进行一次右循环移位。果进行一次右循环移位。安全散列算法安全散列算法SHA,SHA-1, SHA-2 和和
49、SHA-3n 19931993年,美国国家安全局(年,美国国家安全局(NSANSA)和美国国家标准技术局()和美国国家标准技术局(NISTNIST)共同提出了安全散列算法)共同提出了安全散列算法SHASHA, 并作为联邦信息处理标并作为联邦信息处理标准(准(FIPS PUB 180FIPS PUB 180)公布公布n 19951995年又发布了一个修订版年又发布了一个修订版FIPS PUB 180-1FIPS PUB 180-1,通常称之为,通常称之为SHA-SHA-1 1。SHA-1SHA-1是基于是基于MD4MD4算法的,并且它的设计在很大程度上是模算法的,并且它的设计在很大程度上是模仿仿
50、MD4MD4的。的。SHA-1 SHA-1 输出输出160160比特的散列值,已经得到广泛的应用比特的散列值,已经得到广泛的应用。n 随着随着MD5MD5散列算法的破解,散列算法的破解,SHA-1SHA-1的安全性也受到了质疑。的安全性也受到了质疑。NISTNIST建议之后的商业软件产品由建议之后的商业软件产品由SHA-1SHA-1转移到转移到SHA-2SHA-2散列算法上。散列算法上。SHA-2 SHA-2 是一类可变长度的散列算法,其包含是一类可变长度的散列算法,其包含SHA-256, SHA-384SHA-256, SHA-384和和SHA-512, SHA-512, 分别输出分别输出2