资源预览内容
第1页 / 共88页
第2页 / 共88页
第3页 / 共88页
第4页 / 共88页
第5页 / 共88页
第6页 / 共88页
第7页 / 共88页
第8页 / 共88页
第9页 / 共88页
第10页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章 加密编码,学习得来终觉浅,绝知此事要自悟,Logo,绪论,Contents,1,密码学概述,2,加密编码中的信息论分析,3,古典密码及近代密码,4,现代密码学,5,Logo,密码学其他分支简介,Contents,6,网络通信加密方式,7,密码学理论及应用展望,8,思考题与习题,9,Logo,绪论,信息的传输过程中容易被对手截获,为了对信息进行保密,就需要采用加密编码。加密编码在不断发展、扩展的过程中形成了一门新的学问密码学,它涉及到两部分内容:密码编码和密码分析(破译)。 密码学是一个扩展的概念 对密码学存在的误解,Logo,初次接触密码学的人可能会存在的误解:,以为学了密码学就可以破解qq、邮箱密码之类的,其实这类的密码和密码学的一些情况下是两码事,一些密码都没有采用密码技术,而且破解密码的手法也比较简单 学习了密码学即可用于破解银行的密码,而实际上破解银行的密码一般利用的不是高深的密码学知识,相反,它可能用各种木马,窃取密码。,Logo,6,1.完整性(Integrity),2.可用性(Availability),3.真实性(Authenticity),除了通过加密实现机密性(Confidentiality)以外,经过逐步的发展,还可以实现以下安全需求:,4.责任追究性(Accountability),5.公平性,现代的密码学,7.1 密码学概述,7.1.1 基本专业术语 7.1.2 加密编码算法分类 7.1.3 密码分析及其分类 7.1.4 密码系统的安全性及其分类 7.1.5 加密编码的发展历程,明文(Plaintext):待伪装或加密的消息(Message)。 密文(Ciphertext):对明文施加某种伪装或变换后的输出,也可认为是不可直接理解的字符或比特集,密文常用c表示。 解密(decryption)算法则是其相反的过程:由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密(encrypt或encipher)与解密(decrypt或decipher)的技术。 密码算法(Cryptography Algorithm),也简称密码(Cipher),通常是指加、解密过程所使用的信息变换规则,是用于信息加密和解密的数学函数。 密钥(Secret Key或者Key):密码算法中的一个可变参数,通常是一组满足一定条件的随机序列。 密码系统(Cryptosystem):是加解密参与的各个要素构成的系统。,7.1.1 基本专业术语,8,密码学的作用:,鉴别:消息的接收者应该能够确认消息的来源(人、设备等);入侵者不可能伪装成他人发送伪冒信息。 完整性:消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假冒、篡改的消息代替发送者合法消息。 抗抵赖:发送者事后不可能虚假地否认他发送的消息。,10,类似于通信系统的模型,香农也建立了保密系统的模型,如下图7-1所示:,7.1.2 加密编码算法分类,图7-1 保密系统模型,11,EK(M)=C DK(C)=M (7-1) (7-2) 这些函数具有下面的特性(见图7-2): DK(EK(M)=M.,加密和解密运算都使用密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加/解密函数现在变成:,图7-2 使用一个密钥的加/解密,12,有些算法使用不同的加密密钥和解密密钥(见图7-3),也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下: EK1(M)=C DK2(C)=M (7-3) (7-4) DK2 (EK1(M)=M,图7-3 使用两个密钥的加/解密,对称加密算法(对称密码算法)有时又叫传统密码(加密)算法、单钥密码(加密)算法、秘密密钥密码(加密)算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。,基于密钥的算法通常有两类:对称加密算法和公开密钥加密算法。,13,对称算法的加密和解密表示为: EK(M)=C DK(C)=M,14,公开密钥算法(也叫非对称算法、双钥算法)是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。 用公开密钥K加密表示为 EK(M)=C. 虽然公开密钥和私人密钥是不同的,但用相应的私人密钥解密可表示为: DK(C)=M 有时消息用私人密钥加密而用公开密钥解密,这用于数字签名,尽管可能产生混淆,但这些运算可分别表示为: EK(M)=C DK(C)=M,公开密钥算法,密码编码学的主要目的是保持明文(或密钥,或明文和密钥)的秘密以防止偷听者(也叫对手、攻击者、截取者、入侵者、敌手或干脆称为敌人)知晓。这里假设偷听者完全能够接获收发者之间的通信。 密码分析学是在不知道密钥的情况下。恢复出明文的科学。成功的密码分析能恢复出消息的明文或密钥。密码分析也可以发现密码体制的弱点,最终得到上述结果(密钥通过非密码分析方式的丢失叫做泄露。),7.1.3 密码分析及其分类,15,(1) 唯密文攻击(又称唯密文分析)。密码分析者有一些消息的密文,这些消息都用同一加密算法加密。 已知:C1=EK(P1),C2=EK(P2),Ci =EK(Pi) 推导出:P1,P2,Pi;K或者找出一个算法从Ci+1= EK(Pi+1)推出Pi+1。,常用的密码分析(攻击)有四类,当然,每一类都假设密码分析者知道所用的加密算法的全部知识:,16,(2) 已知明文攻击。密码分析者不仅可得到一些消息的密文,而且也知道这些消息的明文。 已知:P1,C1=Ek(P1),P2,C2=Ek(P2),Pi,Ci=Ek(Pi), 推导出:密钥k,或从Ci+1= Ek(Pi+1)推出Pi+1的算法。,(3)选择明文攻击。分析者不仅可得到一些消息的密文和相应的明文,而且他们也可选择被加密的明文。 已知:P1,C1=Ek(P1),P2,C2=Ek(P2),Pi,Ci=Ek(Pi) 其中P1,P2,Pi是由密码分析者选择的。,17,(4)自适应选择明文攻击。这是选择明文攻击的特殊情况。密码分析者不仅能选择被加密的明文,而且也能基于以前加密的结果修正这个选择。,(5)选择密文攻击。密码分析者能选择不同的被加密的密文,并可得到对应的解密的明文,例如密码分析者存取一个防窜改的自动解密盒,密码分析者的任务是推出密钥。 已知:C1,P1=Dk(C1),C2,P2=Dk(C2),Ci,Pi=Dk(Ci), 推导出:k。,(6)选择密钥攻击。这种攻击并不表示密码分析者能够选择密钥,它只表示密码分析者具有不同密钥之间的关系的有关知识。这种方法有点奇特和晦涩,不是很实际。,18,(7)软磨硬泡(Rubber-hose)攻击。密码分析者威胁、勒索,或者折磨某人,直到他给出密钥为止。行贿有时称为购买密钥攻击。这些是非常有效的攻击,并且经常是破译算法的最好途径。,全部破译。密码分析者找出密钥K,这样DK(C)=P。 全盘推导。密码分析者找到一个代替算法A,在不知道密钥K的情况下,等价于DK(C)=P。 实例(或局部)推导。密码分析者从截获的密文中找出明文。 信息推导。密码分析者获得一些有关密钥或明文的信息。这些信息可能是密钥的几个比特、有关明文格式的信息等等。,Lars Knudsen把破译算法分为不同的类别,安全性的递减顺序为:,19,一个密码系统的安全性(security, safety)主要与两个方面的因素有关: (1)一个是所使用密码算法本身的保密强度。 (2)另外一个方面就是密码算法之外的不安全因素。 因此,密码算法的保密强度并不等价于密码系统整体的安全性。,7.1.4 密码系统的安全性及其分类,20,(1)无条件安全性(unconditional security) (2)计算安全性(computational security) (3)可证明安全性(provable security),评估密码系统安全性主要有三种方法:,21,(1)破译该密码系统的实际计算量(包括计算时间或费用)十分巨大,以至于在实际上是无法实现的。 (2)破译该密码系统所需要的计算时间超过被加密信息有用的生命周期。例如,战争中发起战斗攻击的作战命令只需要在战斗打响前需要保密;重要新闻消息在公开报道前需要保密的时间往往也只有几个小时。 (3)破译该密码系统的费用超过被加密信息本身的价值。如果一个密码系统能够满足以上准则之一,就可以认为是满足实际安全性的。,密码系统要达到计算安全性(实际安全性),就要满足以下准则:,22,数据复杂性(Data Complexity)。用作攻击输入所需的数据量。 处理复杂性(Processing Complexity)。完成攻击所需要的时间,这个经常叫做工作因素。 存储需求(Storage Requirement)。进行攻击所需要的存储量。 作为一个法则,攻击的复杂性取这三个因数的最小化,有些攻击包括这三种复杂性的折中:存储需求越大,攻击可能越快。,23,不同方式衡量攻击方法的复杂性:,第一阶段:1949年之前,密码学还不是科学而是艺术,密码算法的设计者都是凭借自己的直观设计密码算法。 第二阶段:19491975年,密码学成为科学,以1949年Shannon的“The Communication Theory of Secret Systems”为标志。 第三阶段:1976年以后,出现了密码学的新方向,24,7.1.5 加密编码的发展历程,香农对信息的定义是:信息是消除不确定性的东西,对于加密而言,在让接受者获取信息的同时,希望对手能够获取的信息尽量少,这意味着一个密码系统,对于对手的不确定性应该越大越好,可见密码系统的安全性问题可以转化为信息论中熵、条件熵、平均互信息量的问题。一个一般的密码系统,其加密解密可以表示为: EK(M)=C DK(C)=M 对于对手,一般已知密文C,欲增强密码系统的不确定性,则可以增加K的不确定性,或者说从互信息量的角度,通过C获取的关于M(或者K)的互信息量要小;从另外一个角度,C作为条件时,K和M的不确定性大。,25,7.2 加密编码中的信息论分析,在密码学中有两种疑义度: 1)对于给定密文C,密钥K的疑义度可表示为 H(K|C)=p(ki,cj)log2p(ki|cj) (7-5) 2)对于给定密文C,明文M的疑义度可表示为 H(M|C)=p(mi,cj)log2p(mi|cj),26,7.2.1 加密编码中的熵概念,疑义度,破译者的任务是从截获的密文中提取有关明文的信息或从密文中提取有关密钥的信息 I(M;C)H(M)H(M/C) I(K;C)H(K)H(K/C) H(M/C)和H(K/C)越大,破译者从密文能够提取出有关明文和密钥的信息就越小。 对于合法的接收者,在已知密钥和密文条件下提取明文信息:H(M/C,K)0 I(M;CK)H(M)H(M/C,K)H(M),27,28,因为 H(K/C)H(M/K,C) H(M/C)H(K/M,C)(M和K交换) H(M/C) (熵值H(K/M,C)总是大于等于零) H(M/C,K)0,上式得 H(K/C) H(M/C) 即已知密文后,密钥的疑义度总是大于等于明文的疑义度。我们可以这样来理解,由于可能存在多种密钥把一个明文消息M加密成相同的密文消息C,即满足 的K值不止一个。但用同一个密钥对不同明文加密而得到相同的密文则较困难,无法解密。,疑义度,29,又因为 H(K) H(K/C) H(M/C), 则 上式说明,保密系统的密钥量越少,密钥熵H(K)就越小,其密文中含有的关于明文的信息量I(M;C)就越大。至于破译者能否有效地提取出来,则是另外的问题了。作为系统设计者,自然要选择有足够多的密钥
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号