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