第2章 密码学概论.ppt
第第2章章 密码学概论密码学概论密码发展概述v自人类社会出现战争便产生了密码Julius Caesar发明了凯撒密码二战时德国使用Enigma机器加密美国军事部门使用纳瓦霍语(Navaho)通信员v密码由军事走向生活电子邮件自动提款机电话卡2/25/2022三个阶段:三个阶段:19491949年之前年之前 密码学是一门艺术密码学是一门艺术1949194919751975年年 密码学成为科学密码学成为科学19761976年以后年以后 密码学的新方向密码学的新方向公钥密码学公钥密码学2/25/2022密码学的发展历史(1)v自人类社会出现战争便产生了密码Phaistos圆盘,一种直径约为160mm的Cretan-Mnoan粘土圆盘,始于公元前17世纪。表面有明显字间空格的字母,至今还没有破解。vJulius Caesar发明了凯撒密码2/25/2022密码学的发展历史(2)v1834年,伦敦大学的实验物理学教授惠斯顿发明了电机,这是通信向机械化、电气化跃进的开始,也为密码通信采用在线加密技术提供了前提条件。v1920年,美国电报电话公司的弗纳姆发明了弗纳姆密码。其原理是利用电传打字机的五单位码与密钥字母进行模2相加。2/25/2022密码学的发展历史(3)v两次世界大战大大促进了密码学的发展。二战中美国陆军和海军使用的条形密码设备M-138-T4。根据1914年Parker Hitt的提议而设计。25个可选取的纸条按照预先编排的顺序编号和使用,主要用于低级的军事通信。Kryha密码机大约在1926年由Alexander vo Kryha发明。这是一个多表加密设备,密钥长度为442,周期固定。一个由数量不等的齿的轮子引导密文轮不规则运动。2/25/2022密码学的发展历史(4)v两次世界大战大大促进了密码学的发展。转轮密码机ENIGMA,由Arthur Scherbius于1919年发明,面板前有灯泡和插接板;4轮ENIGMA在1942年装备德国海军,英国从1942年2月到12月都没能解读德国潜艇的信号。英国的TYPEX打字密码机,是德国3轮ENIGMA的改进型密码机。它在英国通信中使用广泛,且在破译密钥后帮助破解德国信号。2/25/2022密码学的发展历史(5)v1949年香农发表了一篇题为保密系统的通信理论的著名论文,该文首先将信息论引入了密码,从而把已有数千年历史的密码学推向了科学的轨道,奠定了密码学的理论基础。v1976年,美国密码学家W.Diffie和M.Hellman在一篇题为密码学的新方向一文中提出了一个崭新的思想,不仅加密算法本身可以公开,甚至加密用的密钥也可以公开。v1977年美国国家标准局颁布了数据加密标准DES v2001年11月26日,正式颁布AES为美国国家标准。2/25/2022定义v密码学密码学是一门研究秘密信息的隐写技术的学是一门研究秘密信息的隐写技术的学科;密码学技术可以使消息的内容对科;密码学技术可以使消息的内容对(除发送除发送者和接收者以外的者和接收者以外的)所有人保密;可以使接收所有人保密;可以使接收者验证消息的正确性;是解决计算机与通信者验证消息的正确性;是解决计算机与通信安全问题重要技术。安全问题重要技术。2/25/2022密码学的基本概念(1)v密码学是关于加密和解密变换的一门科学,是保护数密码学是关于加密和解密变换的一门科学,是保护数据和信息的有力武器。据和信息的有力武器。v密码是什么密码是什么?密码就是变换。(信息代码变换、数据电平变换)密码就是变换。(信息代码变换、数据电平变换)v变换是什么?变换是什么?变换是一种算法实现过程。变换是一种算法实现过程。v谁来做变换?谁来做变换?变换可以由硬件和软件实现。(人、器件部件、计算机)变换可以由硬件和软件实现。(人、器件部件、计算机)2/25/2022密码学的基本概念(2)v密码学密码学(Cryptology):研究信息系统安全保密的科学。它包含两个分支密码编码学密码编码学(Cryptography),对信息进行编码实现隐蔽信息的一门学问密码分析学密码分析学(Cryptanalytics),研究分析破译密码的学问。2/25/2022 明文明文(消息)(Plaintext):被隐蔽消息。密文密文(Ciphertext)或密报密报(Cryptogram):明文经密码变换成的一种隐蔽形式。加密加密(Encryption):将明文变换为密文的过程。解密解密(Decryption):加密的逆过程,即由密文恢复出原明文的过程。加密员加密员或密码员密码员(Cryptographer):对明文进行加密操作的人员。密码学的基本概念(3)2/25/2022 加密算法加密算法(Encryption algorithm):密码员对明文进行加密时所采用的一组规则。接收者接收者(Receiver):传送消息的预定对象。解密算法:解密算法:接收者对密文进行解密时所采用的一组规则。密钥密钥(Key):控制加密和解密算法操作的数据处理,分别称作加密密钥加密密钥和解密密钥解密密钥。截截收收者者(Eavesdropper):在信息传输和处理系统中的非受权者,通过搭线窃听、电磁窃听、声音窃听等来窃取机密信息。密码学的基本概念(4)2/25/2022 密码分析密码分析(Cryptanalysis):截收者试图通过分析从截获的密文推断出原来的明文或密钥。密码分析员密码分析员(Cryptanalyst):从事密码分析的人。被被动动攻攻击击(Passive attack):对一个保密系统采取截获密文进行分析的攻击。主主动动攻攻击击(Active attack):非法入入侵侵者者(Tamper)、攻攻击击者者(Attcker)或黑黑客客(Hacker)主动向系统窜扰,采用删除、增添、重放、伪造等窜改手段向系统注入假消息,达到利已害人的目的。密码学的基本概念(5)2/25/2022v一个密码系统,通常简称为密码体制,由5部分组成:全体明文的集合全体明文的集合全体密文的集合全体密文的集合全体密钥的集合全体密钥的集合一组由一组由MM到到C C的加密变换的加密变换一组由一组由C C到到MM的解密变换的解密变换密码体制基本组成密码体制基本组成2/25/2022信息加密传输的过程2/25/2022w加密加密:C=E(M,Ke)EDw解密解密:M=D(C,Kd)M-明文 C-密文Ke-加密密钥 Kd-解密密钥E-加密算法 D-解密算法2/25/2022明文加密算法加密密钥K1网络信道解密算法明文解密密钥K2密文用户用户A用户用户B传送给B的信息B收到信息窃听者窃听者CC窃听到的信息窃听到的信息!#$%2/25/2022注意 v数据安全基于密钥而不是算法的保密。数据安全基于密钥而不是算法的保密。也就是说,对于一个密码体制,其算法是可以公开的,让所有人来使用、研究。但具体对于某次加密过程中所使用的密钥,则是保密的。v例如,加密算法为Y=aX+b,其中,X为明文,计算后Y成为密文。在具体加密过程中,a、b的取值为密钥,假设为(2,3),明文为2,则密文计算后为7。在这个过程中,Y=aX+b可以公开,但具体a=2,b=3的取值不公开。所以即使对方知道了采用的加密算法,由于不知道具体参数取值,也无法根据密文计算出明文。2/25/2022密码系统的分类(1)v根据密钥的使用方式分类根据密钥的使用方式分类 对称密码体制(秘密钥密码体制)v用于加密数据的密钥和用于解密数据的密钥相同,或者二者之间存在着某种明确的数学关系。v加密:EK(M)=Cv解密:DK(C)=M 非对称密码体制(公钥密码体制)v用于加密的密钥与用于解密的密钥是不同的,而且从加密的密钥无法推导出解密的密钥。v用公钥KP对明文加密可表示为:EKP(M)=Cv用相应的私钥KS对密文解密可表示为:DKS(C)=M2/25/2022密码系统的分类(2)v根据明文和密文的处理方式分类根据明文和密文的处理方式分类 分组密码体制(Block Cipher)v设M为明文,分组密码将M划分为一系列明文块Mi,通常每块包含若干字符,并且对每一块Mi都用同一个密钥Ke进行加密。vM=(M1,M2,Mn),C=(C1,C2,Cn,),其中Ci=E(Mi,Ke),i=1,2,n。序列密码体制(Stream Cipher)v将明文和密钥都划分为位(bit)或字符的序列,并且对明文序列中的每一位或字符都用密钥序列中对应的分量来加密。vM=(M1,M2,Mn),Ke=(ke1,ke2,ken),C=(C1,C2,Cn),其中Ci=E(mi,kei),i=1,2,n。2/25/2022密码系统的分类(3)v根据加密算法是否变化分类根据加密算法是否变化分类设设E为加密算法,为加密算法,K0,K1,Kn,为密钥,为密钥,M0,M1,Mn为明文,为明文,C为密文为密文 固定算法密码体制 vC0=E(M0,K0),C1=E(M1,K1),.,Cn=E(Mn,Kn)变化算法密码体制 vC0=E1(M0,K0),C1=E2(M1,K1),.,Cn=En(Mn,Kn)2/25/2022密码分析 Cryptanalysis 截收者在不知道解密密钥及通信者所采用的加密体制的细节条件下,对密文进行分析,试图获取机密信息。研究分析解密规律的科学称作密码分析学。密码分析在外交、军事、公安、商业等方面都具有重要作用,也是研究历史、考古、古语言学和古乐理论的重要手段之一。2/25/2022密码分析 密码设计和密码分析是共生的、又是互逆的,两者密切有关但追求的目标相反。两者解决问题的途径有很大差别 密码设计是利用数学来构造密码 密码分析除了依靠数学、工程背景、语言学等知识外,还要靠经验、统计、测试、眼力、直觉判断能力,有时还靠点运气。2/25/2022密码分析方法分析法 确定性分析法确定性分析法 利用一个或几个已知量(比如,已知密文或明文-密文对)用数学关系式表示出所求未知量(如密钥等)。已知量和未知量的关系视加密和解密算法而定,寻求这种关系是确定性分析法的关键步骤。统计分析法统计分析法 利用明文的已知统计规律进行破译的方法。密码破译者对截收的密文进行统计分析,总结出其间的统计规律,并与明文的统计规律进行对照比较,从中提取出明文和密文之间的对应或变换信息。2/25/2022 密码可能经受的攻击攻击类型攻击者拥有的资源惟密文攻击Ciphertext onlyv加密算法v截获的部分密文已知明文攻击Known plaintextv加密算法,v截获的部分密文和相应的明文选择明文攻击Chosen plaintextv加密算法v加密黑盒子,可加密任意明文得到相应的密文选择密文攻击Chosen ciphertextv加密算法v解密黑盒子,可解密任意密文得到相应的明文2/25/2022密码分析方法-穷举破译法Brute-force attack 对截收的密报依次用各种可解的密钥试译,直到得到有意义的明文;一般来说,要获取成功平均尝试所有可能密钥的一半。或在不变密钥下,对所有可能的明文加密直到得到与截获密报一致为止,此法又称为完全试凑法完全试凑法(Complete trial-and-error Method)。只要有足够多的计算时间和存储容量,原则上穷举法总是可以成功的。但实际中,任何一种能保障安全要求的实用密码都会设计得使这一方法在实际上是不可行的。2/25/2022注意 vInternet的广泛应用,可以把全世界的计算机资源连成一体,形成巨大的计算能力,从而拥有巨大的密码破译能力,使原来认为安全的密码被破译。v1994年,40多个国家的600多位科学家通过Internet,历时9个月破译了RSA-129密码,1999年又破译了RSA-140密码,2005年,RSA-200也被成功破译。v1997年6月18日美国科罗拉多州以Rocke Verser为首的工作小组宣布,通过利用Internet上的数万台微机,历时4个多月,通过穷举破译了DES。因此,在21世纪,只有经得起通过Internet进行全球攻击的密码,才是安全的密码。2/25/2022两个概念vunconditionally secure 无条件安全无条件安全无论有多少可使用的密文,都不足以唯一地确定无论有多少可使用的密文,都不足以唯一地确定密文所对应的明文。密文所对应的明文。vcomputationally secure 计算上安全计算上安全The cost of breaking the cipher exceeds the value of the encrypted information.The time required to break the cipher exceeds the useful lifetime of the information.2/25/2022v破译56位DES的成本 单位:美元2/25/2022v一个数量级概念赢得彩票头等奖并在同一天被闪电杀死的可能性1/2552/25/2022v统计的观点某种计算资源破译需要一年时间,在一个月内破译的可能性8%,若穷举需要一个月时间,则一小时内破译的可能性是0.14%2/25/2022四、古典密码 Classical Encryption v古典密码与现代密码的区别v古典密码对于今天来说,是极不安全的,是极易破解的,但其基本方法仍然是近、现代密码学的基础之一。v古典密码运用的两种基本技术:代换法Substitution Techniques 置换法Transposition Techniques 2/25/2022代换技术v代换法,是将明文字母替换成其他字母、数字或符号的方法。vCaesar密码(已知的最早的代换密码)例如:明晨五点发动反攻明文:MING CHEN WU DIAN FA DONG FAN GONG密文:密文:PLQJ FKHQ ZX GLDQ IDGRQJ IDQ JRQJ2/25/2022Caesar Cipher 凯撒密码如果让每个字母等价于一个数值:则加密公式为:C=E(p)=(p+3)mod 26更一般地:C=E(p)=(p+k)mod 26解密:p=D(C)=(C-k)mod 262/25/2022用穷举分析可轻松破解Caesar密码v通常,加密和解密算法是已知的。v需测试的密钥只有25个。v明文所用的语言是已知的,其意义易于识别。因此,为了提高穷举分析的难度,密钥空间必须很大。例如3-DES算法的密钥长度为168位,密钥空间为2168。2/25/2022单表代换密码v使用一个密文字母表,并且用密文字母表中的一个字母来代替一个明文字母表中的一个字母。v例如,明文a用c来代换,b用剩下的25个字母中随机的一个来代换,c用剩下的24个字母中随机的一个来代换,以此类推。这样,密钥空间为26!,约4*1026种可能的密钥。2/25/2022破解单表代换密码v根据频率统计进行分析根据频率统计进行分析v确定每个字母被映射到什么字母确定每个字母被映射到什么字母v单个字母出现的可能是单个字母出现的可能是A或或Iv一般来说一般来说3个字母出现的可能是个字母出现的可能是THE或或ANDv还可以用其他通常出现的双字母或三字母组还可以用其他通常出现的双字母或三字母组合合v还可以应用其它很少应用的字母还可以应用其它很少应用的字母2/25/2022v最常见的两字母组合,依照出现次数递减的顺序排列:TH、HE、IN、ER、AN、RE、DE、ON、ES、ST、EN、AT、TO、NT、HA、ND、OU、EA、NG、AS、OR、TI、IS、ET、IT、AR、TE、SE、HI、OFv最常见的三字母组合,依照出现次数递减的顺序排列:THE、ING、AND、HER、ERE、ENT、THA、NTH、WAS、ETH、FOR、DTH2/25/20222/25/20222/25/2022改变明文的语法模式和结构-抵抗频度分析v可采用多表代换密码polyalphabetic substitution cipher Playfair密码Hill密码Vigenere密码v采用相关的单表代换规则v由密钥来决定给定变换的具体规则2/25/2022最著名的多表代换加密体制-Playfair v由英国科学家Charles Wheatstone于1854年发明,以其好友Baron Playfair的名字命名。v在第一次世界大战中,英军使用Playfair密码作为陆军的标准加密体制。v在第二次世界大战中,盟军使用它作为通信加密工具。2/25/2022Lord Peter Wimsey给出的例子vPlayfair算法基于使用一个55字母矩阵,该矩阵使用一个关键词构造。从左至右、从上至下填入该关键词的字母(去除重复字母),然后再以字母表顺序将余下的字母填入矩阵剩余空间。字母I和J 被算作一个字母。MONARCHYBDEFGI/JKLPQSTUVWXZ2/25/2022v属于相同对中的重复的明文字母将用一个填充字母进行分隔,比如比如x:因此,词balloon将被加密为ba lx lo on。v属于该矩阵相同行的明文字母将由其右边的字母替代,而行的最后一个字母由行的第一个字母代替。例如,ar被加密为RM。v属于相同列的明文字母将由它下面的字母代替,而列的最后一个字母由列的第一个字母代替。例如,mu被加密为CMv否则,明文的其他字母将由与其同行,且与下一个同列的字母代替。因此,hs成为BP,ea成为IM(或JM,这可根据加密者的意愿而定)。代换规则2/25/2022Playfair密码的优点vPlayfair密码与简单的单一字母替代法密码相比有了很大的进步 虽然仅有26个字母,但有2626676种字母对,因此,识别字母对要比单个字母要困难得多 一个明文字母有多种可能的代换密文字母,使得频率分析困难的多(hs成为BP,hq成为YP)。v由于这些原因,Playfair密码过去长期被认为是不可破的。2/25/2022最简单的多表代换密码-Vigenrev维吉尼亚密码选择一个词组作为密钥,密钥中每个字母用来确定一个代换表,每个密钥字母用来加密一个明文字母。v例如密钥字母为b,明文字母为c,则密文字母为1+2(mod26)=3,也就是d。v直到所有的密钥字母用完,后再从头开始,使用第一个密钥字母加密。也就是说,密钥循环使用。2/25/2022一个例子v明文为attack begins at five,密钥为cipher,attack begins at five 明文 cipher cipher ci pher 密钥 -cbihgb dmvprj cb upzv 密文去除空格后为cbihgbdmvprjcbupzv2/25/2022破解维吉尼亚密码的一个途径v如果密文足够长,其间会有大量重复的密文序列出现。通过计算重复密文序列间距的公因子,分析者可能猜出密钥词的长度(因为密钥词是重复使用的)。2/25/2022无法攻破的加密体制 One-Time Pad v不管你是否相信它,有一种理想的加密方案,叫做一次一密乱码本,由Major Joseph Mauborgne 和AT&T公司的Gilbert Vernam 在1917发明。v一次一密乱码本不外乎是一个大的不重复的真随机密钥字母集,这个密钥字母集被写在几张纸上,并被粘成一个乱码本。发送者用每一个明文字符和一次一密乱码本密钥字符的模26加法。v每个密钥仅对一个消息使用一次。发送者对所发送的消息加密,然后销毁乱码本中用过的一页或磁带部分。接收者有一个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文的每个字符。接收者在解密消息后销毁乱码本中用过的一页或磁带部分。新的消息则用乱码本中新的密钥加密。2/25/2022一次一密的优点v面对一条待破译的密文,攻击者能够找到很多个与密文等长的密钥,使得破译出的明文符合语法结构的要求,因为密钥本身是随机的,是没有规律的。v就算在这些可能的密钥中存在真正的密钥,攻击者也无法在这些可能的密钥中确定真正的密钥,因为密钥只是用一次,攻击者无法用其它密文来验证这个密钥,因此是无法攻破的。2/25/20222/25/2022一次一密的缺点v一个一次一密加密系统,需要在某个规则基础上建立百万个随机字符,提供这样规模的真正随机字符集市相当艰巨的任务。v对每一条消息,需要提供给发送发和接收方等长度的密钥,因此存在庞大的密钥分配问题。v基于这些原因,一次一密在实际中极少应用。2/25/2022置换技术Transposition Techniques v在置换密码中,明文的字母保持相同,但顺序被打乱了。在简单的纵行换位密码中,明文以固定的宽度水平地写在一张图表纸上,密文按垂直方向读出,解密就是将密文按相同的宽度垂直地写在图表纸上,然后水平地读出明文。2/25/2022Plaintext:COMPUTERGRAPHICSMAYBESLOWBUTATLEASTITSEXPENSIVEC O M P U T E R G RA P H I C S M A Y BE S L O W B U T A TL E A S T I T S E XP E N S I V ECiphertext:CAELPOPSEEMHLANPIOSSUCWTITSBIVEMUTERATSGYAERBTX 这种简单的技巧对于密码分析者来说是微不足道的。可在置换前,把列的次序打乱,列的次序就是算法的密钥。2/25/2022v代换技术与置换技术通常结合使用。v一般地,可先利用代换技术加密,再用置换技术将密文再次加密。2/25/2022古典密码(机械阶段)-转轮机Rotor Machines v20世纪20年代,随着机械和机电技术的成熟,以及电报和无线电需求的出现,引起了密码设备方面的一场革命发明了转轮密码机(简称转轮机,Rotor),转轮机的出现是密码学发展的重要标志之一。v美国人Edward Hebern认识到:通过硬件卷绕实现从转轮机的一边到另一边的单字母代替,然后将多个这样的转轮机连接起来,就可以实现几乎任何复杂度的多个字母代替。v转轮机由一个键盘和一系列转轮组成,每个转轮是26个字母的任意组合。转轮被齿轮连接起来,当一个转轮转动时,可以将一个字母转换成另一个字母。照此传递下去,当最后一个转轮处理完毕时,就可以得到加密后的字母。v为了使转轮密码更安全,人们还把几种转轮和移动齿轮结合起来,所有转轮以不同的速度转动,并且通过调整转轮上字母的位置和速度为破译设置更大的障碍。2/25/2022转轮机的工作原理v每一个旋转轮代表一个单表代换系统,旋转一个引脚,再转变为另一个单表代换系统。v为使机器更安全,可把几种转轮和移动的齿轮结合起来。因为所有转轮以不同的速度移动,n个转轮的机器的周期是26n,即个单表代换系统。v最后一个转轮转完一圈之后,它前面的转轮就旋转一个引脚,有点像时钟的齿轮。2/25/20222/25/2022转轮机的经典-ENIGMA v1918年,德国发明家Arthur Scherbius用二十世纪的电气技术来取代已经过时的铅笔加纸的加密方法。他研究的结果就是永远被尊为经典的ENIGMA。vENIGMA首先是作为商用加密机器得到应用的。它的专利在1918年在美国得到确认。售价大约相当于现在的30000美元。2/25/2022ENIGMA在二战中的传奇v二战中德国军队大约装备了三万台ENIGMA。在第二次世界大战开始时,德军通讯的保密性在当时世界上无与伦比。ENIGMA在纳粹德国二战初期的胜利中起到的作用是决定性的。2/25/2022精密的转轮2/25/2022破解ENIGMAv波兰人在1934年,研究出了破译ENIGMA的方法。v德国人在1938年底又对ENIGMA作了大幅度改进。v1939年7月25日,波兰情报部门邀请英国和法国的情报部门共商合作破译ENIGMA。v1939年7月,英国情报部门在伦敦以北约80公里的一个叫布莱奇利的地方征用了一所庄园。一个月后,鲜为人知的英国政府密码学校迁移到此。不久,一批英国数学家也悄悄来到这所庄园,破译恩尼格玛密码的工作进入了冲刺阶段。在这里刚开始时只有五百人,战争结束时已经增加到了七千人。v为了破译ENIGMA,英国人将国内最优秀的数学家悉数照进庄园。其中就有从剑桥来的图灵。正是他打破了ENIGMA不可战胜的神话。v虽然英国人成功的破译了ENIGMA,但是他们极好地隐藏了这一点,使得战争的进程大大加速。2/25/20222/25/20222/25/2022隐写术 Steganography v严格来说,隐写术并不是加密,而是隐藏。它们隐藏明文信息的存在,而密码学通过对文本信息的不同转换而实现信息对外的不可读。v同加密相比,隐写术有一些缺点,它需要许多额外的付出来隐蔽相对较少的信息。尽管采用一些上述的方案也许有效,但是一旦被破解,整个方案就毫无价值了。v它的优点是可以应用于通信双方宁愿他们的秘密通信被发现而不愿其中的重要内容丢失的情况。2/25/2022