计算机网络第9章计算机网络的安全第9章计算机网络的安全*9.1网络安全问题概述9.1.1计算机网络面临的安全性威胁9.1.2计算机网络安全的内容9.1.3一般的数据加密模型*9.2常规密钥密码体制9.2.1替代密码与置换密码9.2.2数据加密标准DES第9章计算机网络的安全(续)*9.3公开密钥密码体制9.3.1公开密钥密码体制的特点9.3.2RSA公开密钥密码体制9.3.3数字签名*9.4报文鉴别9.1网络安全问题概述9.1.1计算机网络面临的安全性威胁计算机网络上的通信面临以下的四种威胁:(1)截获——从网络上窃听他人的通信内容。(2)中断——有意中断他人在网络上的通信。(3)篡改——故意篡改网络上传送的报文。(4)伪造——伪造信息在网络上传送。截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击。对网络的被动攻击和主动攻击截获篡改伪造中断被动攻击主动攻击目的站源站源站源站源站目的站目的站目的站被动攻击和主动攻击在被动攻击中,攻击者只是观察和分析某一个协议数据单元PDU而不干扰信息流。主动攻击是指攻击者对某个连接中通过的PDU进行各种处理。更改报文流拒绝报文服务伪造连接初始化(1)防止析出报文内容;(2)防止通信量分析;(3)检测更改报文流;(4)检测拒绝报文服务;(5)检测伪造初始化连接。计算机网络通信安全的目标有可能发生分组丢失(1)计算机病毒——会“传染”其他程序的程序,“传染”是通过修改其他程序来把自身或其变种复制进去完成的。(2)计算机蠕虫——通过网络的通信功能将自身从一个结点发送到另一个结点并启动运行的程序。(3)特洛伊木马——一种程序,它执行的功能超出所声称的功能。(4)逻辑炸弹——一种当运行环境满足某种特定条件时执行其他特殊功能的程序。恶意程序(rogueprogram)9.1.2计算机网络安全的内容保密性安全协议的设计接入控制9.1.3一般的数据加密模型E加密算法D解密算法加密密钥K解密密钥K明文X明文X密文Y=EK(X)截取者截获篡改密钥源安全信道一些重要概念密码编码学(cryptography)是密码体制的设计学,而密码分析学(cryptanalysis)则是在未知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为密码学(cryptology)。如果不论截取者获得了多少密文,但在密文中都没有足够的信息来惟一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在计算上是安全的。9.2常规密钥密码体制所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。这种加密系统又称为对称密钥系统。我们先介绍在常规密钥密码体制中的两种最基本的密码。9.2.1替代密码与置换密码替代密码(substitutioncipher)的原理可用一个例子来说明。(密钥是3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesarcipherFDHVDUFLSKHU明文密文明文c变成了密文F9.2.1替代密码与置换密码替代密码(substitutioncipher)的原理可用一个例子来说明。(密钥是3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesarcipherFDHVDUFLSKHU明文密文明文a变成了密文D9.2.1替代密码与置换密码替代密码(substitutioncipher)的原理可用一个例子来说明。(密钥是3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesarcipherFDHVDUFLSKHU明文密文明文e变成了密文HCIPHER145326attackbeginsatfour置换密码置换密码(transpositioncipher)则是按照某一规则重新排列消息中的比特或字符顺序。密钥顺序明文根据英文字母在26个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有A和B,因此C为第1。同理,E为第2,H为第3,……,R为第6。于是得出密钥字母的相对先后顺序为145326。CIPHER145326attackbeginsatfour置换密码置换密码(transpositioncipher)则是按照某一规则重新排列消息中的比特或字符顺序。密钥顺序明文根据英文字母在26个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有A和B,因此C为第1。同理,E为第2,H为第3,……,R为第6。于是得出密钥字母的相对先后顺序为145326。CIPHER145326attackbeginsatfour置换密码置换密码(transpositioncipher)则是按照某一规则重新排列消息中的比特或字符顺序。密钥顺序明文根据英文字母在26个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有A和B,因此C为第1。同理,E为第2,H为第3,……,R为第6。于是得出密钥字母的相对先后顺序为145326。CIPHER145326attackbeginsatfour置换密码置换密码(transpositioncipher)则是按照某一规则重新排列消息中的比特或字符顺序。密钥顺序明文根据英文字母在26个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有A和B,因此C为第1。同理,E为第2,H为第3,……,R为第6。于是得出密钥字母的相对先后顺序为145326。CIPHER145326attackbeginsatfour置换密码置换密码(transpositioncipher)则是按照某一规则重新排列消息中的比特或字符顺序。密钥顺序明文根据英文字母在26个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有A和B,因此C为第1。同理,E为第2,H为第3,……,R为第6。于是得出密钥字母的相对先后顺序为145326。CIPHER145326attackbeginsatfour置换密码置换密码(transpositioncipher)则是按照某一规则重新排列消息中的比特或字符顺序。密钥顺序明文根据英文字母在26个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有A和B,因此C为第1。同理,E为第2,H为第3,……,R为第6。于是得出密钥字母的相对先后顺序为145326。CIPHER145326attackbeginsatfour密文的得出密钥顺序明文先读顺序为1的明文列,即abaCIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为2的明文列,即cnuCIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为3的明文列,即aioCIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为4的明文列,即tetCIPHER145326attackbeginsatfour密文的得出密钥顺序明文再读顺序为5的明文列,即tgfCIPHER145326attackbeginsatfour密文的得出密钥顺序明文最后读顺序为6的明文列,即ksr因此密文就是:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文先写下第1列密文aba收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第2列密文cnu收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第3列密文aio收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第4列密文tet收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文再写下第5列密文tgf收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端收到密文后按列写下密钥顺序明文最后写下第6列密文ksr收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文:abacnuaiotettgfksrCIPHER145326attackbeginsatfour接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文:abacnuaiotettgfksr得出明文:attackbeginsatfour序列密码与分组密码序列码体制是将明文X看成是连续的比特流(或字符流)x1x2…,并且用密钥序列Kk1k2…中的第i个元素ki对明文中的xi进行加密,即E(X)E(x)E(x)Kk11k22序列密码体制密钥序列产生器种子I0发端ki密钥序列产生器种子I0收端ki密文序列明文序列明文序列xixiyiyi在开始工作时种子I0对密钥序列产生器进行初始化。按照模2进行运算,得出:yE(x)xkikiiii(9-1)序列密码体制密钥序列产生器种子I0发端ki密钥序列产生器种子I0收端ki密文序列明文序列明文序列xixiyiyi在收端,对yi的解密算法为:(9-2)D(y)yk(xk)kxkiiiiiiii序列密码又称为密钥流密码。序列密码体制的保密性序列密码体制的保密性完全在于密钥的随机性。如果密钥是真正的随机数,则这种体制就是理论上不可破的。这也可称为一次一密乱码本体制。严格的一次一密乱码本体制所需的密钥量不存在上限,很难实用化。密码学家试图模仿这种一次一密乱码本体制。目前常使用伪随机序列作为密钥序列。关键是序列的周期要足够长,且序列要有很好的随机性(这很难寻找)。分组密码它将明文划分成固定的n比特的数据组,然后以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文。这就是分组密码。分组密码一次变换一组数据。分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同。分组密码的一个重要优点是不需要同步分组密码体制输入输出加密算法密钥明文输入输出解密算法密钥明文nbitnbitnbitnbit密文密文9.2.2数据加密标准DES数据加密标准DES属于常规密钥密码体制,是一种分组密码。在加密前,先对整个明文进行分组。每一个组长为64bit。然后对每一个64bit二进制数据进行加密处理,产生一组64bit密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥为64bit(实际密钥长度为56bit,有8bit用于奇偶校验)。DES加密标准L0R0L1=R0IPL2=R1L15=R14R1=L0f(R0,K1)R2=L1f(R1,K2)R15=L14f(R14,K15)L16=R15R16=L15f(R15,K16)IP1fff输出密文Y(64bit)明文X(64bit)输入K16(48bit)K2(48bit)K1(48bit)X0的左半边(32bit)X0(64bit)X0的右半边(32bit)R16L16(64bit)DES的明显缺点