第1章 引言 1
1.1密码学的发展概况 1
1.2保密系统 2
1.3密码体制 3
1.4密码分析 3
1.5密码体制的安全性 5
习题 6
第2章 古典密码 7
2.1古典密码中的基本加密运算 7
2.1.1单表古典密码中的基本加密运算 7
2.1.2多表古典密码中的基本加密运算 8
2.2几种典型的古典密码体制 10
2.2.1几种典型的单表古典密码体制 10
2.2.2几种典型的多表古典密码体制 10
2.3古典密码的统计分析 15
2.3.1单表古典密码的统计分析 15
2.3.2多表古典密码的统计分析 20
习题 25
第3章 Shannon理论 26
3.1密码体制的数学模型 26
3.2熵及其性质 28
3.3伪密钥和唯一解距离 35
3.4密码体制的完善保密性 39
3.5乘积密码体制 42
习题 44
第4章 分组密码 45
4.1分组密码的基本原理 45
4.2分组密码的结构 47
4.2.1Feistel网络 47
4.2.2SP网络 49
4.3数据加密标准DES 49
4.3.1DES加密算法 49
4.3.2DES的解密过程 55
4.3.3DES的安全性 56
4.4多重DES 56
4.4.1双重DES 56
4.4.2三重DES 58
4.5高级加密标准AES 58
4.5.1AES的数学基础 59
4.5.2AES的输入输出和中间状态 63
4.5.3AES的加密过程 65
4.5.4密钥扩展 69
4.5.5AES的解密过程 70
4.6分组密码的工作模式 73
习题 79
第5章 公钥密码 82
5.1公钥密码的理论基础 82
5.2RSA公钥密码 83
5.2.1中国剩余定理 83
5.2.2Euler函数 86
5.2.3Euler定理和Fermat小定理 88
5.2.4RSA公钥密码体制 90
5.2.5RSA的安全性讨论 92
5.2.6模n求逆的算法 92
5.2.7模n的大数幂乘的快速算法 95
5.2.8因子分解 95
5.3大素数的生成 96
5.3.1素数的分布 97
5.3.2模奇素数的平方剩余 98
5.3.3Legendre符号 99
5.3.4Jacobi符号 102
5.3.5Solovay-Strassen素性测试法 106
5.3.6Miller-Rabin素性测试法 108
5.4EIGamal公钥密码 110
5.4.1EIGamal公钥密码体制 110
5.4.2EIGamal公钥密码体制的安全性 112
5.4.3有限域上离散对数的计算方法 112
5.5椭圆曲线上的Menezes-Vanstone公钥密码 118
5.5.1椭圆曲线的定义 118
5.5.2实数域上椭圆曲线的图像 120
5.5.3实数域上椭圆曲线点的加法运算 122
5.5.4实数域上椭圆曲线点的加法运算的性质 125
5.5.5有限域上的椭圆曲线 126
5.5.6有限域上的椭圆曲线的性质 128
5.5.7椭圆曲线上的离散对数问题 129
5.5.8Menezes-Vanstone公钥密码体制 129
习题 131
第6章 序列密码与移位寄存器 133
6.1序列密码的基本原理 133
6.2移位寄存器与移位寄存器序列 134
6.3线性移位寄存器的表示 137
6.4线性移位寄存器序列的周期性 139
6.5线性移位寄存器的序列空间 140
6.6线性移位寄存器序列的极小多项式 143
6.7m序列的伪随机性 148
6.8B-M算法与序列的线性复杂度 153
6.9线性移位寄存器的非线性组合 156
习题 158
第7章 数字签名 160
7.1基于公钥密码的数字签名 160
7.2EIGamal签名方案 162
7.3数字签名标准DSS 163
7.4基于离散对数问题的一般数字签名方案 165
习题 167
第8章 Hash函数 168
8.1Hash函数的性质 168
8.2基于分组密码的Hash函数 169
8.3Hash函数MD4 171
8.4安全Hash算法SHA 175
习题 177
第9章 密码协议 179
9.1密钥分配与密钥协商 179
9.1.1密钥分配 180
9.1.2密钥协商 183
9.2秘密分享 186
9.2.1Shamir的(t,w)门限方案 187
9.2.2(t,w)门限方案中的密钥重建 187
9.2.3利用Lagrange插值公式重建(t,w)门限方案中的密钥 190
9.3身份识别 191
9.4零知识证明 193
习题 196
主要参考文献 198