前言 1
第1章 绪论 1
1.1 密码学的基本概念 1
1.2 密码体制的分类 5
1.3 密码学的发展历史 6
第2章 教学基础 8
2.1 数论基础 8
2.1.1 整除 8
2.1.2 素数 9
2.1.3 欧拉函数?(n) 9
2.1.4 最大公约数与最小公倍数 10
2.1.5 欧几里德(Euclid)算法 11
2.1.7 模运算 13
2.1.6 同余 13
2.1.8 逆 14
2.2 代数基础 14
2.2.1 群 14
2.2.2 有限域 16
2.3 计算复杂性理论基础 21
2.3.1 算法与问题 21
2.3.2 算法的复杂性 21
2.3.3 问题的复杂性 24
第3章 古典密码 26
3.1 易位密码 26
3.1.1 倒置法 26
3.1.2 方格易位法 26
3.2 代替密码 27
3.2.1 单表代替 27
3.2.2 多表代替 31
3.2.3 转轮加密算法 34
第4章 流密码 36
4.1 流密码概述 36
4.2 二元加法流密码 38
4.2.1 密钥流的性质 38
4.2.2 密钥流生成器的结构 39
4.2.3 基于LFSR的流密码模型 45
4.3 流密码算法介绍 47
4.3.1 A5算法 47
4.3.2 LFSR算法 48
第5章 分组密码 52
5.1 分组密码概述 52
5.1.1 分组密码 52
5.1.3 分组密码的分析 54
5.1.2 分组密码的设计 54
5.2 Feistel结构 55
5.3 分组密码的使用模式 57
5.3.1 电码本模式(ECB-Electronics Code Book) 57
5.3.2 密文分组链接模式(CBC-Cipher Block Chaining) 59
5.3.3 密文反馈模式(CFB-Cipher FeedBack) 62
5.3.4 输出反馈模式(OFB-Output FeedBack) 63
5.4 数据加密标准DES 64
5.4.1 DES算法描述 65
5.4.2 安全性 79
5.4.3 三重DES(3-DES,Triple DES或TDES) 82
5.5 数据加密算法IDEA 83
5.5.1 算法描述 83
5.5.2 安全性 88
5.6.1 RC5的参数 90
5.6.2 RC5的算法过程 90
5.6 RC5 90
5.6.3 安全性 93
5.7 AES(高级加密标准) 93
5.7.1 Rijndael密码设计原则与简要描述 95
5.7.2 AES算法的数学基础 95
5.7.3 AES算法过程 98
5.7.4 安全性及效率 110
第6章 公开密钥密码 111
6.1 公开密钥密码概述 111
6.2 基于大整数分解的公开密钥密码体制 113
6.2.1 RSA体制的有关数学背景 114
6.2.2 RSA体制的算法过程 115
6.2.3 RSA体制的实现 116
6.2.4 RSA实现的效率与安全性 121
6.3.1 对数与Zp上的离散对数问题 123
6.2.5 RSA体制实用中的一些问题 123
6.3 基于离散对数的公开密钥密码体制 123
6.3.2 Diffie-Hellman密钥交换协议 124
6.3.3 EIGamal体制 127
6.3.4 推广的离散对数问题及推广的EIGamal体制 128
6.4 基于椭圆曲线的公开密钥密码体制 129
6.4.1 椭圆曲线的有关数学背景 130
6.4.2 定义在椭圆曲线上的密码系统 132
第7章 单向散列(Hash)函数 136
7.1 单向散列函数概述 136
7.1.1 单向散列函数 136
7.1.2 单向散列函数的设计、构造 137
7.1.3 单向散列函数的攻击 138
7.2 MD5 139
7.2.1 设计目标 139
7.2.2 算法步骤 140
7.2.3 安全性 145
7.3 安全散列算法(SHA-1) 145
7.3.1 SHA的算法步骤 146
7.3.2 安全性 149
7.4 消息鉴别码 149
7.4.1 算法描述 150
7.4.2 安全性 151
第8章 数字签名 152
8.1 数字签名的基本概念 152
8.1.1 数字签名的基本概念 152
8.1.2 基于公开密钥密码体制的数字签名 153
8.2 RSA数字签名体制 155
8.2.1 算法描述 155
8.3.1 算法描述 156
8.3 EIGamal数字签名体制 156
8.2.2 安全性及其弱点 156
8.3.2 安全性 158
8.4 数字签名标准(DSS) 158
8.4.1 DSS的签名与验证过程 158
8.4.2 DSA算法描述 159
8.4.3 实现细节 161
8.4.4 安全性 161
第9章 密钥管理 163
9.1 密钥的组织结构和种类 163
9.1.1 密钥的组织结构 163
9.1.2 密钥的种类 165
9.2 密钥生成 166
9.3 密钥分配和密钥协商 168
9.3.1 密钥分配 168
9.3.2 密钥协商 175