现代密码学林喜军中国海洋大学信息安全实验室2为什么要学密码学?密码学到底都能干些什么?密码学能干些啥保证你发出的信息,除指定人以外,别人无法知道内容机密性3密码学能干些啥检查你收到的信息在途中是否被改动过完整性4密码学能干些啥•确认对方身份;证明你的身份•确认数据的来源认证5密码学能干些啥证明自己身份的同时,不泄露自己的身份匿名性6密码学能干些啥能干的事还有很多很多,品种繁多,五花八门离开密码学,很多安全需求很难或无法实现78生活中哪些地方用到密码技术9高大上的应用10影视作品中的密码学11为什么要学密码学?①密码学与现实生活息息相关②学习网络安全应该具备一定的密码学知识③仅使用计算机学科的方法无法满足某些安全需求④密码学提供了丰富多彩的安全保护手段,可以满足不同的安全需求12图灵奖历史上的密码学家获得时间获奖者获奖原因1995M.Blum计算复杂度理论,及其在密码学和程序校验上的应用2000Andrew.C.C.Yao计算理论,包括伪随机数生成,密码学与通信复杂度2002R.RivestA.ShamirL.AdlemanRSA加密算法2012S.GoldwasserS.Micali在密码科学领域里,于计算复杂理论的基础之上,做出变革性工作;并率先发展出新的具有数学可证明安全性的有效机制2了解密码技术的应用1掌握基本知识、基本原理了解密码学的发展动态3教学目标13推荐两本书141254密码学概述古典密码学对称密码学Hash函数与消息认证现代密码学的理论基础3授课内容1567109公钥密码学数字签名椭圆曲线与基于身份的密码学量子密码学8安全协议16重点2-9章密码学概述第1章17本章内容181.1密码学简介1.2密码学发展史1.3关于密码分析1.1密码学简介19为信息安全其他组成部分提供理论支持密码学是信息安全技术的基础密码学的地位20密码学不是万能的,离开它却是万万不能的信息安全三要素机密性完整性可用性确保信息不被非法获取常见威胁:窃听盗窃文件社会工程学……确保能够发现信息是否被改动过常见威胁:合法用户的失误非法用户的篡改确保系统正常提供服务常见威胁:设备故障软件错误环境因素人为攻击21对机密性的破坏对完整性、可用性等的破坏攻击者能干些什么——两种攻击形式窃听篡改冒充……22被动攻击主动攻击密码学的主要功能23防范“信息泄露”保证机密性防范“信息篡改”保证完整性防范“否认干过的事”提供非否认什么是密码学研究内容:保护系统安全密码编码学密码分析学(设计密码)(破译密码)组成部分:24一把双刃剑:①帮助分析密码算法的安全性②帮助破坏受保护信息的安全性密码学基本术语明文需要加密的信息加密隐藏信息的过程密文加密后的明文解密从密文恢复明文的过程密码分析破译密码的过程25明文M明文M26加密E(·)解密D(·)密钥K密文C密钥K安全信道破译AliceBob秘密通信模型EK(M)=C加密DK(C)=M解密DK(EK(M))=M区别两个术语27用于“身份认证”:确认对方或证明自己的身份是一些容易记忆,又不易被猜到的字符串口令(password)用于“变换”:加解密的辅助输入是一些随机串密钥(key)密钥的重要性:加解密时,为什么需要密钥28Q:为什么不构造一个无密钥的密码算法?如果攻击者知道了算法,他们只需执行该算法就可以恢复你的明文事实证明,攻击者总能通过各种手段发现你用的是哪个算法貌似保密密码算法就可以解决这个问题柯克霍夫斯原则密码学的基本原则AugusteKerckhoffs1835–1903荷兰语言学家、密码学家即使密码系统的任何细节已为人所知只要密钥没有泄漏它也应该是安全的29意义在于,密码算法很难保密1.知道算法的人可能叛变历史上这种事屡见不鲜2.设计者有个人喜好喜欢使用一些固定结构,易被猜测3.频繁更换算法不现实设计安全的密码算法很困难柯克霍夫斯原则的意义3031加解密是在密钥的控制下进行的32密码体制的形式化描述以加密为例明文空间:所有可能的明文组成的有限集P它是一个五元组(P,C,K,E,D)密文空间:所有可能的密文组成的有限集C密钥空间:所有可能的密钥组成的有限集K所有加密算法组成的有限集E所有解密算法组成的有限集D33加密算法(函数)必须是一个单射函数解密:无法判断y究竟还原为x1还是x2DK(y)?=x1?=x2加密:y=Ek(x1)=Ek(x2)34Ek(·)Dk(·)明文空间密文空间x1x2y?Q:加密函数不是单射会怎么样?实用的加密体制必须满足以下两条01容易性:加密算法、解密算法都应该易于计算02安全性:对于任何攻击者,即使获得了密文,也很难恢复出明文、所用的密钥35隐写术加密术区别两种技术36隐写术洋葱法37隐写术剃光头38隐写术藏头/藏尾诗39我康宣,今年一十八岁,姑苏人氏,身家清白,素无过犯。只为家况清贫,鬻身华相府中,充当书僮。身价银五十两,自秋节起,暂存帐房,俟三年后支取,从此承值书房,每日焚香扫地,洗砚、磨墨等事,听凭使唤。从头做起。立此契为凭。隐写术小结40保护的是信息本身(把信息隐藏起来)特点洋葱法——用火烤古希腊剃头法——把可疑的人剃成秃瓢藏头诗——检查诗词的开头和结尾…..缺点:一旦发现隐藏的方法,信息就会暴露(安全性差)加密术两种常用基本技术置换代换又叫易位(permutation)又叫替换、代替(substitution)41公元前400年,斯巴达人使用的加密工具加密术置换42Scytale加密术置换43明文中字符与密文中相同,只是出现的位置发生变化特点改变位置的规则Q:密钥是什么?明密文字母对照表:加密术代换44明文:system密文:兽栏密码加密术代换45明文中出现的字母不一定出现在密文中,但位置保持不变特点代换规则Q:密钥是什么?隐写术与加密术的区别46保护的是信息本身,传递的仍是原来的信息,只是被藏了起来一旦发现隐藏的方法,信息就会暴露隐写术保护的是信息内容,传递的是变换后的密文,而不是原来的明文不知道密钥,很难恢复信息加密术1.2密码学发展史47密码学发展历程12345678现代密码密码学的发展历程大致经历以上三个阶段古代加密方法古典密码4849密码最早应用于军事和政治领域古代加密阶段50存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统从某种意义上说,战争是科学技术进步的催化剂自从有了战争,人类就面临着通信安全的需求,使得密码技术源远流长51密码开始应用于商业领域古典密码阶段虽然名字叫“古典密码”,但在近代得到广泛发展和应用古典密码系统已经初步体现出现代密码系统的雏形,它比古代加密方法更复杂古典密码的典型代表:单表代换密码多表代换密码转轮机密码加密手段:一般是对字符的变换使用手工或机械变换的方式实现5253密码开始应用于民用领域(特别是互联网)现代密码阶段密码是非常古老的技术,但真正形成学科还是20世纪40-70年代的事,这是受计算机科学蓬勃发展的刺激和推动的结果计算机和电子时代的到来,使密码设计者轻易摆脱手工设计时易犯的错误,也不必承受电子机械方式的高额费用快速计算机和现代数学为密码技术提供了新的概念和工具,也给攻击者提供了有力武器在这一阶段,密码理论蓬勃发展,密码算法的设计与分析互相促进,出现了大量的密码算法和各种攻击方法密码技术的应用范围也在不断扩展,出现了许多通用的密码标准(DES、AES等),促进了网络和技术的不断发展54密码学史上的重要事件1978年,DES(数据加密标准)出现密码学的理论基础之一,发表30年后才显示出它的价值开辟了公钥密码学的新领域可以这么说:“没有公钥密码的研究就没有现代密码学”公钥密码领域最杰出的代表事实上的标准,密码学史上的里程碑它们标志密码学理论与技术的革命性变革,宣布了现代密码学的开始55美国的数据加密标准用于政府等非机密单位及商业的保密通信1977年,RSA密码体制出现1976年,Diffie、Hellman发表论文《密码学的新方向》1949年,香农发表论文《保密系统的通信原理》密码学发展历程(另一种说法)123456781976年以后1949年以前1949-197556密码学只是一门技术/艺术1949年以前密码学形成一门科学1949-1975密码学新方向:公钥密码学1976年以后1.3关于密码分析57密码分析的分类方法加密依据攻击者知道信息的多少,可如下分类:攻击强度依次增强58只有一些密文,好的现代密码系统对此通常是免疫的唯密文攻击已有很多明文/密文对已知明文攻击可以任意选择明文,并可获得相应密文选择明文攻击可以任意选择密文,并可获得相应明文选择密文攻击1908—2003卒于日本神户在实际中,破译通常是多种手段综合应用的结果池步洲,福建省闽清县人。自幼家境贫寒,直到10岁才上学,却用3年时间完成小学课程,考入福州英华书院(今福建师范大学附属中学)。后留学日本早稻田大学。抗战爆发后,回国抗日。经同学介绍加入中统,是当时中统内唯一的留日学生。尽管没学过密码破译,却用统计、大胆猜测,以及自己对日本的了解,破译大量日军密电。珍珠港事件:东风,有雨击毙山本五十六…59几点说明(1):密码设计vs.密码实现60密码设计编码实现部署使用设计上安全的密码算法,由于实现或使用不当,可能引入安全漏洞几点说明(2):恢复明文vs.恢复密钥破译的主要目的:恢复密钥因为知道了密钥,便可恢复出该密钥加密的所有明文(当然有些时候,破译的目的也在于恢复特定的明文)61通过密文计算密钥,至少要和计算明文一样困难同等对待所有密钥,不要根据自己的偏好选择密钥以防对手根据你的偏好缩小密钥范围62密钥应随机选择几点说明(3):全部破译vs.部分破译并不一定恢复出整个明文才算成功破译有时候,恢复出明文的部分信息,甚至几个关键单词,也算成功破译。部分破译又往往成为全部破译的突破口63几点说明(4):穷举攻击vs.其他攻击穷举攻击(暴力攻击、蛮力攻击)目的:穷举搜索密钥方法:依次测试密钥空间中的每个密钥64密钥空间要足够大,以抵抗密钥穷举攻击65只要密钥空间足够大,穷举攻击将是十分低效的,甚至是不现实的但这并不是充分条件,因为穷举不是破译密码的唯一方法,还有效率高于穷举攻击的其他分析方法各种分析方法的效率谁高谁低呢?常以穷举攻击的效率作为比较的标准几点说明(5):保密密钥vs.保密算法根据柯克霍夫斯原则,对密码进行分析的前提是,在不知道密钥的条件下,对公开的密码算法进行分析。但在政府或军事应用中,也存在保密算法的情况。不过前提是,算法必须是安全的。通过保密算法进一步加强安全性。66保密算法的例子—纳瓦霍语密码纳瓦霍语密码的特点:粗略的讲,安全性在于算法的保密性,密钥固化在算法中安全原理:日本人对纳瓦霍语一无所知67对密码安全性的一些直观认识68•密钥空间要足够大•密钥应该随机选择•通过密文计算密钥,至少要和计算明文一样困难–明文与密文之间的统计关系要尽量小–密钥与密文之间的统计关系要尽量小……学习密码学要转变两个观念69概率相对抛弃“百分之百”的想法抛弃“绝对”的想法,安全都是相对的本章小结1.掌握信息安全三要素、密码学主要功能、两种攻击形式的含义2.掌握密码学研究的内容、组成部分及各种术语3.掌握柯克霍夫斯原则的内容和意义,隐写术、加密术的区别,置换、代换的内容和区别4.掌握密码分析的四种方法5.了解密码学史上的几个重大事件70练习题1.信息安全三要素是()2.密码学由()两部分组成?3.加密的两种基本技术是()4.按照攻击者知道信息的多少,密码分析()四种类型71机密性、完整性、可用性密码编码学、密码分析学置换、代换唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击5.加密和解密都是在()控制下进行的A.口令B.密钥C.字符串D.算法6.以下哪种攻击破坏数据的机密性()A.篡改B.窃听C.冒充D.匿名7.以下哪种属于被动攻击()A.篡改B.窃听C.冒充D.以上答案都不对72BBB