1第9章网络安全基本内容两种密码体制的实现原理;加密技术以及应用。重点掌握网络安全问题概述、密码体制、报文鉴别、密钥分配、防火墙技术。29.1网络安全问题概述1.计算机网络面临的安全性威胁计算机网络上的通信面临以下的四种威胁:(1)截获——从网络上窃听他人的通信内容。(2)中断——有意中断他人在网络上的通信。(3)篡改——故意篡改网络上传送的报文。(4)伪造——伪造信息在网络上传送。截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击。3对网络的被动攻击和主动攻击截获篡改伪造中断被动攻击主动攻击目的站源站源站源站源站目的站目的站目的站4被动攻击和主动攻击在被动攻击中,攻击者只是观察和分析某一个协议数据单元PDU而不干扰信息流。主动攻击是指攻击者对某个连接中通过的PDU进行各种处理。更改报文流拒绝报文服务伪造连接初始化5(1)防止析出报文内容;(2)防止通信量分析;(3)检测更改报文流;(4)检测拒绝报文服务;(5)检测伪造初始化连接。计算机网络通信安全的目标6(1)计算机病毒——会“传染”其他程序的程序,“传染”是通过修改其他程序来把自身或其变种复制进去完成的。(2)计算机蠕虫——通过网络的通信功能将自身从一个结点发送到另一个结点并启动运行的程序。(3)特洛伊木马——一种程序,它执行的功能超出所声称的功能。(4)逻辑炸弹——一种当运行环境满足某种特定条件时执行其他特殊功能的程序。恶意程序(rogueprogram)72计算机网络安全的内容保密性安全协议的设计接入控制83一般的数据加密模型E加密算法D解密算法加密密钥K解密密钥K明文X明文X密文Y=EK(X)截取者截获篡改密钥源安全信道9一些重要概念密码编码学(cryptography)是密码体制的设计学,而密码分析学(cryptanalysis)则是在未知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为密码学(cryptology)。如果不论截取者获得了多少密文,但在密文中都没有足够的信息来惟一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在计算上是安全的。109.2常规密钥密码体制所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。这种加密系统又称为对称密钥系统。我们先介绍在常规密钥密码体制中的两种最基本的密码。111替代密码与置换密码替代密码(substitutioncipher)的原理可用一个例子来说明。(密钥是3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesarcipherFDHVDUFLSKHU明文密文明文c变成了密文F12abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesarcipherFDHVDUFLSKHU明文密文明文a变成了密文D13abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesarcipherFDHVDUFLSKHU明文密文明文e变成了密文H14CIPHER145326attackbeginsatfour置换密码置换密码(transpositioncipher)则是按照某一规则重新排列消息中的比特或字符顺序。密钥顺序明文根据英文字母在26个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有A和B,因此C为第1。同理,E为第2,H为第3,……,R为第6。于是得出密钥字母的相对先后顺序为145326。15CIPHER145326attackbeginsatfour密文的得出密钥顺序明文先读顺序为1的明文列,即aba16CIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为2的明文列,即cnu17CIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为3的明文列,即aio18CIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为4的明文列,即tet19CIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为5的明文列,即tgf20CIPHER145326attackbeginsatfour密文的得出密钥顺序明文最后读顺序为6的明文列,即ksr因此密文就是:abacnuaiotettgfksr21CIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文先写下第1列密文aba收到的密文:abacnuaiotettgfksr22CIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第2列密文cnu收到的密文:abacnuaiotettgfksr23CIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第3列密文aio收到的密文:abacnuaiotettgfksr24CIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第4列密文tet收到的密文:abacnuaiotettgfksr25CIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第5列密文tgf收到的密文:abacnuaiotettgfksr26CIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文最后写下第6列密文ksr收到的密文:abacnuaiotettgfksr27CIPHER145326attackbeginsatfour接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文:abacnuaiotettgfksr28CIPHER145326attackbeginsatfour接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文:abacnuaiotettgfksr29CIPHER145326attackbeginsatfour接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文:abacnuaiotettgfksr得出明文:attackbeginsatfour30序列密码序列码体制是将明文X看成是连续的比特流(或字符流)x1x2…,并且用密钥序列Kk1k2…中的第i个元素ki对明文中的xi进行加密,即E(X)E(x)E(x)Kk11k2231序列密码体制的保密性序列密码体制的保密性完全在于密钥的随机性。如果密钥是真正的随机数,则这种体制就是理论上不可破的。这也可称为一次一密乱码本体制。严格的一次一密乱码本体制所需的密钥量不存在上限,很难实用化。密码学家试图模仿这种一次一密乱码本体制。目前常使用伪随机序列作为密钥序列。关键是序列的周期要足够长,且序列要有很好的随机性(这很难寻找)。32分组密码它将明文划分成固定的n比特的数据组,然后以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文。这就是分组密码。分组密码一次变换一组数据。分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同。分组密码的一个重要优点是不需要同步33分组密码体制输入输出加密算法密钥明文输入输出解密算法密钥明文nbitnbitnbitnbit密文密文342数据加密标准DES数据加密标准DES属于常规密钥密码体制,是一种分组密码。在加密前,先对整个明文进行分组。每一个组长为64bit。然后对每一个64bit二进制数据进行加密处理,产生一组64bit密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥为64bit(实际密钥长度为56bit,有8bit用于奇偶校验)。35DES的明显缺点DES实际上就是一种单字符替代,而这种字符的长度是64bit。也就是说,对于DES算法,相同的明文就产生相同的密文。这对DES的安全性来说是不利的。为了提高DES的安全性,可采用加密分组链接的方法。36加密分组的链接X0Y0X1Y1X2Y2X3Y3X0Y0X1Y1X2Y2X3Y3……初始向量初始向量密钥密钥明文明文密文密文加密解密EEEEDDDD37DES的保密性DES的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译DES方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。DES是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。目前较为严重的问题是DES的密钥的长度。现在已经设计出来搜索DES密钥的专用芯片。38三重DES(TripleDES)三重DES使用两个密钥,执行三次DES算法。下图中的方框E和D分别表示执行加密和解密算法。因此加密时是E-D-E,解密时是D-E-D。EDEK1K2K1明文密文DEDK1K2K1密文明文加密解密399.3公开密钥密码体制1公开密钥密码体制的特点公开密钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。现有三种公开密钥密码体制,其中最著名的是RSA体制,它基于数论中大数分解问题的体制,由美国三位科学家Rivest,Shamir和Adleman于1976年提出并在1978年正式发表的。40加密密钥与解密密钥在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。41应当注意任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公开密钥密码体制并不具有比传统加密体制更加优越之处。由于目前公开密钥加密算法的开销较大,在可见的将来还看不出来要放弃传统的加密方法。公开密钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更为简单。42公开密钥算法的特点(1)发送者用加密密钥PK对明文X加密后,在接收者用解密密钥SK解密,即可恢复出明文,或写为:DSK(EPK(X))X(9-5)解密密钥是接收者专用的秘密密钥,对其他人都保密。此外,加密和解密的运算可以对调,即EPK(DSK(X))X43公开密钥算法的特点(2)加密密钥是公开的,但不能用它来解密,即DPK(EPK(X))X(9-6)(3)在计算机上可容易地产生成对的PK和SK。(4)从已知的PK实际上不可能推导出SK,即从PK到SK是“计算上不可能的”。(5)加密和解密算法都是公开的。44公开密钥密码体制接收者发送者E加密算法D解密算法加密密钥PK解密密钥SK明文X密文Y=EPK(X)密钥对产生源明文X=DSK(EPK(X))452RSA公开密钥密码体制RSA公开密钥密码体制所根据的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。每个用户有两个密钥:加密密钥PK{e,n}和解密密钥SK{d,n}。用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的d则保密。N为两个大素数p和q之积(素数p和q一般为100位以上的十进数),e和d满足一定的关系。当敌手已知e和n时并不能求出d。46加密算法若用整数X表示明文,用整数Y表示密文(X和Y均小于n),则加密和解密运算为:加密:YXemodn(9-7)解密:XYdmodn(9-8)473数字签名数字签名必须保证以下三点:(1)接收者能够核实发送者对报文的签名;(2)发送者事后不能抵赖对报文的签名;