1、20072008 学年密码学讲义第第 1 章章 密码学概述密码学概述1.1 信息安全信息安全 Alvin Toffler 在第三次浪潮中预言:计算机网络的建立和普及将彻底改变人类生存和生活模式。 信息化以它有别于传统方式的信息获取、存储、处理、传输和使用,给现代社会的正常发展带来了一系列的前所未有的风险和威胁。 传统的一切准则在电子信息环境中如何体现与维护,到现在并没有根本解决,一切都在完善中。 今天,人们一方面享受着信息技术带来的巨大变革,同时也承受着信息被篡改、泄露、伪造的威胁,以及计算机病毒及黑客入侵等安全问题。信息安全的风险制约着信息的有效使用,并对经济、国防乃至国家的安全构成威胁。
2、一方面:没有信息安全,就没有完全意义上的国家安全。另一方面:信息安全还涉及个人权益、企业生存和金融风险防范等。 密码技术和管理是信息安全技术的核心,是实现保密性、完整性、不可否认性的关键。 “9.11 事件”后,各国政府纷纷站在国家安全的角度把信息安全列入国家战略。重视对网络信息和内容传播的监控,更加严格的加固网络安全防线,把信息安全威胁降到最低限度。 2000 年我国开始着力建立自主的公钥基础设施,并陆续启动了信息系统安全等级保护和网络身份认证管理服务体系。 因此,密码学的基本概念和技术已经成为信息科学工作者知识结构中不可或缺的组成部分。20072008 学年密码学讲义1.2 密码学引论密码
3、学引论1. 密码学的发展概况密码学的发展概况 密码学是一门既古老又年轻的学科。 自有了战争,就有了加密通信。交战双方都为了保护自己的通信安全,窃取对方的情报而研究各种信息加密技术和密码分析技术。 古代行帮暗语和一些文字游戏等,实际上就是对信息的加密。这种加密方法通过原始的约定,把需要表达的信息限定在一定的范围内流通。古典密码主要应用于政治、军事及外交等领域。 电报发明以后,商业方面对密码学的兴趣主要集中在密码本的编制上。 20 世纪初,集中在与机械和电动机械 加密的设计和制造上。 进入信息时代,大量敏感信息要通过公共通信设施或计算机网络进行交换,密码学的应用已经不仅仅局限在政治、军事、外交等领
4、域,其商业和社会价值日益显著,并与人们的日常生活紧密相关。 密码学被当作应用数学和计算机科学的一个分支,其理论和技术已经得到迅速发展。2. 密码学发展的里程碑密码学发展的里程碑 : 1949 年,C EShannon 发表了“保密系统的通信理论(Communication Theory of Secrecy Systems) ”一文,为密码学奠定了坚实的理论基础,是密码学成为一门真正的科学。 1975 年,WDiffie 和 MEHellman 发表了“密码学中的新方向(New Directions in Cryptography) ”一文,提出了一种崭新的密码设计思想,导致了密码学的一场革命
5、。首次证明了从发送端到接收端无密钥传输的保密通信的可能,开创了公钥密码学的新纪元。 1977 年,美国国家标准局(National Bureau of Standards)正式公布了数据加密标准 DES(Data Encryption Standard),将 DES 算法公开,揭示了密码学的神秘面纱,密码学研究进入了一个崭新的时代。20072008 学年密码学讲义3. 密码学的基本概念密码学的基本概念一、基本术语一、基本术语(1) 明文:没有加密的信息称为明文(plaintext) ;(2)密文:加密后的信息称为密文(ciphertext ) ;(3)加密:从明文到密文的变换成为加密(encr
6、yption) ;(4)解密:从密文到明文的变换成为解密(encryption) 。 加密和解密都是在密钥(key)的控制下进行的。给定一个密钥,就可确定一对具体的加密变换和解密变换。二、密码体制的组成二、密码体制的组成 一个密码体制(cryptosystem)通常有五部分组成:(1) 明文空间 M:全体明文的集合。(2) 密文空间 C:全体密文的集合。(3) 密钥空间 K:全体密钥的集合。通常每个密钥 k 都有加密密钥 ke 和解密密钥 kd 组成, ,k e 与 kd 可能相同也可能不相同。,ed(4) 加密算法 E:由加密密钥控制的加密变换的集合。(5) 解密算法 D:由解密密钥控制的解
7、密变换的集合。设 是一个明文, 是一个密钥,则mM,edkK()edkcC其中 是由加密密钥确定的加密变换, 是由解密密钥确定的解密变换。ekEdkD在一个密码体制中,要求解密变换是加密变换的逆变换。因此,对任意的都有 成立。mM()dekDm 密钥空间中不同密钥的个数成为密钥量,它是衡量密码体制安全性的一个重要指标。20072008 学年密码学讲义三、密码体制分类三、密码体制分类(1) 单密钥密码密码体制(或对称密码体制):如果一个密码体制的加密密钥与解密密钥相同,则称该密码体制为。(2) 双密钥密码密码体制(或非对称密码体制):如果一个密码体制的加密密钥与解密密钥不相同,则称该密码体制为。
8、(3) 公钥密码体制(public-key cryptosystem):在一个双密钥密码密码体制中,有加密密钥 ke 计算解密密钥 kd 是困难的,公开 ke 不会损害 kd 的安全性,则可以将加密密钥 ke 公开。这样的密码体制称为公钥密码体制。四、密码体制的条件四、密码体制的条件 一个好的密码体制至少应该满足以下两个条件:(1) 在已知明文 m 和加密密钥 ke 时,计算 容易,在已知密文 c 和()ekcEm解密密钥 kd 时,计算 容易。()dD(2)在不知解密密钥 kd 时,不可能由密文 c 推知明文 m。 对一个密码体制,如果能够根据密文确定明文或密钥,或者能够根据明文和相应的密文
9、确定密钥,则称这个密码体制时可破译的;否则,称其为不可破译的。五、攻击密码体制的方法五、攻击密码体制的方法 密码分析者攻击密码体制的三种主要途径:(1) 穷举攻击:密码分析者通过试遍所有的密钥进行破译。可以通过增大密钥量来对抗穷举攻击。(2)统计分析攻击:密码分析者通过分析密文和明文的统计规律来破译密码。可以通过设法使明文的统计规律与密文的统计特性不同来对抗这种攻击。(3)解密变换攻击:密码分析者针对加密变换的数学基础,通过数学求解的方法来设法找到相应的解密变换。可以通过选用具有坚实的数学基础和足够复杂的加密算法对抗这种攻击。20072008 学年密码学讲义 密码分析者通常可以在下述四种情况下
10、对密码体制进行攻击:(1) 唯密文攻击(cipheretext-only attack):密码分析者仅知道一些密文。(2)已知明文攻击(known-plaintext attack):密码分析者知道一些明文和相应的密文。(3)选择明文攻击(chosen-plaintext attack):密码分析者可以选择一些明文,并得到相应的密文。(4)选择密文攻击(chosen- cipheretext xt attack):密码分析者可以选择一些密文,并得到相应的明文。其中,唯密文攻击的强度最弱,其他情况的攻击强度依次增加。 绝对不可破译的密码体制:对一个密码体制,如果密码分析者无论截获多少密文以及无论
11、用什么样的方法攻击都不能破译,则称其为绝对不可破译的密码体制。绝对不可破译的密码在理论上是存在的。 计算上不可破译的密码:是指密码分析者根据可以利用的资源进行破译的时间非常长,或者破译的时间长到是原来的明文失去保密的价值。六、密码学分成两个分支:六、密码学分成两个分支: 密码编码学:寻求生成高强度、有效的加密或认证算法。 密码分析学:破译密码或伪造加密信息。分为:被动攻击,只是对传输的信息进行窃听;主动攻击,对传输的信息采取插入、删除、修改、重放、伪造等举动。1.3 密码应用举例密码应用举例例 西方古玩店的商品标签常显示形如“ZZ” 、 “QPRA”之类的符号。即是一种以密码形式将成本价格记录
12、在标签上,作为销售时参考的方式。店主可以选取一个秘密单词(如 complexity) ,使其与自然数对应:C O M P L E X I T Y0 1 2 3 4 5 6 7 8 9标注商品的价格时,采用与其各位 (个位、十位、百位、千位、万位,;十分位,百分位)数字所对 应 字 母 组 成 的 序 列 表明商品价值,且一般不考虑小数点的位置。20072008 学年密码学讲义秘密单词即为密 钥 。例 公元前约 50 年,出现了凯 撒 密 码 :即将字母按其自然顺序,最后一个字母与第一个字母相连,将明文中的每个字母用其后面的第三个字母代替,变成密文。明 文 a b c d e f g h i j
13、 k l m密文 D E F G H I J K L M N O P明 文 n o p q r s t u v w x y z密文 Q R S T U V W X Y Z A B C注 意 : 为清楚起见,以后一律用小 写 字 母 表示明 文 ,大 写 字 母 表示密 文 。则明文 s e n d h e l p密文 V H Q G K H O S例 美国南北战争时期,军队中曾使用过双 轨 式 密 码 :加密时,先将明文写成双轨形式。若明文为 send help, 写成双轨形式则为s n h le d e p密文为:SNHLEDEP。解密时,先计算密文中字母的总数,然后将密文分成两半,排列成双
14、轨形式后按列顺序读出即恢复明文。例 网 格 式 密 码 (或称卡丹密码):通信双方事前准备好相同的网格纸一式两份,王先生:来信收悉,你的盛情真实难以报答。我以在昨天抵达广州。秋雨连绵,每天需备伞一把方能上街,苦矣。大约本月中旬我才能返回,届时再见。弟 李明 20072008 学年密码学讲义王先生:来信收悉,你的盛 情 真实难以 报 答。我以 在 昨天抵达广州。秋雨 连绵,每天需备 伞 一 把 方能上街,苦矣。大约本月 中 旬我才能返回,届时再见。弟 李明 密码除可用字母表示外,还可用各种符号表示。 “兽 栏 ”式 密 码 是其中最著名的一种。如,一字棋盘式密码构造如下:a b cd e fg
15、h ia ihgfedcb明 文密 文j k lm n op q rj rqponmlk明 文密 文s t uv w xy zs zyxwvut明 文密 文例 明文是 s e n d h e l p 时,其对应密文为s plehdne明 文密 文第一次课截至于此现代密码学的特点: 有坚实的理论基础,已经形成一门新的科学; 对密码学公开的研究; 应用于社会各个方面; 破译密码系统归结为求解数学的难题问题。总结几百年密码学研究的成果可以得出以下几条研究和发展密码学的经验: 不应该低估对手的能力; 只有密码分析者才能评价一个密码体制的安全性。同时,每个设计安全密码体制的机构也应该有破译“认为是安全的
16、密码体制”的任务;20072008 学年密码学讲义 对手知道所用的密码体制; 表面上的复杂性可能是虚假的,虽然他们可能给密码编译者一种安全性的错觉; 由于人自身的弱点,会发生密码错误和其他违反安全纪律的情况。判断一类方法的安全性时,必须考虑这点。三、对称密钥加密三、对称密钥加密对称密钥加密是指密码方案中,从加密密钥容易计算出解密密钥或反过来从解密密钥容易计算出加密密钥。对称密钥加密也称单钥加密或传统加密,其加密和解密经复杂的非线性变换实现。对称密钥加密技术包括分组密码和序列密码。1. 分组密码分组密码分组密码是在定长的块上进行替代操作、换位操作或它们的合成(乘法加密) 。 替代:是将明文中的一
17、个字母用密文字母表中其他字母替代。 换位:是一块中的字母简单的置换。分组密码目前广泛用于数据的保密传输和存储加密。2. 序列密码序列密码序列密码的加密变换只改变一位明文,故它可以看成是块长度为 1 的分组密码。序列密码是各国军事和外交等领域使用的主要密码体制。其主要问题是如何使生成的密钥流周期长、复杂度高、随机性特性足够好,使之尽可能地接近一次一密的密码体制。对称密钥密码的优缺点:对称密钥密码的优点: 加密效率高,硬件实现可达每秒数百兆字节(软件实现略慢一些) ; 密钥相对比较短;20072008 学年密码学讲义 可以用来构造各种密码体制; 可以用来建造安全性更强的密码。对称密钥密码的缺点:
18、通信双方都要保持密钥的秘密性; 在大型网络中,每个人需持有许多密钥; 为了安全,需要经常更换密钥。四、数字签名,认证与识别四、数字签名,认证与识别1. 数字签名数字签名数字签名是把实体和一段信息捆绑在一起的一种手段。它包括签名过程和验证过程。数字签名要求: 每个用户都能有效地为他的特定消息生成签名; 每个用户都能有效地验证是否是特定人对特定消息的签名; 任何人不能有效地生成他人对特定消息的签名并且通过验证过程。1991 年出现了第一个基于 RSA 公钥签名方案的数字签名国际标准。2. 认证与识别认证与识别认证就是保证“实体是他所声称的那个实体”或“某个信息没有受到非授权实体的处理”的一种手段。
19、根据是否需要实时地相互交换信息认证分为识别和数据源认证。前者双方通信是实时的,后者是有时间延迟的。数据源认证要求: 通信双方都能为自己发送的特定消息生成一个认证标记; 通信双方都能有效地验证此标记是该消息的认证标记; 第三者不能对通信双方发送的消息产生认证标记。20072008 学年密码学讲义五、公钥密码学五、公钥密码学1976 年 Diffie 和 Hellman 的文章引入了公钥密码学的概念,给出了一种新的密钥交换方法,这种方法的安全性基于离散对数问题的难解性。1978 年出现了第一个基于大整数素因子分解难解问题的 RSA 公钥加密和签名方案。1985 年又出现了一个基于离散对数问题的 E
20、lGamal 公钥加密方案。1. 公钥加密公钥加密公钥加密方案 Ee 和解密方案 Dd 中,对于每对加密密钥 e 和解密密钥d,其中的加密密钥(公钥)是公开的,而解密密钥(私钥)只为一个实体私有。公钥加密的优缺点公钥加密的优点: 在大型网络中,每个用户需要的密钥数量少; 对管理公钥的可信第三方的信任程度要求不高而且是离线的; 只有私钥是保密的,而公钥只要保证它的真实性。公钥加密的缺点: 多数公钥加密比对称密钥加密的速度慢几个数量级; 公钥加密方案的密钥长度比对称密钥加密的密钥长; 公钥加密方案没有被证明是安全的。六、密码协议与密码机制六、密码协议与密码机制在密钥建立、密钥分配、身份识别中,需使
21、用加密、数字签名、哈希函数、随机数生成等基本原语。把使用密码学基本原语的分布式算法特别称为密码协议。为达到某种安全目的所需的各种手段(包括协议、算法以及非密码的技术)构成密码机制。对手可能在没有攻破密码原语的情况下,从密码协议或密码机制得到好20072008 学年密码学讲义处,则称密码协议或密码机制失败。这是因为密码协议或密码机制扩大了原语的弱点或没有准确理解所声称的安全性。七、攻击分类与安全模式七、攻击分类与安全模式密码系统所处的环境中除发送者、接受者外,还有攻击者。攻击者通过各种方法窃听和干扰信息。窃听信息称为被动攻击,手段是电磁侦听或搭线窃听,主要破坏信息的保密性。干扰信息称为主动攻击,
22、通过删除、更改、插入、重放、伪装等方法向系统注入信息,主要破坏信息的完整性。 密 钥空 间密 钥空 间发 送 方 接 收 方密 文 明 文明 文 不 安 全 信 道被 动 攻 击 主 动 攻 击图 1. 威 胁 计 算 机 网 络 安 全 通 道 的 两 种 形 式从攻击的对象分,既可以是加密算法,也可以是密码协议。1. 对加密方案的攻击对加密方案的攻击根据分析者使用的数据不同,主要有: 仅有密文攻击:密码分析者仅跟据截获的密文来破译密码; 已知明文攻击:密码分析者跟据已知的某些明文密文对来破译密码; 选择明文攻击:密码分析者能够选择明文并获得相应的密文。20072008 学年密码学讲义2.
23、对密码协议的攻击对密码协议的攻击主要有: 已知密钥攻击:对手从用户以前用过的密钥确定出新的密钥; 重放攻击:对手记录一次通信会话,在以后的某个时候重新发送整个 或部分会话; 伪装攻击:对手扮演网络中一个合法的实体。 字典攻击:主要针对口令的一种攻击。3. 安全模式安全模式密码学原语和密码协议的安全性可以有不同的评估模型:无条件安全性、可证明安全性和计算安全性。 无条件安全性:即使在无限计算资源条件下,通过观察密文也不会为对手提供任何有助于破译密码的信息。 可证明安全性:如果能证明挫败一个密码学方法跟某个著名的困难问题的困难程度相同,则称这个密码学方法是可证明安全的。 计算安全性:某种方法是计算
24、安全的,是指使用当前最好的方法攻破它所需的计算远远超出对手的计算资源水平。八、复杂性理论八、复杂性理论计算复杂性是密码分析技术中分析计算需求和研究破译密码的固有难度的基础。密码强度由破译该密码所用的算法的计算复杂性决定。算法的计算复杂性由它所需的时间和空间量级来度量,其优点是独立于所用的系统并且使人们看到时间和空间的需求随输入规模 n 的而增长。通常按时间或空间复杂性对算法进行分类。若对某个常数 ,算法的运行t时间 ,则称该算法是多项式时间的。若对某个常数 和多项式 ,)(tnOT )(nh算法的运行时间 ,则称该算法是指数时间的。)(nht表 1.1 不同时间复杂度算法的时间需求量级算法类型 复杂度 操作次数 时间需求20072008 学年密码学讲义常数的线性的二次方的三次方的指数的O(1)O(n)O(n2)O(n3)O(2n)110610121018103010301s1s11.6d3200y310301030y