第8章信息安全与密码学基础8.1基本要求通过本章学习,了解网络信息安全的基本原则和对策、密码学的基本知识和概念以及密码学的数学背景,掌握数据加密标准DES的基本思想和实现原理、公开密钥算法的体制、加密实现和在数字签名方面的应用。8.2学习要点8.2.1信息安全的要素信息安全主要包括以下五个要素:(1)保密性(Confidentiality):保证不向对信息资源没有存取权限的人泄漏信息内容。(2)完整性(Integrity):从信息资源生成到利用期间保证内容不被篡改。(3)可用性(Availability):对于信息资源有存取权限的人,任何时候都可以利用信息,(4)真实性(Authenticity):保证信息资源的真实性,具有认证功能。(5)责任追究性(Accountability):能够追踪信息资源什么时候被利用,谁在使用及怎样操作使用。8.2.2安全服务功能8.2.2.1对象认证安全服务该服务用于识别对象的身份或对身份的证实。8.2.2.2访问控制安全服务该服务提供一些防御措施,限制用户越权使用资源。访问控制可分为自主访问控制和强制型访问控制两类。8.2.2.3数据保密性安全服务该服务利用数据加密机制防止信息泄漏,信息加密可以有多种实现方法。8.2.2.4数据完整性安全服务该服务防止用户使用修改、复制、插入和删除等手段进行非法改信息,保证数据具有完整性。8.2.2.4抗抵赖性安全服务该服务是针对对方抵赖的防范措施,用来证实发生过的操作。可分为对发送方防抵赖和241
241 第 8 章 信息安全与密码学基础 8.1 基本要求 通过本章学习,了解网络信息安全的基本原则和对策、密码学的基本知识和概念以 及密码学的数学背景,掌握数据加密标准 DES 的基本思想和实现原理、公开密钥算法 的体制、加密实现和在数字签名方面的应用。 8.2 学习要点 8.2.1 信息安全的要素 信息安全主要包括以下五个要素: (1) 保密性(Confidentiality):保证不向对信息资源没有存取权限的人泄漏信息内容。 (2) 完整性(Integrity):从信息资源生成到利用期间保证内容不被篡改。 (3) 可用性(Availability):对于信息资源有存取权限的人,任何时候都可以利用信息。 (4) 真实性(Authenticity):保证信息资源的真实性,具有认证功能。 (5) 责任追究性(Accountability):能够追踪信息资源什么时候被利用,谁在使用及怎样 操作使用。 8.2.2 安全服务功能 8.2.2.1 对象认证安全服务 该服务用于识别对象的身份或对身份的证实。 8.2.2.2 访问控制安全服务 该服务提供一些防御措施,限制用户越权使用资源。访问控制可分为自主访问控制和强 制型访问控制两类。 8.2.2.3 数据保密性安全服务 该服务利用数据加密机制防止信息泄漏,信息加密可以有多种实现方法。 8.2.2.4 数据完整性安全服务 该服务防止用户使用修改、复制、插入和删除等手段进行非法篡改信息,保证数据具有 完整性。 8.2.2.4 抗抵赖性安全服务 该服务是针对对方抵赖的防范措施,用来证实发生过的操作。可分为对发送方防抵赖和
对递交方防抵赖,以及发生争执时进行仲裁与公证。8.2.3网络安全对策8.2.3.1严格的存取管理严格的存取管理能确保信息不向未授权者泄露,控制对数据的窃取和攻击。用户认证是用户计算机向网络存取时实施的安全技术,是进行适当的本地存取管理的关键技术。8.2.3.2采用加密技术加密是对机密性丧失和正确性丧失两种威胁的有效对策。正确使用加密技术,即使存取控制失败时,窃听者也不能破解信息的内容。加密方式主要分为对称密钥加密(即单钥体制,如DES)和公开密钥加密(即公钥体制,如RSA)两种。8.2.4密码学基本术语8.2.4.1明文(Plaintext)待加密的消息称为明文。8.2.4.2密文(Ciphertext)加密后的消息称为密文。8.2.4.3密码算法和密钥密码算法是用于加密和解密的数学函数。加密算法是对明文进行加密所采用的一组法则,解密算法是利用密钥将密文解密所采用的一组法则,加密和解密运算都受密钥的控制。8.2.5代替密码8.2.5.1简单代替密码明文的一个字符用相应的一个密文字符代替。8.2.5.2多名码代替密码与简单代替密码相似,不同的是单个字符明文可以映射成密文的几个字符之一。多名码代替密码比简单代替密码难破译,但仍不能掩盖明文语言的所有统计特性。用已知明文攻击,破译这种密码非常容易,唯密文攻击要难一些,但在计算机上只需几秒钟。8.2.5.3多字母代替密码字符块被成组加密。8.2.5.4多表代替密码242
242 对递交方防抵赖,以及发生争执时进行仲裁与公证。 8.2.3 网络安全对策 8.2.3.1 严格的存取管理 严格的存取管理能确保信息不向未授权者泄露,控制对数据的窃取和攻击。用户认证是 用户计算机向网络存取时实施的安全技术,是进行适当的本地存取管理的关键技术。 8.2.3.2 采用加密技术 加密是对机密性丧失和正确性丧失两种威胁的有效对策。正确使用加密技术,即使存取 控制失败时,窃听者也不能破解信息的内容。加密方式主要分为对称密钥加密(即单钥体制, 如 DES)和公开密钥加密(即公钥体制,如 RSA)两种。 8.2.4 密码学基本术语 8.2.4.1 明文(Plaintext) 待加密的消息称为明文。 8.2.4.2 密文(Ciphertext) 加密后的消息称为密文。 8.2.4.3 密码算法和密钥 密码算法是用于加密和解密的数学函数。加密算法是对明文进行加密所采用的一组法 则,解密算法是利用密钥将密文解密所采用的一组法则,加密和解密运算都受密钥的控制。 8.2.5 代替密码 8.2.5.1 简单代替密码 明文的一个字符用相应的一个密文字符代替。 8.2.5.2 多名码代替密码 与简单代替密码相似,不同的是单个字符明文可以映射成密文的几个字符之一。多名码 代替密码比简单代替密码难破译,但仍不能掩盖明文语言的所有统计特性。用已知明文攻击, 破译这种密码非常容易,唯密文攻击要难一些,但在计算机上只需几秒钟。 8.2.5.3 多字母代替密码 字符块被成组加密。 8.2.5.4 多表代替密码
多表代替密码由多个简单的代替密码构成,有多个单字母密钥,每一个密钥被用来加密一个明文字母。8.2.6密码学中的信息理论在密码学中,将用到两种疑义度。(1)对于给定密文,密钥的疑义度表示为(8.1)H(K|C)=-Zp(c,)Zp(k c,)log2 p(k c)(2)对于给定密文,明文的疑义度表示为(8.2)H(M|C)=-Zp(c,)Zp(m |c,)log2 p(m |c,)设明文摘为H(M),密钥熵为H(K),密文和明文的互信息为I(M;C)= H(M)- H(M|C)(8.3)密文和密钥的互信息为(8.4)I(K;C)= H(K)-H(K|C)对于合法的接收者,在已知密钥和密文的情况下提取明文信息,因此H(M|CK)=0(8.5)I(M;CK)= H(M)- H(M|CK)=H(M)(8.6)从(8.3)式和(8.4)式可知,H(MC)和H(KC)越大,窃听者从密文能够提取的有关明文和密钥的信息就越小。由于 H(K|C)+H(MKC)= H(M|C)+H(K|MC)≥ H(M|C)即H(K|C)≥H(M|C)(8.7)式(8.7)说明已知密文后,密钥的疑义度总是大于等于明文的疑义度。又因为H(K)≥H(KC)≥H(MC),则I(M;C)= H(M)-H(M|C)≥H(M)-H(K)(8.8)式(8.8)说明,保密系统的密钥量越少,密钥H(K)就越小,其密文包含的关于明文的信息量I(M;C)就越大。8.2.7数据加密标准(DES)243
243 多表代替密码由多个简单的代替密码构成,有多个单字母密钥,每一个密钥被用来加密 一个明文字母。 8.2.6 密码学中的信息理论 在密码学中,将用到两种疑义度。 (1) 对于给定密文,密钥的疑义度表示为 2 ( ) ( ) ( )log ( ) j ij ij j i H KC pc pk c pk c (8.1) (2) 对于给定密文,明文的疑义度表示为 2 ( ) ( ) ( )log ( ) j ij ij j i H MC pc pm c pm c (8.2) 设明文熵为 H M( ) ,密钥熵为 H K( ) ,密文和明文的互信息为 I( ;) ( ) ( ) MC HM HMC (8.3) 密文和密钥的互信息为 I(;) () ( ) KC H K H KC (8.4) 对于合法的接收者,在已知密钥和密文的情况下提取明文信息,因此 H M CK ( )0 (8.5) I(; ) () ( ) () M CK H M H M CK H M (8.6) 从(8.3)式和(8.4)式可知, HMC ( ) 和 H KC ( )越大,窃听者从密文能够提取的有关 明文和密钥的信息就越小。 由于 H K C H M KC H M C H K MC H M C ()( )( )( )( ) 即 H KC H MC ()( ) (8.7) 式(8.7)说明已知密文后,密钥的疑义度总是大于等于明文的疑义度。 又因为 H K H KC H MC () ( ) ( ) ,则 I( ;) ( ) ( ) ( ) () MC HM HMC HM HK (8.8) 式(8.8)说明,保密系统的密钥量越少,密钥熵 H K( ) 就越小,其密文包含的关于明文的 信息量 I( ;) M C 就越大。 8.2.7 数据加密标准(DES)
8.2.7.1DES算法概要DES是一种分组加密算法,以64比特为数据分组单位。明文、密文和密钥数据分组长度均为64比特,其中有效密钥56位,8比特奇偶校验,DES是一个对称算法,加密和解密用同一算法。DES的整个体制是公开的,系统的安全性依赖于密钥,其中有极少量的数被认为是弱密钥,要避免使用。8.2.7.2DES算法的主要过程1)初始置换初始置换在第一轮运算之前执行,置换规则参考教材内容,此表按照从左到右、从上到下的顺序读。即将输入的第58位置换到第1位输出,第50位置换到第2位输出,依此类推。2)密钥置换16个子密钥K,、K,、、Ki6由同一密钥源循环移位产生,64比特中所有8的倍数位是奇偶校验位,因此DES密钥由64位减至56位。具体置换规则参考教材内容。3)扩展置换扩展置换将R,从32位扩展到48位,运算改变了位的次序,重复了某些位。这个操作有两个方面的目的。第一,产生与密钥同长度的数据以进行异或运算;第二,提供了更长的结果,使得替代运算时能进行压缩。4)S盒替代替代加密简称S盒,其输出信息序列是输入信息序列的替代。扩展分组与子密钥异或的48比特输出,送入8个S盒进行替代运算。S盒是非线性的,它比其它任何步骤提供了更好的安全性。5)P盒置换P盒即换位盒,其作用是把每一输入位映射到输出位,任一位不能被映射两次,也不能被略去。6)逆初始置换8.2.8RSA公开密钥算法8.2.8.1加密原理RSA公钥密码通过三个数e,d,n来实现。244
244 8.2.7.1 DES 算法概要 DES 是一种分组加密算法,以 64 比特为数据分组单位。明文、密文和密钥数据分组长 度均为 64 比特,其中有效密钥 56 位,8 比特奇偶校验。 DES 是一个对称算法,加密和解密用同一算法。DES 的整个体制是公开的,系统的安 全性依赖于密钥,其中有极少量的数被认为是弱密钥,要避免使用。 8.2.7.2 DES 算法的主要过程 1)初始置换 初始置换在第一轮运算之前执行,置换规则参考教材内容,此表按照从左到右、从上 到下的顺序读。即将输入的第 58 位置换到第 1 位输出,第 50 位置换到第 2 位输出,依此类 推。 2)密钥置换 16 个子密钥 K1 、 K2 、.、 K16 由同一密钥源循环移位产生,64 比特中所有 8 的倍数 位是奇偶校验位,因此 DES 密钥由 64 位减至 56 位。具体置换规则参考教材内容。 3)扩展置换 扩展置换将 Ri 从 32 位扩展到 48 位,运算改变了位的次序,重复了某些位。这个操作 有两个方面的目的。第一,产生与密钥同长度的数据以进行异或运算;第二,提供了更长的 结果,使得替代运算时能进行压缩。 4) S 盒替代 替代加密简称 S 盒,其输出信息序列是输入信息序列的替代。扩展分组与子密钥异或 的 48 比特输出,送入 8 个 S 盒进行替代运算。 S 盒是非线性的,它比其它任何步骤提供了 更好的安全性。 5) P 盒置换 P 盒即换位盒,其作用是把每一输入位映射到输出位,任一位不能被映射两次,也不 能被略去。 6)逆初始置换 8.2.8 RSA 公开密钥算法 8.2.8.1 加密原理 RSA 公钥密码通过三个数e,d ,n 来实现
加密函数:y=x(modn)解密函数:x=y(modn)式中,x为明文,y为密文,(e,n)为公开密钥,(d,n)为私人密钥。8.2.8.2RSA的安全性RSA的安全性基于大数分解的难度。所以,RSA需采用足够大的整数。因子分解越困难,密码就越难以破译,加密强度就越高。其公开密钥和私人密钥是一对大素数的函数。从一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积。8.2.9数字签名数字签名是信息安全系统必不可少的组成部分,用以确保:接收者可以确认发送者的身份;发送者以后不能否认发送过文件:接收者自己不能伪造该文件。数字签名是建立在密码学基础之上,但传统密码学无法满足数字签名的要求。然而将一般的公钥加密方法稍作修改,就可以起到数字签名的作用。其中,f(e,n)、f,(d,n)表示用户A的公开密钥和私人密钥,f(e,n)、fs(d,n)表示用户B的公开密钥和私人密钥。数字签名过程如下:(1)A用自已的私人密钥计算签名,由于在何人包括B不知道A的私钥,所以不能伪造该签名。(2)A用B的公开密钥再次加密签名。(3)B用自己的私人密钥解密消息。(4)B用A的公开密钥解密,认证密文的来源。245
245 加密函数: (mod ) e y x n 解密函数: (mod ) d x y n 式中, x 为明文, y 为密文,(, ) e n 为公开密钥,(,) d n 为私人密钥。 8.2.8.2 RSA 的安全性 RSA 的安全性基于大数分解的难度。所以,RSA 需采用足够大的整数。因子分解越困 难,密码就越难以破译,加密强度就越高。其公开密钥和私人密钥是一对大素数的函数。从 一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积。 8.2.9 数字签名 数字签名是信息安全系统必不可少的组成部分,用以确保:接收者可以确认发送者的身 份;发送者以后不能否认发送过文件;接收者自己不能伪造该文件。 数字签名是建立在密码学基础之上,但传统密码学无法满足数字签名的要求。然而将 一般的公钥加密方法稍作修改,就可以起到数字签名的作用。其中, (, ) Af e n 、 (,) Af d n 表 示用户 A 的公开密钥和私人密钥, (, ) Bf e n 、 (,) Bf d n 表示用户 B 的公开密钥和私人密钥。 数字签名过程如下: (1) A 用自己的私人密钥计算签名,由于任何人包括 B 不知道 A 的私钥,所以不能伪 造该签名。 (2) A 用 B 的公开密钥再次加密签名。 (3) B 用自己的私人密钥解密消息。 (4) B 用 A 的公开密钥解密,认证密文的来源