密码学概述本章主要内容1、密码学的基本概念2、密码体制3、密码分析4、密码体制的安全性密码编码学(Cryptography)研究密码编制的科学密码分析学(Cryptanalysis)研究密码破译的科学密码学(cryptology)由密码编码学和密码分析学组成1.1密码学基本概念图1.1加密和解密加密E解密D明文P密文C原始明文P通常明文用P表示,密文用C表示。加密函数E作用于P得到密文C,可以表示为:E(P)=C。相反地,解密函数D作用于C产生P:D(C)=P。先加密后再解密消息,原始的明文将恢复出来,故有:D(E(P))=P。加密E解密D明文P密文C原始明文P密钥K密钥K加密时可以使用一个参数K,称此参数K为加密密钥。K可以是很多数值里的任意值。密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥,即运算都依赖于密钥,并用K作为下标表示,加解密函数表达为:EK(P)=CDK(C)=P这些函数具有下面的特性:DK(EK(P))=P如图1.2:图1.2使用一个密钥的加/解密有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下,加密和解密的函数表达式为:EK1(P)=CDK2(C)=M函数必须具有的特性是,DK2(EK1(P))=P,如图1.3所示图1.3使用两个密钥的加/解密加密E解密D明文P密文C原始明文P加密密钥K1解密密钥K21.2密码体制一个密码系统,通常简称为密码体制(Cryptosystem),由五部分组成(如图1.4所示):(1)明文空间M,它是全体明文的集合;(2)密文空间C,它是全体密文的集合;(3)密钥空间K,它是全体密钥的集合。其中每一个密钥K均由加密密钥Ke和解密密钥Kd组成,即K=Ke,Kd;(4)加密算法E,它是一组由M到C的加密变换;(5)解密算法D,它是一组由C到M的解密变换。如果一个密码体制的Kd=Ke,,则称为对称密码体制根据对明文和密文的处理方式和密钥的使用不同,可将密码体制分为分组密码体制和序列密码体制如果在计算上Kd不能由Ke推出,这样将Ke公开也不会损害Kd的安全,于是便可将Ke公开,这种密码体制称为公开密钥密码体制。密码体制的分类1.3密码分析对一个保密系统采取截获密文进行分析的这类攻击方法称为被动攻击(passiveattack)。非法入侵者主动干扰系统,采用删除、更改、增添、重放等方法向系统加入假消息,则这种攻击为主动攻击(activeattack)。密码分析:密码分析(cryptanalysis)是被动攻击。他们虽然不知道系统所用的密钥,但通过分析,可能从截获的密文中推断出原来的明文,这一过程称为密码分析。1.3.1攻击密码系统的方法密码分析者攻击密码系统的方法主要有以下三种:(1)穷举攻击所谓穷举攻击是指密码分析者采用依次试遍所有可能的密钥对所获密文进行解密,直至得到正确的明文.(2)统计分析攻击所谓统计分析攻击就是指密码分析者通过分析密文和明文的统计规律来破译密码。(3)数学分析攻击所谓数学分析攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。1.3.2破译密码的类型根据密码分析者可利用的数据资源来分类,可将破译密码的类型分为以下四种:(1)唯密文攻击(Ciphertext-onlyattack)已知:C1=EK(P1),C2=EK(P2),……,Ci=EK(Pi)推导出:P1,P2,……,Pi,K(2)已知明文攻击(Know-plaintextattack)已知:P1,C1=EK(P1),P2,C2=EK(P2),……,Pi,Ci=EK(Pi),推导出:密钥k(3)选择明文攻击(Chosen-plaintextattack)已知:P1,C1=EK(P1),P2,C2=EK(P2),……,Pi,Ci=EK(Pi),其中P1,P2,……,Pi是由密码分析者选择的。推导出:密钥k其他:(4)自适应选择明文攻击(Adaptive-chosen-plaintextattack)(5)选择密文攻击(Chosen-ciphertextattack)(6)选择密钥攻击(Chosen-keyattack)(7)软磨硬泡攻击1.4密码体制的安全性一个安全的密码体制应该具有如下几条性质:(1)从密文恢复明文应该是难的。(2)从密文计算出明文部分信息应该是难的。(3)从密文探测出简单却有用的事实应该是难的,从攻击效果看,敌手可能达到以下结果:(1)完全攻破。敌手找到了相应的密钥,从而可以恢复任意的密文。(2)部分攻破。敌手没有找到相应的密钥,但对于给定的密文,敌手能够获得明文的特定信息。(3)密文识别。如对于两个给定的不同明文及其中一个明文的密文,敌手能够识别出该密文对应于哪个明文。评价密码体制安全性有不同的途径,包括:无条件安全性如果密码分析者具有无限的计算能力,密码体制也不能被攻破,那么这个密码体制就是无条件安全的。计算安全性如果攻破一个密码体制的最好的算法用现在或将来可得到的资源都不能在足够长的时间内破译,这个密码体制被认为在计算上是安全的。2^80可证明安全性可证明安全性只是说明密码体制的安全与一个问题是相关的,并没有证明密码体制是安全的,可证明安全性也有时候被称为归约安全性。习题1.1你是如何理解密码学,密码编码学和密码分析学的?1.2什么是主动攻击,什么是被动攻击?1.3攻击密码系统的方法有哪些?1.4根据密码分析的数据来源,可将破译密码的类型分为哪几种?1.5一个密码体制有哪五部分组成?1.6什么是计算安全?可证明安全?