编辑推荐
本书由教育部高等学校信息安全专业教学指导委员会、中国计算机学会教育专业委员会共同指导,为普通高等教育“十一五”*规划教材并获得教育部普通高等教育精品教材奖、中央网信办和教育部评选的国家网络安全优秀教材奖,符合《高等学校信息安全专业指导性专业规范》。
本书全面而深入地阐述了密码学理论及信息安全相关技术,将密码学理论与信息安全实践有机结合,是国内近年来出版的同类教材中的优秀教材和经典教材。全书整体结构合理,层次清晰,内容全面,深入浅出,不但收入了近年来国内外密码学理论和信息安全实践中*新的技术和研究成果,而且还特别注重理论联系实践,并符合教育部高等学校信息安全专业教学指导委员会编制的《高等学校信息安全专业指导性专业规范》,特别适合作为高等院校信息安全、信息对抗、计算机工程和通信工程等专业的本科生和研究生教材。本书的配套教材《网络安全实验教程(第2版)》(ISBN:978-7-302-28321-8)为普通高等教育“十一五”*规划教材,并被评为北京市精品教材。
本书自出版以来,已经多次再版和重印,累计发行逾2万册,深受广大师生和读者欢迎,100多所高校选用本书作为专业课教材,普遍反映该教材特色突出,教学效果很好。
内容简介
全书共分3篇15章。第1篇为网络安全基础,共3章,主要讨论网络安全的基础知识;第2篇为密码学基础,共5章,详细讨论各种密码算法和技术,特别深入地介绍我国已公布的标准密码算法;第3篇为网络安全技术与应用,共7章,深入介绍网络实践中常用的一些网络安全技术及产品。
本书内容丰富,概念清楚,语言精练。在网络安全基本知识和密码学理论的阐述上,力求深入浅出,通俗易懂;在网络安全技术与产品的讲解上,力求理论联系实际,面向具体应用。本书在每章的后面提供了思考题和练习题,以便于读者巩固所学的知识点;在书末也提供了大量的参考文献,便于有兴趣的读者继续深入学习有关内容。
本书可作为信息安全、信息对抗技术、密码学等专业的本科生教材,也可以用作网络空间安全一级学科的研究生教材。对于广大网络安全工程师、网络管理员和IT从业人员来说,本书也是很好的参考书和培训教材。
作者简介
作者:刘建伟、王育民
内页插图
目录
第1篇 网络安全基础
第1章 引言 3
1.1 对网络安全的需求 5
1.1.1 网络安全发展态势 5
1.1.2 敏感信息对安全的需求 6
1.1.3 网络应用对安全的需求 7
1.2 安全威胁与防护措施 7
1.2.1 基本概念 7
1.2.2 安全威胁的来源 8
1.2.3 安全防护措施 10
1.3 网络安全策略 11
1.3.1 授权 12
1.3.2 访问控制策略 12
1.3.3 责任 13
1.4 安全攻击的分类 13
1.4.1 被动攻击 13
1.4.2 主动攻击 14
1.5 网络攻击的常见形式 15
1.5.1 口令窃取 16
1.5.2 欺骗攻击 16
1.5.3 缺陷和后门攻击 17
1.5.4 认证失效 18
1.5.5 协议缺陷 19
1.5.6 信息泄漏 19
1.5.7 指数攻击——病毒和蠕虫 20
1.5.8 拒绝服务攻击 21
1.6 开放系统互连安全体系结构 22
1.6.1 安全服务 23
1.6.2 安全机制 25
1.6.3 安全服务与安全机制的关系 26
1.6.4 在OSI层中的服务配置 27
1.7 网络安全模型 27
习题 28
第2章 计算机网络基础 30
2.1 计算机网络的定义 30
2.2 计算机网络体系的结构 30
2.2.1 网络体系结构的定义 30
2.2.2 两种典型的网络体系结构 32
2.2.3 网络协议及协议封装 34
2.3 分组交换技术 35
2.3.1 分组交换技术的概念 35
2.3.2 分组交换的特点 35
2.4 Internet的基本知识 36
2.4.1 Internet的构成 36
2.4.2 服务类别 37
2.4.3 IPv4地址 37
2.4.4 端口的概念 40
习题 41
第3章 Internet协议的安全性 43
3.1 Internet协议概述 43
3.2 网际层协议 43
3.2.1 IP协议 43
3.2.2 ARP协议 45
3.2.3 ICMP协议 46
3.2.4 IGMP协议 47
3.2.5 OSPF协议 48
3.2.6 BGP协议 49
3.3 传输层协议 50
3.3.1 TCP协议 51
3.3.2 UDP协议 52
3.4 应用层协议 53
3.4.1 RIP协议 53
3.4.2 HTTP协议 54
3.4.3 TELNET协议 55
3.4.4 SSH协议 56
3.4.5 DNS协议 57
3.4.6 SMTP协议 58
3.4.7 MIME协议 60
3.4.8 POP3协议 60
3.4.9 IMAP4协议 61
3.4.10 PGP协议 63
3.4.11 FTP协议 64
3.4.12 TFTP协议 65
3.4.13 NFS协议 65
3.4.14 SNMP协议 66
3.4.15 DHCP协议 67
3.4.16 H.323协议 68
3.4.17 SIP协议 69
3.4.18 NTP协议 70
3.4.19 FINGER协议 71
3.4.20 Whois协议 72
3.4.21 LDAP协议 73
3.4.22 NNTP协议 74
习题 75
第2篇 密码学基础
第4章 单(私)钥密码体制 79
4.1 密码体制的定义 79
4.2 古典密码 80
4.2.1 代换密码 81
4.2.2 换位密码 83
4.2.3 古典密码的安全性 84
4.3 流密码的基本概念 85
4.3.1 流密码框图和分类 86
4.3.2 密钥流生成器的结构和分类 87
4.3.3 密钥流的局部统计检验 88
4.4 快速软、硬件实现的流密码算法 89
4.4.1 A5 89
4.4.2 加法流密码生成器 90
4.4.3 RC4 91
4.4.4 祖冲之密码 92
4.5 分组密码概述 98
4.6 数据加密标准 101
4.6.1 DES介绍 101
4.6.2 DES的核心作用:消息的随机非线性分布 103
4.6.3 DES的安全性 103
4.7 高级加密标准 104
4.7.1 Rijndael密码概述 105
4.7.2 Rijndael密码的内部函数 106
4.7.3 AES密码算法 109
4.7.4 AES的密钥扩展 111
4.7.5 AES对应用密码学的积极影响 112
4.8 中国商用分组密码算法SM4 113
4.8.1 SM4密码算法 113
4.8.2 SM4密钥扩展算法 116
4.8.3 SM4的安全性 117
4.9 分组密码的工作模式 117
4.9.1 电码本模式 118
4.9.2 密码分组链接模式 118
4.9.3 密码反馈模式 119
4.9.4 输出反馈模式 120
4.9.5 计数器模式 122
习题 122
第5章 双(公)钥密码体制 124
5.1 双钥密码体制的基本概念 125
5.1.1 单向函数 125
5.1.2 陷门单向函数 126
5.1.3 公钥系统 126
5.1.4 用于构造双钥密码的单向函数 126
5.2 RSA密码体制 128
5.2.1 RSA密码体制 129
5.2.2 RSA的安全性 130
5.2.3 RSA的参数选择 133
5.2.4 RSA体制应用中的其他问题 135
5.2.5 RSA的实现 135
5.3 ElGamal密码体制 136
5.3.1 密钥生成 136
5.3.2 加解密 136
5.3.3 安全性 136
5.4 椭圆曲线密码体制 137
5.4.1 实数域上的椭圆曲线 137
5.4.2 有限域Zp上的椭圆曲线 138
5.4.3 GF(2m)上的椭圆曲线 140
5.4.4 椭圆曲线密码 141
5.4.5 椭圆曲线的安全性 142
5.4.6 ECC的实现 143
5.4.7 当前ECC的标准化工作 143
5.4.8 椭圆曲线上的RSA密码体制 144
5.4.9 用圆锥曲线构造双钥密码体制 144
5.5 基于身份的密码体制 145
5.5.1 引言 145
5.5.2 双线性映射和双线性D-H假设 146
5.5.3 IBE方案 147
5.5.4 IBE方案的安全性 148
5.6 中国商用密码SM2算法 151
5.6.1 SM2椭圆曲线推荐参数 151
5.6.2 辅助函数 151
5.6.3 密钥生成 152
5.6.4 加密 152
5.6.5 解密 153
5.6.6 实例与应用 155
5.7 公钥密码体制的安全性分析 155
习题 157
第6章 消息认证与杂凑函数 159
6.1 认证函数 159
6.1.1 消息加密 159
6.1.2 消息认证码 163
6.1.3 杂凑函数 165
6.2 消息认证码 166
6.2.1 对MAC的要求 167
6.2.2 基于杂凑函数的MAC 168
6.2.3 基于分组加密算法的MAC 169
6.3 杂凑函数 169
6.3.1 单向杂凑函数 169
6.3.2 杂凑函数在密码学中的应用 170
6.3.3 分组迭代单向杂凑算法的层次结构 170
6.3.4 迭代杂凑函数的构造方法 171
6.3.5 应用杂凑函数的基本方式 172
6.4 常用杂凑函数 174
6.4.1 MD系列杂凑函数 174
6.4.2 SHA系列杂凑函数 178
6.4.3 中国商用杂凑函数SM3 181
6.5 HMAC 184
6.5.1 HMAC的设计目标 184
6.5.2 算法描述 185
6.5.3 HMAC的安全性 186
习题 187
第7章 数字签名 189
7.1 数字签名基本概念 189
7.2 RSA签名体制 190
7.2.1 体制参数 190
7.2.2 签名过程 191
7.2.3 验证过程 191
7.2.4 安全性 191
7.3 ElGamal签名体制 191
7.3.1 体制参数 191
7.3.2 签名过程 192
7.3.3 验证过程 192
7.3.4 安全性 192
7.4 Schnorr签名体制 193
7.4.1 体制参数 193
7.4.2 签名过程 193
7.4.3 验证过程 193
7.4.4 Schnorr签名与ElGamal签名的不同点 194
7.5 DSS签名标准 194
7.5.1 概况 194
7.5.2 签名和验证签名的基本框图 195
7.5.3 算法描述 195
7.5.4 DSS签名和验证框图 196
7.5.5 公众反应 196
7.5.6 实现速度 196
7.6 中国商用数字签名算法SM2 197
7.6.1 体制参数 197
7.6.2 签名过程 197
7.6.3 验证过程 198
7.6.4 签名实例 199
7.7 具有特殊功能的数字签名体制 200
7.7.1 不可否认签名 200
7.7.2 防失败签名 200
7.7.3 盲签名 201
7.7.4 群签名 201
7.7.5 代理签名 202
精彩书摘
第5章
双(公)钥密码体制
双钥(公钥)体制于1976年由W. Diffie和M. Hellman提出,同时R. Merkle也独立提出了这一体制。J. H. Ellis的文章阐述了公钥密码体制的发明史,说明了CESG的研究人员对双钥密码体制发明所做出的重要贡献。这一体制的*大特点是采用两个密钥将加密和解密能力分开:一个密钥公开作为加密密钥,称为公钥;一个密钥为用户专用,作为解密密钥,称为私钥。通信双方无须事先交换密钥就可进行保密通信。但是从公开的公钥或密文分析出明文或私钥,则在计算上是不可行的。若以公开钥作为加密密钥,以用户专用钥作为解密密钥,则可实现多个用户加密的消息只能由一个用户解读;反之,以用户专用钥作为加密密钥而以公开钥作为解密密钥,则可实现由一个用户加密的消息而使多个用户解读。前者可用于保密通信,后者可用于数字签名。这一体制的出现是密码学史上划时代的事件,它为解决计算机信息网中的安全提供了新的理论和技术基础。
自1976年以来,双钥体制有了飞速发展,人们不仅提出了多种算法,而且出现了不少安全产品,有些已用于NII和GII之中。本章介绍其中的一些主要体制,特别是那些既有安全性,又有实用价值的算法。其中,包括可用于密钥分配、加解密或数字签名的双钥算法。一个好的系统不仅算法要好,还要求能与其他部分(如协议等)进行有机 组合。
由于双钥体制的加密变换是公开的,任何人都可以采用选择明文来攻击双钥体制,因此,明文空间必须足够大才能防止穷尽搜索明文空间攻击。这在双钥体制应用中特别重要(如用双钥体制加密会话密钥时,会话密钥要足够长)。一种更强有力的攻击法是选择密文攻击,攻击者选择密文,然后通过某种途径得到相应的明文,多数双钥体制对于选择密文攻击特别敏感。攻击者通常采用两类选择密文攻击:
(1)冷漠选择密文攻击。在接收到待攻击的密文之前,可以向攻击者提供他们所选择的密文的解密结果。
(2)自适应选择密文攻击。攻击者可能利用(或接入)被攻击者的解密机(但不知其秘密钥),而可以对他所选择的、与密文有关的待攻击的密文,以及以前询问得到的密文进行解密。
本章介绍双钥体制的基本原理和几种重要算法,如RSA、ElGamal、椭圆曲线、基于身份的密码体制和中国商用密码SM2算法等密码算法。
Diffie [Diffie 1992]曾对双钥体制的发展做了全面论述。
双钥密码体制的基本概念
对于双钥密码体制来说,其安全性主要取决于构造双钥算法所依赖的数学问题。要求加密函数具有单向性,即求逆的困难性。因此,设计双钥体制的关键是首先要寻求一个合适的单向函数。
5.1.1 单向函数
定义 5-1 令函数f是集A到集B的映射,用表示。若对任意 ,有,则称f为单射,或1-1映射,或可逆的函数。
f为可逆的充要条件是,存在函数,使对所有有。
定义5-2 一个可逆函数,若它满足:
(1)对所有,易于计算。
(2)对“几乎所有”由求x“极为困难”,以至于实际上不可能做到,则称f为单向(One-Way)函数。
定义中的“极为困难”是对现有的计算资源和算法而言。Massey称此为视在困难性(Apparent Difficulty),相应函数称为视在单向函数,以此来与本质上的困难性(Essential Difficulty)相区分[Massey 1985]。
例5-1 令f是在有限域GF(p)中的指数函数,其中p是大素数,即
(5-1)
式中,,x为满足的整数,其逆运算是GF(p)中定义的对数运算,即
(5-2)
显然,由x求y是容易的,即使当p很大,例如时也不难实现。为方便计算,以下令(=2。所需的计算量为log次乘法,存储量为(log p)2b,例如时,需做100次乘法。利用高速计算机由x计算可在0.1ms内完成。但是相对于当前计算GF(p)中对数*好的算法,要从计算x所需的存储量大约为b,运算量大约为。当p=2100时,所需的计算量为次,用计算指数一样快的计算机进行计算需时约秒(1年=秒,故约为1600年。其中假定存储量的要求能够满足)。由此可见,当p很大时,GF(p)中的,为单向函数。
Pohlig和Hellman对(p-1)无大素因子时给出一种快速求对数的算法[Pohlig等 1978]。特别是当时,从求x的计算量仅需次乘法。对于,在高速计算机上大约仅需时10ms。因此,在这种情况下,就不能被认为是单向 函数。
综上所述,当对素数p,且p-1有大的素因子时,GF(p)上的函数是一个视在单向函数。寻求在GF(p)上求对数的一般快速算法是当前密码学研究中的一个重要课题。
5.1.2 陷门单向函数
单向函数是求逆困难的函数,而陷门单向函数(Trapdoor One-Way Function)是在不知陷门信息下求逆困难的函数,当知道陷门信息后,求逆易于实现。这是Diffie和Hellmam[Diffie等 1976]引入的有用概念。
号码锁在不知预设号码时很难打开,但若知道所设号码则容易开启。太平门是另一例,从里面向外出容易,若无钥匙者反向难进。但如何给陷门单向函数下定义则很棘手,因为:
(1)陷门函数其实不是单向函数,因为单向函数是在任何条件下求逆都是困难的。
(2)陷门可能不止一个,通过试验,一个个陷门就可容易地找到逆。如果陷门信息的保密性不强,求逆也就不难。
定义5-3 陷门单向函数是一类满足下述条件的单向函数:,,Z是陷门信息集。
(1)对所有,在给定z下容易找到一对算法和,使对所有,易于计算及其逆,即
(5-3)
(5-4)
而且当给定z后容易找到一种算法,称为可用消息集鉴别函数,对所有易于检验是否,是可用的明文集。
(2)对“几乎所有”,当只给定和时,对“几乎所有”,“很难”(即“实际上不可能”)从算出x。
(3)对任一z,集必须是保密系统中明文集中的一个“方便”集。即便于实现明文到它的映射(在双钥密码体制中是默认的条件)。(Diffie和Hellman定义的陷门函数中,,对所有Z成立。实际中的取决于Z)。
5.1.3 公钥系统
在一个公钥系统中,所有用户共同选定一个陷门单向函数,加密运算E及可用消息集鉴别函数F。用户i从陷门集中选定zi,并公开和。
网络安全——技术与实践(第3版)(网络空间安全重点规划丛书) 电子书 下载 mobi epub pdf txt