您好,欢迎访问三七文档
信息安全与应用密码学第一讲密码学基础第二讲数学背景第三讲密码协议第四讲报文鉴别与散列函数第五讲数据加密及密钥管理第六讲对称加密算法第七讲公开密钥算法第一讲密码学基础信息安全的含义通信保密(COMSEC):60-70年代信息保密信息安全(INFOSEC):80-90年代机密性、完整性、可用性、不可否认性等信息保障(IA):90年代-(80-90年代)•信息安全的三个基本方面–保密性Confidentiality即保证信息为授权者享用而不泄漏给未经授权者。–完整性Integrity•数据完整性,未被未授权篡改或者损坏•系统完整性,系统未被非授权操纵,按既定的功能运行–可用性Availability即保证信息和信息系统随时为授权者提供服务,而不要出现非授权者滥用却对授权者拒绝服务的情况。信息安全的其它方面–信息的不可否认性Non-repudiation:要求无论发送方还是接收方都不能抵赖所进行的传输。–鉴别Authentication鉴别就是确认实体是它所声明的。适用于用户、进程、系统、信息等。–审计Accountability确保实体的活动可被跟踪。–可靠性Reliability特定行为和结果的一致性。1基础知识1.1专业术语1.计算机安全:把设计用来保护数据、阻挡黑客的工具集合称为计算机安全.违反安全性的例子:(1)用户A传输一个文件到用户B,该文件包含了敏感的数据,这样数据必须加以保护以防泄密。没有被授权读取该文件的用户C可以能监视该传输过程,并在传输过程中截取了该副本。(机密性)(2)某网络管理员D在其管理下向一台计算机E传输一条消息,该消息指示计算机E更新一个授权文件,该文件包含了能够访问该计算机的一些新用户标识符。用户F中途截取了该消息,并且增加和删除一些项从而改变了该消息,然后将该消息转发给E。计算机E以为该消息是从管理者D接收的,因而更新了这个授权文件。(完整性)(3)用户F并没有中途阻止某消息,用户F构造了具有它自己希望内容的消息,并将该消息传输给E,好象该消息来自于管理员D。计算机E接收了以为来自于管理者D的消息并更新了它的授权文件。(鉴别性)(4)一个客户向一个股标代理商发出带有多个交易指示的消息。随后,该投资跌值,而该客户不承认发送了该消息。(抗抵赖性)2.消息和加密消息(message)被称为明文(plaintext).加密(encryption)用某种方法伪装消息以隐藏它的内容过程称为加密。被加密的消息称为密文(ciphertext),而把密文转变为明文的过程称为解密(decryption)明文加密密文解密原始明文密码编码学:使信息保密的技术和科学叫密码编码学(cryptography)。从事此行的叫密码编码者,密码分析者是从事密码分析的专业人员;密码分析学(cryptanalysis)就是破译密文的科学与技术,即揭穿伪装。明文用M表示,它可能是位序列、文本文件、位图、数字化的语音序列或数字化的视频图像等。对于计算机,M指简单的二进制数据密文用C表示,它亦是二进制数据。加密函数E作用于M得到密文C可用数学公式表示:E(M)=C解密函数D作用于C产生M:D(C)=M先加密后解密,原始明文将恢复,故有D(E(M))=M3.鉴别、完整性和抗抵赖性鉴别(authentication)消息的接受者应该能够确认消息的来源;入侵者不可能伪装成他人。完整性(integrity):消息的接受者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法的消息。抗抵赖性(nonrepudiation):发送者事后不可能虚假地否认他发送的消息。4.算法和密钥密码算法(algorithm)亦叫密码(cipher),是用于加密和解密的数学函数。通常情况下有两个相关的函数:一个用作加密,一个用作解密。如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。现代密码学用密钥解决问题,密钥用K表示。K可以是很多值里的任意值。密钥K的可能值的范围叫做密钥空间(keyspace)。如加密和解密都用一个密钥,加/解密函数变成:EK(M)=CDK(C)=MDK(EK(M))=M密码系统:由算法以及所有可能的明文、密文和密钥组成的。对称算法(symmetricalgorithm)有时叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来亦成立。在大多数对称算法中,加/解密密钥是相同的。这些算法亦叫秘密密钥算法或单密钥算法,它要求发送者和接受者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥。只要通信需要保密,密钥就必须保密。对称算法的加密和解密表示为:EK(M)=CDK(C)=M公开密钥算法公开密钥算法(public-keyalgorithm)亦称为非对称算法:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的时间内)。之所以叫公开密钥算法是因为加密密钥能够公开。加密密钥叫公开密钥,解密密钥叫私人密钥。5.对称算法基于密钥的算法通常分为两类:对称算法和公开密钥算法。密码算法分类(1)•按照保密的内容分:受限制的(restricted)算法:算法的保密性基于保持算法的秘密。基于密钥(key-based)的算法:算法的保密性基于对密钥的保密。密码算法分类(2)•基于密钥的算法,按照密钥的特点分类:对称密码算法(symmetriccipher):又称传统密码算法(conventionalcipher),就是加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个。又称秘密密钥算法或单密钥算法。非对称密钥算法(asymmetriccipher):加密密钥和解密密钥不相同,从一个很难推出另一个。又称公开密钥算法(public-keycipher)。•公开密钥算法用一个密钥进行加密,而用另一个进行解密.其中的加密密钥可以公开,又称公开密钥(publickey),简称公钥.解密密钥必须保密,又称私人密钥(privatekey)私钥.简称私钥。按照明文的处理方法:分组密码(blockcipher):将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。流密码(streamcipher):又称序列密码.序列密码每次加密一位或一字节的明文,也可以称为流密码。序列密码是手工和机械密码时代的主流对称密钥密码又可分为:分组密码:每次对一块数据加密,多数网络加密应用DES,IDEA,RC6,流密码:每次对一位或一字节加密手机One-timepadding公开密钥密码:大部分是分组密码,只有概率密码体制属于流密码。每次对一块数据加密数字签名,身份认证RSA,ECC,ElGamal加密解密速度慢7.密码分析密码编码学的目的是保持明文(或密钥、明文和密钥)的秘密以防止偷听者(对手、攻击者、入侵者)知道。密码分析学是在不知道密码的情况下,恢复明文的科学。对密码进行分析的尝试称为攻击。常用的密码分析攻击有四类:(1)唯密文攻击:密码分析者有一些消息的密文,这些消息都用同一加密算法加密。密码分析者的任务是恢复尽可能多的明文,或者最好是能推算出加密消息密钥来,以便能采用相同密钥解出其它被加密的信息。(2)已知明文攻击:密码分析者不仅可得到一些消息的密文,而且可以知道这些消息的明文。分析者的任务就是用加密信息推出用来加密的密钥或导出一个算法,此算法可以对用同一密钥加密的任何信息进行解密。(3)选择明文攻击:分析者不仅可得到一些消息的密文和相应的明文,而且他们亦可选择被加密的明文。(4)自适应密文攻击:这是选择明文攻击的特殊情况。密码分析者不仅能选择被加密的明文,而且亦能基于以前加密的结果修正这个选择。8.算法的安全性如果破译算法的代价大于加密数据价值,那么你是安全的。如果破译算法所需的时间比加密数据保密的时间长,那么你可能是安全的。1.2隐写术隐写术是将秘密消息隐藏在其他消息中,这样真正存在的信息被隐藏了。如发表一篇无关紧要的文章等。最近人们在图像中隐藏秘密的消息,用图像的每个字节的最不重要的位代替消息位,图像并没有发生多大的改变。1.3置换与替代在计算机出现前,密码学由基于字符的密码算法构成。不同的密码算法是字符之间互相之间换位(即置换)或者互相替代,好的密码算法结合了这两种方法,并且每次都进行多次运算。现在密码算法的主要变化是对比特而不是对字母进行变换,实际上这只是字母表长度上的改变,从26个元素变为2个元素。大多数好的密码算法仍然是置换和替代的组合。①置换密码置换是一种最基本的数学变换,每个置换都可以用一个整数序列来表示,例如:P=(2,1,4,3)表示这样一个置换:将位置1和位置2对调,同时将位置3和位置4对调。每个置换都有一个与之对应的逆置换。序列经过置换和其逆置换之后,将保持不变。有时置换与其逆置换可能在形式上是相同的,例如,上述P的逆置换也是Q=(2,1,4,3)。置换密码的核心是一个仅有发信方和收信方知道的秘密置换(加密)和其逆置换(解密)。加密过程是用加密置换去对明文消息进行置换。例如,明文取M=“置换密码”,则用P去加密后就得到密文C=“换置码密”。解密过程是用解密逆置换去对密文消息进行置换。例如,密文取C=“换置码密”,则用Q去解密后就得到明文取M=“置换密码”。置换密码的最大特点是明文和密文中所含的元素是相同的,仅仅是位置不同而已。置换密码虽然简单,而且还不很安全,但是许多现代密码体制中都或多或少地利用了置换方式。下面的简单纵行换位密码就应用了置换密码。明文以固定的宽度水平地写在一张图表纸上,密文按垂直方向读出,解密就是将密文按相同的宽度垂直地写在图表纸上,然后水平地读出明文。明文:COMPUTERGRAPHICSMAYBESLOWBUTATLEASTITSEXPENSIVECOMPUTERGRAPHICSMAYBESLOWBUTATLEASTITSEXPENSIVE密文:CAELPOPSEEMHLANPIOSSUCWTITSBIVEMUTERATSGYAERBTX②替代密码替代密码就是明文中每一个字符被替换成密文中的另外一个字符,接收者对密文进行逆替换以恢复明文。(1)简单替代密码(单字母替代密码):即明文的一个字符用相应的一个密文字符替代。著名的凯撒密码就是一种最简单的替代密码,它的每一个明文字符都由其右边第3个(模26)字符替代,如:A由D替代,B由E替代,W由Z替代,X由A替代,Y由B替代,Z由C替代等。凯撒密码实际上非常简单,因为其密文字符仅仅是明文字符的环移,并且不是任意置换。另一种简单替代密码是ROT13,它是Unix系统上的简单加密程序。在这种密码中,每一个字母是环移13所对应的字母,如:A被N替代,B被O替代等等。用ROT13加密文件两遍便恢复出原始明文:P=ROT13(ROT13(P))。简单替代密码没有掩盖明文中不同字母的出现频率,因而通过统计分析很容易破译它。(2)多名码替代密码:它与简单替代密码系统相似,惟一的不同是单个字符明文可以映射成密文的几个字符之一,例如A可能对应于5、13、25或56,“B”可能对应于7、19、31或42。多名码替代密码在1401年最早由DuchyMantua公司使用,要求明文中出现的每一个字母循环或随机使用它所对应的密文字符。这样,如果分配给每个字母的密文符号数目与该字母的统计频率成正比,那么单字母的频率信息就会完全被淹没。这使得多名码替代密码比简单替代密码更难破译,但它仍不能掩盖明文语言的所有统计特性,多字母的组合频率仍能保存在密文中,例如tion,ing等等。如果用已知明文攻击,破译这种密码非常容易,惟密文攻击要难一些,但在计算机上实现破译也只需几秒钟。(3)多字母替代密码:字符块被成组加密,例如“ABA”可能对应于“RTQ”,ABB可能对应于“SLL”等。这种方法是为了减少在密文中保留明文中结构的程度。Playfair密码和Hill密码就属于这一类。(4)多表替代密码:由多个简单的替代密码构成,例如,可能有5个不同的简单替代密码,分别用于替
本文标题:应用密码学
链接地址:https://www.777doc.com/doc-3634704 .html