1、现代密码学现代密码学 理论与实践理论与实践l第一章第一章 密码学概述密码学概述l林喜军llinxj771631学习密码学有什么用?学习密码学有什么用?学习网络安全应该具备一定的密码学知识仅使用计算机学科的方法无法满足某些安全需求密码学提供了丰富多彩的安全保护手段,可以满足不同的安全需求2实际应用密码技术的领域实际应用密码技术的领域l电子商务、电子政务l智能卡l3G 3教学目标教学目标1.掌握密码学的基本知识和基本原理2.掌握密码技术的应用3.了解密码学的发展动态4参考文献参考文献lModern Cryptography:Modern Cryptography:Theory&PracticeTh
2、eory&Practice by Wenbo Mao (强烈推荐强烈推荐)中文版网上可以下载中文版网上可以下载5参考文献参考文献(续续)lHandbook of Applied Handbook of Applied CryptographyCryptography by A.Menezes et al.(强烈推荐强烈推荐)网上可以下载网上可以下载6参考文献参考文献(续续)l应用密码学应用密码学 by B.Schneier (内容广泛、不够详细内容广泛、不够详细)网上可以下载网上可以下载7参考文献参考文献(续续)lLecture Notes on CryptographyLecture Not
3、es on Cryptography by by S.Goldwasser M.Bellare (高级读物高级读物)麻省理工学院密码学讲义 网上可以下载网上可以下载8参考文献参考文献(续续)lFoundations of Foundations of CryprographyCryprography:Basic ToolsBasic Tools by O.Goldreich (高级读物高级读物)网上可以下载网上可以下载91.密码学概述2.古典密码学3.对称密码学4.Hash函数与消息认证5.现代密码学的数学基础6.公钥密码学7.数字签名8.椭圆曲线与基于身份的密码学9.安全协议10.密码学发展
4、动态授课内容授课内容重点:重点:38章章10第一章第一章 密码学概述密码学概述1.1 密码学简介1.2 密码学发展史1.3 关于密码分析的几点说明111.1 密码学简介密码学简介l密码学是信息安全的重要组成部分l信息安全三要素p机密性p完整性p可用性12机密性机密性l确保信息不被非法获取l常见威胁l窃听l盗窃文件l社会工程学 13完整性完整性l确保系统或数据被恶意篡改后,我们能够发现l导致破坏完整性的原因l合法用户的失误l非法用户的篡改14可用性可用性l确保系统以足够的能力、预期的方式、可接受的性能提供服务l导致破坏可用性的原因l设备故障l软件错误l环境因素l人为攻击l典型代表:DoS攻击(拒
5、绝服务攻击)15两种攻击形式两种攻击形式l被动攻击l对机密性的破坏l主动攻击l对完整性和可用性的破坏16攻击者的基本行为攻击者的基本行为l窃听-被动攻击攻击者偷看到了攻击者偷看到了BobBob发送的信息发送的信息17攻击者的基本行为攻击者的基本行为(续续)l篡改-主动攻击攻击者修改了攻击者修改了BobBob发送的信息发送的信息18攻击者的基本行为攻击者的基本行为(续续)l假冒-主动攻击攻击者冒充攻击者冒充BobBob,与,与AliceAlice通信通信19密码学的主要功能密码学的主要功能1.保证机密性l防范信息泄露2.保证完整性l防范信息被篡改3.提供非否认服务l防范抵赖20什么是密码学什么是
6、密码学l研究内容研究内容l研究秘密通信l组成部分组成部分1.密码编码学l研究如何设计密码,以保证信息的安全2.密码分析学l研究如何破译密码(是一把双刃剑)帮助分析密码算法的安全强度帮助非法窃取受保护的信息等破坏性工作21密码学的基本术语密码学的基本术语l明文:需要保护的信息l加密:隐藏信息的过程l密文:加密后的明文l解密:从密文恢复出明文的过程l密码分析:对密码进行破译的过程22加密加密 E()解密解密 D()密钥K明文M明文M密文密文C密钥 K安全信道安全信道加密:EK(M M)=C解密:DK(C)=M M =DK(EK(M M)=M M 秘密通信模型秘密通信模型破译23需要区别的两个常用术
7、语需要区别的两个常用术语l口令(password)l用于“身份认证”确认对方是否是你要通信的对象l通常是一些容易记忆,又不易被别人猜到的字符串l密钥(key)l用于“变换明文”作为加解密算法的辅助输入,以保护明文l通常是一个随机串24密钥的必要性密钥的必要性l加解密的时候,为什么需要密钥?l为什么不构造一个不需要密钥的密码算法?l如果攻击者知道了算法,他们只需执行该算法就可以恢复你的明文。l貌似保密密码算法就可以解决这个问题。l事实上,攻击者总能通过各种手段发现你用的是哪个算法。25密码学的基本原则密码学的基本原则 柯克霍夫斯原则柯克霍夫斯原则l柯克霍夫斯原则 即使密码算法的任何细节已为人所知
8、,只要密钥没有泄漏,它也应是安全的。l另一种表述 密码算法的安全性是基于密钥的安全性,而不是基于保密算法细节。Auguste Kerckhoffs 1835 1903荷兰语言学家、密码学家 26柯克霍夫斯原则的意义何在?柯克霍夫斯原则的意义何在?l意义在于,密码算法很难做到保密知道算法的人可能会叛变历史上这种事屡见不鲜设计者有个人喜好频繁更换密钥是可能的,但无法频繁更换密码算法(因为设计安全的密码算法相当困难)27密码体制的形式化描述密码体制的形式化描述l它是一个五元组 (P,C,K,E,D)lP(明文空间):所有可能的明文组成的有限集lC(密文空间):所有可能的密文组成的有限集lK(密钥空间
9、):所有可能的密钥组成的有限集lE:所有加密算法组成的有限集lD:所有解密算法组成的有限集28注意注意l加密算法(函数)必须是一个单射函数Why?Why?29加密函数不是单射会怎么样?加密函数不是单射会怎么样?Ek()Dk()明文空间密文空间x1x2y加密:加密:y=E y=Ek k(x(x1 1)=E)=Ek k(x(x2 2)解密:无法判断解密:无法判断y y究竟还原为究竟还原为x x1 1还是还是x x2 2 D DK K(y)?=x(y)?=x1 1?=x?=x2 2?30怎样的加密体制才算是实用的?怎样的加密体制才算是实用的?l必须满足以下两条:必须满足以下两条:容易性:容易性:加密
10、函数、解密函数都应该易于计算安全性:安全性:对于任何攻击者,即使获得了密文,也不可能恢复出明文、所用的密钥。311.2 密码学发展史密码学发展史l密码学的发展历程大致经历了三个阶段:古代加密方法(手工阶段)古典密码(机械阶段)现代密码(计算机阶段)32(1)古代加密方法阶段古代加密方法阶段l存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。l从某种意义上说,战争是科学技术进步的催化剂。l自从有了战争,人类就面临着通信安全的需求,使得密码技术源远流长。(密码最早应用于军事和政治领域)33需要区别的两种技术需要区别的两种技术l隐写术l加密术34隐写
11、术隐写术洋葱法、隐写墨水等洋葱法、隐写墨水等35隐写术隐写术剃头,写字,等头发变长剃头,写字,等头发变长36隐写术隐写术情报传递情报传递(近现代仍在使用近现代仍在使用)传递情报用的火柴盒37隐写术小结隐写术小结l特点:特点:l保护的是信息本身(把信息隐藏起来)。l缺点:缺点:l一旦发现隐藏的方法,信息就会暴露。l洋葱法 用火烤l古希腊的剃头方法 把可疑的人剃成秃瓢l情报传递 检查任何可疑的东西,看 是否有夹带38加密术加密术l使用的两种基本技术l置换(易位)l代换39加密术加密术置换置换lThe art of war teaches us to rely not on the likeliho
12、od of the enemys not coming,but on our own readiness to receive him-Twelhhe riem公元前400年,斯巴达人 使用的加密工具 Scytale40置换的特点置换的特点l明文中的字符与密文中的相同l只是出现的位置发生了变化l置换密码的密钥是什么?l改变位置的规则41加密术加密术代换代换l有一张(或多张)代换表,表示明文字母与密文字母的对应关系 明文字母:abcdefghijklmnopqrstuvwxyz 密文字母:XZJGLIFKHQNOPMASUTCWDYERBVl加密和解密要参照代换表的对应关系 例:例:明文:cry
13、ptography 密文:JTBSWAFTXSKB42代换的特点代换的特点l明文中出现的字母不一定出现在密文中l代换密码的密钥是什么?l代换表43加密术小结加密术小结l特点:特点:l保护的是信息的内容。l不知道密钥,很难恢复出信息。l隐写术与加密术的区别隐写术与加密术的区别l隐写术:传递的仍是原来的信息,只是被藏了起来l加密术:传递的不是原来的信息(明文),而是变换后的信息(密文)44(2)古典密码阶段古典密码阶段l虽然名字叫“古典密码”,但在近代得到广泛发展和应用l古典密码系统已经初步体现出近现代密码系统的雏形,它比古代加密方法更复杂。l加密方法l一般是对文字的变换l使用手工或机械变换的方式
14、实现。l古典密码的典型代表:单表代换密码、多表代换密码、转轮机密码 (在近代,密码已应用到商业领域)45(3)现代密码阶段现代密码阶段l密码是非常古老的技术,但真正形成学科还是20世纪70年代的事,这是受计算机科学蓬勃发展的刺激和推动的结果。l计算机和电子时代的到来,使得密码设计者轻易摆脱了原先手工设计时易犯的错误,也不用再面对用电子机械方式实现的密码机的高额费用。l快速计算机和现代数学,为密码技术提供了新的概念和工具,也给攻击者提供了有力武器。l总之,利用计算机可以设计出更为复杂的密码系统。攻击者也可以利用计算机快速破解密码系统。46l在这一阶段,密码理论蓬勃发展,密码算法的设计与分析互相促
15、进,出现了大量的密码算法和各种攻击方法。l密码技术的应用范围也在不断扩张,出现了许多通用的密码标准(DES、AES、DSS),促进了网络和技术的不断发展。47密码学史上的重要事件密码学史上的重要事件19491949年,年,香农香农发表论文发表论文保密系统的通信原保密系统的通信原理理l它是密码学的理论基础之一l发表30年后才显示出它的价值。19761976年,年,DiffieDiffie、HellmanHellman发表论文发表论文密码密码学的新方向学的新方向l提出适应网络上保密通信的公钥密码的思想l开辟了公钥密码学的新领域l可以这么说:“没有公钥密码的研究就没有现代密码学”48密码学史上的重要
16、事件密码学史上的重要事件(续续)19781978年,年,RSARSA密码体制出现密码体制出现l它是公钥密码领域最杰出的代表,成为事实上的标准,是密码学史上的里程碑19781978年,年,DESDES(数据加密标准数据加密标准)出现出现lNBS(美国国家标准局,即现在的国家标准与技术研究所NIST)公布美国的数据加密标准,公开它的具体算法,并被用于政府等非机密单位及商业上的保密通信。l上述两篇论文和DES的实施,标志密码学理论与技术的革命性变革,宣布了现代密码学的开始。491.3 关于密码分析的几点说明关于密码分析的几点说明l密码分析的分类方法:密码分析的分类方法:分类依据:攻击者知道信息的多少
17、唯密文攻击:手头只有一些密文,好的现代密码系统对此攻击通常是免疫的。已知明文攻击:已有很多明文/密文对。选择明文攻击:可以任意选择明文,并可获得相应密文。选择密文攻击:可以任意选择密文,并可获得相应明文。(上述四种方法的攻击强度依次增强)50l在实际应用中,破译工作通常是多项技术综合应用的结果l下面就这个问题做几点说明.51 密码设计密码设计 vs.密码实现密码实现l即使图纸上设计完美的楼房,施工的时候不注意,也会变成豆腐渣工程l但这与设计本身无关,完全是施工造成的l密码也是一样,一个设计上安全的密码算法,在实现时也会引入安全漏洞l但这与算法的设计无关,完全是程序编码造成的l在本课程中,主要研
18、究针对算法设计的攻击,而不去涉及算法实现的问题。52 恢复明文恢复明文 vs.恢复密钥恢复密钥l破译的主要目的在于恢复密钥l因为知道了密钥,便可恢复出该密钥加密的所有明文l当然有些时候,破译的目的也在于恢复特定的明文53 全部破译全部破译 vs.部分破译部分破译l并不一定恢复出整个明文才算成功破译l有时候,恢复出明文的部分信息,甚至几个关键单词,也算成功破译。l部分破译又往往成为全部破译的突破口l在实际应用中,破译往往需要综合多项技术和多方面的信息。54综合破译举例综合破译举例池步洲池步洲l生于福建省闽清县。由于家境贫寒,直到10岁才上学,却用3年时间完成全部小学课程。l此后考入福州英华书院(
19、今福建师范大学附属中学)。l后留学日本,并考入早稻田大学。l抗战爆发后,回国抗日。经同学介绍加入中统,他是当时中统内唯一的留日学生。l尽管没学过密码破译,却用统计、大胆猜测,以及自己对日本的了解,发现了日军密码的缺陷,破译了大量日军密电l珍珠港事件:东风,有雨珍珠港事件:东风,有雨l击毙山本五十六击毙山本五十六 19082019卒于日本神户55 穷举攻击穷举攻击 vs.其他攻击其他攻击l一个安全的密码体制要求:通过密文计算密钥,至少要和计算明文一样困难l穷举攻击(暴力攻击、蛮力攻击)l目的在于穷举搜索密钥l方法:依次测试密钥空间中的每个密钥56l密码体制安全的一个必要条件:密码体制安全的一个必
20、要条件:能抵抗密钥穷举攻击,所以密钥空间要足够大l只要密钥空间足够大,穷举攻击将是十分低效的,甚至是不现实的l但这并不是充分条件,因为穷举不是破译密码的唯一方法,还有效率高于穷举攻击的分析方法l各种分析方法的效率谁高谁低呢?常以穷举攻击的效率作为比较的标准57 保密密钥保密密钥 vs.保密算法保密算法l根据柯克霍夫斯原则,对密码进行分析的前提是,在不知道密钥的条件下,对公开的密码算法进行分析。l在政府或军事应用中,也存在保密算法的情况。l但前提是,算法必须是安全的。通过保密算法进一步加强安全性。l本课程所介绍的密码分析方法,则是依据柯克霍夫斯原则的。58保密算法举例保密算法举例纳瓦霍语密码纳瓦霍语密码l纳瓦霍语密码的特点安全性在于算法的保密性因为它没有密钥安全原理:日本人对纳瓦霍语 一无所知英语无线电(纳瓦霍语)无线电监听风语者发送方接收方英语傻了!鉴定完毕傻了!鉴定完毕59本章需要掌握和了解的内容本章需要掌握和了解的内容l掌握信息安全三要素、密码学主要功能、两种攻击形式的含义l掌握密码学研究的内容、组成部分,及各种术语l掌握柯克霍夫斯原则的内容和意义,隐写术、加密术的区别,置换、代换的内容和区别l掌握密码分析的四种方法l了解密码学史上的几个重大事件60