1、密码学概述密码学概述本章主要内容本章主要内容l1 1、密码学的基本概念、密码学的基本概念l2 2、密码体制、密码体制l3 3、密码分析、密码分析l4 4、密码体制的安全性、密码体制的安全性密码学的发展历程密码学的发展历程著名的密码学者Ron RivestRon Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”l四个发展阶段l古典密码(古代1949年)l早期对称密码学(1949年1976年)l现代密码学(1976年1984年)l可证明安全(1984年现在)n密码编码学(密码编码学(CryptographyCryptography)研究密码编制的科学 n密码分析学(密码分析学(Cry
2、ptanalysisCryptanalysis)研究密码破译的科学 n密码学(密码学(cryptology cryptology)是一门研究密码保护通信手段的科学,由密码编码学和密码分析学组成1.11.1密码学基本概念密码学基本概念l明文明文:伪装前的原始数据l密文密文:伪装后的数据l密钥密钥:参与密码变换的参数l加密加密:伪装的过程l加密算法加密算法:用于对数据加密的一组数学变换 l解密解密:将密文恢复为明文l解密算法:解密算法:用于解密的一组数学变换 1.11.1密码学基本概念密码学基本概念图图1.1 1.1 加密和解密加密和解密 通常明文用P表示,密文用C表示。加密函数E作用于P得到密文
3、C,可以表示为:E(P)C。相反地,解密函数D作用于C产生P:D(C)P。先加密后再解密消息,原始的明文将恢复出来,故有:D(E(P)P。加密时可以使用一个参数K,称此参数K为加密密钥加密密钥。K可以是很多数值里的任意值。密钥K的可能值的范围叫做密钥空间密钥空间。加密和解密运算都使用这个密钥,即运算都依赖于密钥,并用K作为下标表示,加解密函数表达为:EK(P)=CDK(C)=P 这些函数具有下面的特性:DK(EK(P)=P 如图1.2:图1.2 使用一个密钥的加/解密 有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下,加密和解密的函数表达式为:E
4、K1(P)=CDK2(C)=M 函数必须具有的特性是,DK2(EK1(P)=P,如图1.3所示图1.3使用两个密钥的加/解密 1.2 1.2 密码体制密码体制l一个密码系统,通常简称为密码体制(Cryptosystem),由五部分组成(如图1.4所示):(1)明文空间M,它是全体明文的集合;(2)密文空间C,它是全体密文的集合;(3)密钥空间K,它是全体密钥的集合。其中每 一个密钥K均由加密密钥Ke和解密密钥Kd组成,即K Ke,Kd;(4)加密算法E,它是一组由M到C的加密变换;(5)解密算法D,它是一组由C到M的解密变换。图1.4 密码体制KdKe安全信道MCCM攻击者明文加密算法信道解密
5、算法明文加密密钥解密密钥密钥Kl 如果一个密码体制的KdKe,或由其中一个很容易推出另一个,则称为单密钥密码体制单密钥密码体制或对称密码体制或传统密码体制l如果在计算上Kd不能由Ke推出,这样将Ke公开也不会损害Kd的安全,于是便可将Ke公开,这种密码体制称为公开密钥密码体制。公开密钥密码体制。l根据对明文和密文的处理方式和密钥的使用不同,可将密码体制分为分组密码体制分组密码体制和序列密序列密码体制码体制密码体制的分类密码体制的分类1.3 1.3 密码分析密码分析l主动攻击与被动攻击主动攻击与被动攻击:对一个保密系统采取截获密文进行分析的这类攻击方法称为被动攻击被动攻击(passive att
6、ack)。非法入侵者主动干扰系统,采用删除、更改、增添、重放等方法向系统加入假消息,则这种攻击为主动攻击主动攻击(active attack)。l密码分析密码分析:密码分析(cryptanalysis)是被动攻击。在信息的传输和处理过程中,除了意定的接收者外,还有非授权接收者,他们通过各种办法(如搭线窃听、电磁窃听、声音窃听等)来窃取信息。他们虽然不知道系统所用的密钥,但通过分析,可能从截获的密文中推断出原来的明文,这一过程称为密码分析密码分析。1.3.1 1.3.1 攻击密码系统的方法 密码分析者攻击密码系统的方法主要有以下三种:(1)穷举攻击 所谓穷举攻击是指密码分析者采用依次试遍所有可能
7、的密钥对所获密文进行解密,直至得到正确的明文.(2)统计分析攻击 所谓统计分析攻击就是指密码分析者通过分析密文和明文的统计规律来破译密码。(3)数学分析攻击 所谓数学分析攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。1.3.2 1.3.2 破译密码的类型破译密码的类型l根据密码分析者可利用的数据资源来分类,可将破译密码的类型分为以下四种:(1)唯密文攻击唯密文攻击(Ciphertext-only attack)已知:C1EK(P1),C2EK(P2),CiEK(Pi)推导出:P1,P2,Pi,K或者找出一个算法从Ci1 EK(Pi1)推出Pi1(2)
8、已知明文攻击已知明文攻击(Know-plaintext attack)已知:P1,C1EK(P1),P2,C2EK(P2),Pi,CiEK(Pi),推导出:密钥k,或从Ci1 EK(Pi1)推出Pi1(3)选择明文攻击选择明文攻击(Chosen-plaintext attack)已知:P1,C1EK(P1),P2,C2EK(P2),Pi,CiEK(Pi),其中P1,P2,Pi是由密码分析者选择的。推导出:密钥k,或从Ci1 EK(Pi1)推出Pi1 其他:(4)自适应选择明文攻击自适应选择明文攻击(Adaptive-chosen-plaintext attack)(5)选择密文攻击选择密文攻击
9、(Chosen-ciphertext attack)(6)选择密钥攻击选择密钥攻击(Chosen-key attack)(7)软磨硬泡攻击软磨硬泡攻击 1.4 1.4 密码体制的安全性密码体制的安全性 一个安全的密码体制应该具有如下几条性质:l(1)从密文恢复明文应该是难的,即使分析者知道明文空间(如明文是英语)。l(2)从密文计算出明文部分信息应该是难的。l(3)从密文探测出简单却有用的事实应该是难的,从攻击效果看,敌手可能达到以下结果:l(1)完全攻破。敌手找到了相应的密钥,从而可以恢复任意的密文。l(2)部分攻破。敌手没有找到相应的密钥,但对于给定的密文,敌手能够获得明文的特定信息。l(
10、3)密文识别。如对于两个给定的不同明文及其中一个明文的密文,敌手能够识别出该密文对应于哪个明文,或者能够识别出给定明文的密文和随机字符串。评价密码体制安全性有不同的途径,包括:l无条件安全性无条件安全性 如果密码分析者具有无限的计算能力,密码体制也不能被攻破,那么这个密码体制就是无条件安全的。l计算安全性计算安全性 如果攻破一个密码体制的最好的算法用现在或将来可得到的资源都不能在足够长的时间内破译,这个密码体制被认为在计算上是安全的。232l可证明安全性可证明安全性 可证明安全性只是说明密码体制的安全与一个问题是相关的,并没有证明密码体制是安全的,可证明安全性也有时候被称为归约安全性。习题习题l1.1 你是如何理解密码学,密码编码学和密码分析学的?l1.2 什么是主动攻击,什么是被动攻击?l1.3 攻击密码系统的方法有哪些?l1.4 根据密码分析的数据来源,可将破译密码的类型分为哪几种?l1.5 一个密码体制有哪五部分组成?l1.6 什么是计算安全?可证明安全?