第6章密码和加密技术目录123656.16.26.36.46.5密码技术概述密码破译与密钥管理实用密码技术概述PGP软件应用试验本章小结教学目标教学目标●●●●掌握加密技术、密码学相关概念掌握数据及网络加密方式重点了解密码破译方法与密钥管理掌握实用加密技术重点6.1密码技术概述6.1.1密码学发展历程案例6-1根据古罗马历史学家苏维托尼乌斯的记载,恺撒曾用此方法对重要的军事信息进行加密:“如果需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,以此类推。”6.1.1密码学发展历程周三,恺撒下达进攻命令:attack密文:?19号收到密文:yhkxlm明文:?认识相关概念:明文是原始的信息(Plaintext,记为P)密文是明文经过变换加密后信息(Ciphertext,记为C)加密是从明文变成密文的过程(Enciphering,记为E)解密是密文还原成明文的过程(Deciphering,记为D)算法Algorithm:变换方法(位移)密钥Key:专门信息(移几位)dwwdnforest凯撒密码是最古老的一种单表替换密码。这种技术将字母按字母表的顺序排列,并将最后一个字母和第一个字母相连起来,构成一个字母序列,明文中的每个字母用该序列中在它后面的第n个字母来代替,构成密文。也就是说密文字母相对明文字母循环右移n为,所以也成“循环移位密码”。例:明文字母:abcdefghIjklmnopqrstuvwxyz密文字母:DEFGHIJKLMNOPQRSTUVWXYZABC如果让每个字母对应一个数值(a=0,b=1,……,z=25),则该算法可以表示为:其中:P:明文C:密文密文字母与明文字母的偏移可以是任意值,形成了所谓的移位密码,其加密算法可以表示为:其中,K是加密算法的密钥,可以在1到25之间取值。解密算法可以表示为:6.1.1密码学发展历程6.1.1密码学发展历程截获一段密文:igzinskoleuaigt明文:CatchmeifyoucanabcdefghIjklmnopqrstuvwxyz01234567891011…25例:meetyouinthepark对应的明文值124419241481319741501710C=(p+3)mod26对应的密文值1577221171116221071832013对应的密文phhwbrxlqwkhsdun6.1.1密码学发展历程1949年,香农(Shannon)开创性的发表了论文《保密系统的通信原理》,为密码学建立了理论基础,从此密码学成为一门科学。自此以后,越来越多针对密码学的研究开始出现,密码学开始有了理论的数学基础,其地位已经上升为一门专门的学科。1976年,密码学界发生了两件有影响力的事情.一是数据加密算法DES的发布,二是Diffie和Hellman公开提出了公钥密码学的概念。DES算法的发布是对称密码学的一个里程碑,而公钥密码学概念的出现也使密码学开辟了一个新的方向。自此以后,密码学已经从军事领域走出来,成为一个公开的学术研究方向。无论是对称密码学还是公钥密码学,其都是为了解决数据的保密性,完整性和认证性这三个主要的问题。二战时期,德国军队使用ENIGMA---谜的密码系统,图灵参予破译6.1.1密码学发展历程现在的学术界一般认为,密码学研究的目的乃是要保证数据的保密性、完整性和认证性。数据的保密性是指未经授权的用户不可获得原始数据的内容。数据的完整性是验证数据在传输中未经篡改。数据的认证性是指能够验证当前数据发送方的真实身份。密码学正是研究信息保密性、完整性和认证性的科学,是数学和计算机的交叉学科,也是一门新兴并极有发展前景的学科。6.1.2密码学相关概念密码学包含两个互相对立的分支研究编制密码的技术称为密码编码学(Cryptography),主要研究对数据进行变换的原理、手段和方法,用于密码体制设计。研究破译密码的技术称为密码分析学(Cryptanalysis),主要研究内容如何破译密码算法。密码编制学和密码分析学共同组成密码学。6.1.2密码学相关概念加密协议定义了如何使用加密、解密算法来解决特定的任务。发送消息的对象称作发送方(Sender)。传送消息的预定接收对象称作接收方(Receiver)。非授权进入计算机及其网络系统者称为入侵者。6.1.2密码学相关概念在消息传输和处理系统中,除了意定的接收者外,非授权者通过某种办法(如搭线窃听、电磁窃听、声音窃听等)来窃取机密信息,称为窃听者(Eavesdropper)。入侵者(Intruder)主动向系统窜扰,采用删除、更改、增添、重放、伪造等手段向系统注入假消息,以达到损人利己的目的,这类攻击称作主动攻击(ActiveAttack)。对一个密码体制采取截获密文进行分析,称作被动攻击(PassiveAttack)。6.1.2密码学相关概念密码体制任何一个密码体制至少包括五个组成部分:明文、密文、加密、解密算法及密钥。6.1.2密码学相关概念一个密码体制的基本工作过程是:发送方用加密密钥,通过加密算法,将明文信息加密成密文后发送出去;接收方在收到密文后,用解密密钥,通过解密算法将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。6.1.2密码学相关概念密码体制的分类1、对称密码体制加密、解密都需要密钥。如果加、解密密钥相同,这样的系统称为对称密钥密码体制(SymmetricKeySystem),也称单钥密码体制。系统特点是加、解密的密钥是相同的、保密的。2、非对称密码体制如果加、解密密钥不同,则这种系统是非对称密钥密码体制(Non-SymmetricKeySystem),又称双钥密码体制、公开密钥密码体制。3、混合密码体制6.1.2密码学相关概念对称密码体制基本原理框图加密方式:1、序列密码2、分组密码体制特点:速度快、强度高、算法简单高效6.1.2密码学相关概念非对称密码体制、公开密钥密码体制(PKI)基本原理框图6.1.2密码学相关概念对称与非对称密码体制特性对比表6.1.2密码学相关概念混合密码体制基本原理6.1.2密码学相关概念Kerckhoff原理(柯克霍夫,19世纪提出的密码理论)系统密文不可破译;系统的保密性不依赖于对加密算法的保密,而是依赖于密钥;加密和解密算法适用于密钥空间中的所有密钥;系统应该有良好的可用性,便于实现和使用。6.1.2密码学相关概念按照密码体制所处的时代,密码体制又可以划分为:古典密码体制。在计算机出现之前所涉及的密码体制一般称为古典密码体制。这类密码一般直接对明文采用置换和代换操作,运算较为简单,安全性差。现代密码体制。自计算机出现后产生的密码体制,使用计算机加密运算较为复杂,破译难度大。6.1.2密码学相关概念安全的密码体制应具有的性质从密文恢复明文应该是难的,即使分析者知道明文空间,如明文是英语。从密文计算出明文部分信息应该是难的。从密文探测出简单却有用的事实应该是难的,如相同的信息被发送了两次。6.1.2密码学相关概念密码体制安全性评价无条件安全性如果一个密码体制满足条件:无论有多少可使用的密文,都不足以惟一地确定密文所对应的明文,则称该密码体制是无条件安全的。计算安全性人们更关心在计算复杂性上不可破译的密码体制。如果一个密码体制满足以下标准:破译密码的代价超出密文信息的价值;破译密码复杂度超出了攻击者现有的计算能力;破译密码的时间超过了密文信息的有效生命期;6.1.3数据及网络加密方式数据传输加密链路加密节点对节点加密端对端加密三种加密方式比较:链路加密的目的是保护链路两端网络设备间的通信安全;节点加密的目的是对源节点到目的节点之间的信息传输提供保护;端到端加密的目的是对源端用户到目的端用户的应用系统通信提供保护。链路加密和端对端加密方式的区别是:链路加密方式是对整个链路的传输采取保护措施,而端对端方式则是对整个网络系统采取保护措施。端对端加密方式是未来发展主要方向。对于重要的特殊机密信息,可以采用将二者结合的加密方式。6.1.3数据及网络加密方式数据存储加密。利用系统本身的加密功能加密密码加密法通过密钥加密数据存储加密方法比较:利用系统本身的加密功能加密特点是加密方式对系统的依赖性强,离开系统会出现无法读取现象;密码加密法是读取时加密,没有对文件加密;通过密匙加密;是对文件整体加密。6.2密码破译与密钥管理6.2.1密码破译方法1、穷举搜索密钥攻击6.2密码破译与密钥管理2、密码分析6.2密码破译与密钥管理惟密文攻击(Ciphertext-onlyattack)在这种方法中,密码分析员已知加密算法,掌握了一段或几段要解密的密文,通过对这些截获的密文进行分析得出明文或密钥。惟密文破解是最容易防范的,因为攻击者拥有的信息量最少。但是在很多情况下,分析者可以得到更多的信息。如捕获到一段或更多的明文信息及相应的密文,也可能知道某段明文信息的格式。6.2密码破译与密钥管理已知明文攻击(Known-plaintextattack)在这种方法中,密码分析员已知加密算法,掌握了一段明文和对应的密文。目的是发现加密的钥匙。在实际使用中,获得与某些密文所对应的明文是可能的。6.2密码破译与密钥管理惟选定明文攻击(Chosen-plaintextattack)在这种方法中,密码分析员已知加密算法,设法让对手加密一段分析员选定的明文,并获得加密后的密文。目的是确定加密的钥匙。差别比较分析法也是选定明文破译法的一种,密码分析员设法让对手加密一组相似却差别细微的明文,然后比较他们加密后的结果,从而获得加密的钥匙。选择密文攻击(Chosen-ciphertextattack)选择密文攻击指的是一种攻击模型。在此种攻击模型中,密码分析者事先任意搜集一定数量的密文,让这些密文透过被攻击的加密算法解密,透过未知的密钥获得解密后的明文。它在密码分析技术中很少用到。6.2密码破译与密钥管理3、防止密码破译的措施1)增强密码算法安全性。通过增加密码算法的破译复杂程度,进行密码保护。例如增加密码系统的密钥长度,一般在其他条件相同的情况下,密钥越长破译越困难,而且加密系统也就越可靠。2)使用动态会话密钥。每次会话所使用的密钥不相同。3)定期更换会话密钥。6.2密码破译与密钥管理6.2.2密钥管理密钥管理是指对所用密钥生命周期的全过程实施的安全保密管理。包括密钥的产生、存储、分配、使用和销毁等一系列技术问题。主要任务是如何在公用数据网上安全地传递密钥而不被窃取。目前主要有两种网络密钥管理方法:KDC(KeyDistributionCenter)和Diffie-Hellman。6.2密码破译与密钥管理密钥管理KDC使用可信第三方来验证通信双方的真实性,产生会话密钥,并通过数字签名等手段分配密钥。Diffie-Hellman则不需KDC,通信发起方产生通信会话的私用密钥,并通过数字签名或零知识证明等方式安全传递通信密钥。网络密钥主要有会话密钥(SessionKey)、基本密钥(BasicKey)和主密钥(MasterKey)三种。6.2密码破译与密钥管理密钥分配密钥分配协定是这样的一种机制:系统中的一个成员先选择一个秘密密钥,然后将它传送另一个成员或别的成员。密钥协定是一种协议,是通过两个或多个成员在一个公开的信道上通信联络建立一个秘密密钥。理想的密钥分配协议应满足以下两个条件:传输量和存储量都比较小;每一对用户U和V都能独立地计算一个秘密密钥K。6.2密码破译与密钥管理密钥交换Diffic-Hellmen算法仅当需要时才生成密钥,减少了因密钥存储期长而使遭受攻击的机会;除对全局参数的约定外,密钥交换不需要事先存在的基础结构。Oakley算法是对Diffie-Hellman密钥交换算法的优化,保留了后者的优点,同时克服了其弱点。Oakley算法具有五个重要特征:采用cookie程序的机制来对抗阻塞攻击;使双方能够协商一个全局参数集合;使用了限时来抵抗重演攻击;能够交换