第6章密码及加密技术清华大学出版社高等院校计算机与信息类规划教材目录6.2密码破译与密钥管理技术26.3实用加密技术概述36.4PGP软件应用实验46.1密码技术概述16.5本章小结5目录本章要点●密码技术相关概念●密码破译与密钥管理技术●加密技术的应用●PGP软件应用实验教学目标●掌握密码技术相关概念●了解密码破译与密钥管理技术●掌握加密技术的应用●了解PGP软件应用实验重点6.1密码技术概述6.1.1密码技术相关概念图6-1密码技术原理明文:信息的原始形式称为明文(Plaintext,记为P)。密文:明文经过变换加密后的形式称为密文(Ciphertext,记为C)。加密:由明文变成密文的过程称为加密(Enciphering,记为E),加密通常由加密算法来实现的。解密:由密文还原成明文的过程称为解密(Deciphering,记为D),解密通常是由解密算法来实现的。加密算法:实现加密所遵循的规则。解密算法:实现解密所遵循的规则。密钥:为了有效地控制加密和解密算法的实现,在其处理过程中要有通信双方掌握的专门信息参与加密和解密操作,这种专门信息称为密钥(key,记为K)。6.1密码技术概述6.1密码技术概述案例6-1密码技术应用密码技术应用于增值税发票中,可以防伪、防篡改,杜绝了各种利用增值税发票偷、漏、逃、骗国家税收的行为,并大大方便了税务稽查。6.1.2密码学与密码体制1.密码学概述密码学是研究编制密码和破译密码技术的科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的称为密码编码学,从事此行的称为密码编码者;应用于破译密码以获取通信情报的称为密码破译学,从事此行的称为密码破译者。精于此道的人被称为密码学家,现代的密码学家通常是理论数学家。密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。6.1密码技术概述6.1密码技术概述密码学发展历程(1)第一阶段(古典密码),从古代到1949年,可以看作是密码学科学的前夜时期。这时期的密码技术可以说是一种艺术,而不是一种科学,其数据的安全基于算法的保密,密码学专家是凭知觉和信念来进行密码设计和分析,而不是推理和证明。案例6-2Phaistos圆盘Phaistos圆盘是一种直径约为160mm的CretanMnoan粘土圆盘,始于公元前17世纪。表面有明显字间空格的字母,至今还没有破译。6.1密码技术概述1883年Kerchoffs第一次明确提出了编码的原则:加密算法应建立在算法的公开不影响明文和密钥安全的原则上。这一原则已得到普遍承认,成为判定密码强度的衡量标准,实际上也成为传统密码和现代密码的分界线。(2)第二阶段,从1949年到1975年。1949年,Shannon发表的“保密系统的信息理论”一文为对称密码系统建立了理论基础,从此密码学成为一门科学。人们将此阶段使用的加密方法称为传统加密方法,其安全性依赖于密钥的保密,而不是算法的保密。这段时期密码学理论的研究工作进展不大,公开的密码学文献很少。(3)第三阶段,从1976年至今。1976年diffie和hellman发表的文章“密码学的新动向”,首先证明了在发送端和接受端无密钥传输的保密通讯是可能的,从而开创了公钥密码学的新纪元。这个时期密码学技术得到蓬勃发展,密码学技术趋于标准化。2.密码体制密码体制是完成加密和解密的算法。通常,数据的加、解密过程是通过密码体制和密钥控制的。密码体制必须易于使用,特别是应可在微型计算机使用。密码体制的安全性依赖于密钥的安全性,现代密码学不追求加密算法的保密性,而是追求加密算法的完备,即:使攻击者在不知道密钥的情况下,无法从算法找到突破口。1)密码体制的分类按应用技术方式和历史发展阶段划分:(1)手工密码。以手工完成加密作业,或者以简单器具辅助操作的密码。第一次世界大战前主要是这种作业形式。(2)机械密码。以机械密码机或电动密码机来完成加解密作业的密码。这种密码从第一次世界大战出现到第二次世界大战中得到普遍应用。(3)计算机密码。是以计算机软件编程进行算法加密为特点,适用于计算机数据保护和网络通讯等广泛用途的密码。6.1密码技术概述6.1密码技术概述按照实现方式,现有的加密体制分为:(1)对称加密体制,又称为私钥密码体制、单钥密码体制。特点是加解密双方在加解密过程中使用相同或可以推出本质上等同的密钥。(2)非对称密码体制,非对称密码体制也称公开密钥密码体制、双钥密码体制等。特点是将加密和解密分开,密钥成对出现,一个为加密密钥(公开密钥PK),另一个只有解密人知道的解密密钥(保密密钥SK)。两个密钥相关却不相同,不可能从公共密钥推算出对应的私人密钥,用公共密钥加密的信息只能使用专用的解密密钥进行解密。实现多用户加密的信息只能由一个用户解读,或一个用户加密的信息可由多用户解读。现在大多数公钥密码属于分组密码,只有概率加密体制属于流密码。(3)单向散列函数,也称为哈希算法、杂凑函数、HASH算法或消息摘要算法。它通过一个单向数学函数,将任意长度的一块数据转换为一个定长的、不可逆转的数据。评价密码体制安全性包括无条件安全性、计算安全性、可证明安全性。(1)无条件安全性。如果一个密码体制满足条件:无论有多少可使用的密文,都不足以惟一地确定密文所对应的明文,则称该密码体制是无条件安全的。(2)计算安全性。密码学更关心在计算上不可破译的密码系统。如果一个密码体制的最好的算法满足以下标准:破译密码的代价超出密文信息的价值;破译密码的时间超出密文信息的有效生命期,那么,这个密码体制被认为在计算上是安全的。(3)可证明安全性。另一种安全性度量是把密码体制的安全性归约为某个经过深入研究的数学难题。6.1密码技术概述6.1.3数据及网络加密方式数据加密存储加密通信加密单级信息保密分组(多级)信息保密节点加密链路加密端对端加密图6-3数据加密方式的划分6.1密码技术概述1.存储加密(1)单级数据信息保密。单级数据信息保密是指对需要进行保密的数据信息一视同仁,不对这些数据信息进行保密级别分类的保密方式。(2)多级数据信息保密。多级数据信息保密是指对需要进行保密的数据信息按数据信息的重要程度,分成若干个保密等级的保密方式。数据保密中,对用户或用户组的访问控制被称为特权。许多实际的局域网系统都采用两级特权实现加密。单级数据信息加密的实现比较简单,而多级数据信息的加密较为复杂。6.1密码技术概述2.通信加密1)链路加密节点(发方)加密解密节点(发方)加密解密节点(交换中心)数据(明文)密文密文明文数据(明文)图6-4链路加密方式6.1密码技术概述2)节点加密6.1密码技术概述3)端-端加密密文图6-6端-端加密方式长期密钥存储器密钥A加密密钥X交换网络密钥B解密密钥X密钥A加密作临时密钥用的随机数发生器发送方接收方加密密钥X数据交换网解密密钥X数据数据传输课堂讨论1.什么是密码学?密码体制有哪些?2.数据加密技术主要分为数据传输加密和数据存储加密。对传输中的数据流进行加密方式有哪些?它们的特点是什么?3.数据加密技术在未来网络安全技术中的作用和地位?6.2密码破译与密钥管理技术密码破译是在不知道密钥的情况下,恢复出密文中隐藏的明文信息。密码破译也是对密码体制的攻击。成功的密码破译能恢复出明文或密钥,也能够发现密码体制的弱点。信息通道截获的信息密码分析密码分析者明文或密钥码分析者6.2密码破译与密钥管理技术6.2.1密码破译方法1.密钥的穷尽搜索密文正确报文解密错误报文钥匙1钥匙2钥匙3钥匙n逐一尝试解密……错误报文解密错误报文解密解密图6-8密钥的穷尽搜索示意图6.2密码破译与密钥管理技术2.密码分析3.其他密码破译方法密码分析攻击惟密文攻击已知明文攻击选定明文攻击选择密文攻击图6-9密码分析攻击6.2密码破译与密钥管理技术6.2.2密钥管理技术一个好的密钥管理系统应该做到:(1)密钥难以被窃取;(2)在一定条件下密钥被窃取也没有用,密钥有使用范围和时间限制;(3)密钥的分配和更换过程对用户透明,用户不一定要亲自管理密钥。6.2密码破译与密钥管理技术密钥管理是指对所用密钥生命周期的全过程实施的安全保密管理。包括密钥的产生、存储、分配、使用和销毁等一系列技术问题。主要任务是如何在公用数据网上安全地传递密钥而不被窃取。密钥的分配是指产生并使使用者获得一个密钥的过程;密钥的传递分集中传送和分散传送两类。集中传送是指将密钥整体传送,这时需要使用主密钥来保护会话密钥的传递,并通过安全渠道传递主密钥。分散传送是指将密钥分解成多个部分,用秘密分享的方法传递,只要有部分到达就可以恢复,这种方法适用于在不安全的信道中传输。课堂讨论1.对称密码体制破译的两种主要方法是什么?如何预防?2.什么是密钥管理?为什么要进行密钥管理?3.密钥管理包含的内容是什么?主要的密钥管理技术有哪些?6.3实用加密技术概述6.3.1对称加密技术1.传统加密技术计算机加密技术的发展,经历了从传统密码学到现代密码学的过程,传统密码方法是以密钥为基础的,是一种对称加密,加密和解密使用密钥相同,或由一个密钥可以推知另一个密钥,算法比较简单,其保密性主要取决于算法的保密性。典型的传统加密技术:替换密码技术和置换技术。1)替换技术替换技术是用一组密文字母来替代明文字母,以达到隐藏明文的目的。6.3实用加密技术概述凯撒密码是最古老的一种单表替代密码。这种技术将字母按字母表的顺序排列,并将最后一个字母和第一个字母相连起来,构成一个字母序列,明文中的每个字母用该序列中在它后面的第三个字母来代替,构成密文。也就是说密文字母相对明文字母循环右移3为,所以也成“循环移位密码”。明文字母:abcdefghIjklmnopqrstuvwxyz密文字母:DEFGHIJKLMNOPQRSTUVWXYZABC如果让每个字母对应一个数值(a=0,b=1,……,z=25),则该算法可以表示为:其中:P:明文信息元素C:密文信息元素密文字母与明文字母的偏移可以是任意值,形成了所谓的移位密码,其加密算法可以表示为:其中,K是加密算法的密钥,可以在1到25之间取值。解密算法可以表示为:6.3实用加密技术概述2)置换技术置换是在不丢失信息的前提下对明文中的元素进行重新排列,分为矩阵置换和列置换。矩阵置换:这种加密法是把明文中的字母按给定的顺序安排在一矩阵中,然后用另一种顺序选出矩阵的字母来产生密文。1234ENGINEERINGA1234NIEGERNENAIG图6-10置换前、后排列明文ENGINEERING按行排在3×4矩阵中,如最后一行不全可用A,B,C…填充。给定一个置换E=((1234)(2413)),现在根据给定的置换,按第2列,第4列,第1列,第3列的次序排列,得到密文NIEGERNENAIG。解密算法D=((2413)(1234))。参见图6-10。案例6-36.3实用加密技术概述2.现代对称加密技术如果在一个密码体系中,加密密钥和解密密钥相同,就称为对称加密。现代密码技术阶段加密和解密算法是公开的,数据的安全性完全取决于密钥的安全性,因此,对称加密体系中如果密钥丢失,数据将不再安全。代表性的对称加密算法有DES(数学加密标准),IDEA(国际数据加密算法),Rijndael,AES,RC4算法等。6.3实用加密技术概述1)DES算法思想:DES算法将输入的明文分为64位的数据分组,使用64位的密钥进行变换,每个64位明文分组数据经过初始置换、16次迭代和逆初始置换3个主要阶段,最后输出得到64位密文。7明文。。。64位块初始置换左边32位右边32位56位密钥右边28位左边28位循环左移重新合并成56位密钥压缩后得到48位扩展变换成48位s盒压缩成32位经过P置换成32位XORXOR新右边32位新左边32位经过16轮后得到的