书籍详情
密码学实验教程(第2版)
作者:郭华,刘建伟,李大伟,关振宇
出版社:电子工业出版社
出版时间:2024-01-01
ISBN:9787121467509
定价:¥49.90
内容简介
本书共18章,第1章和第2章为密码学数学基础的相关实验;第3章为古典密码算法相关实验;第4章和第5章为对称密码算法相关实验;第6章为伪随机数算法相关实验,其内容服务于第7章和第8章的公钥密码算法实验;第9章为Diffie-Hellman密钥交换协议相关实验; 0章为ECC算法相关实验; 1章为SHA-1算法相关实验; 2章为数字签名算法相关实验; 3~16章为国产密码算法相关实验; 7章为SM4算法的快速软件实现方法; 8章为分组密码算法的工作模式。本书不但可以作为网络空间安全、密码学科学与技术、信息安全、信息对抗技术、计算机科学与技术等专业的本科生、硕士生和博士生专业课程的配套实验教材,而且可以作为信息安全工程师、密码工程师的培训教材,为密码学算法的实际部署提供一定指导。
作者简介
郭华,博士,北京航空航天大学安全工程系主任。中国密码学会会员、中国计算机学会会员。曾获北京航空航天大学\"蓝天新秀奖”、教学成果三等奖、 论文指导教师奖等。科研方面,紧紧围绕 网络安全的战略需求,围绕区块链、数字货币、密钥管理、认证协议等当前热点问题展开研究,主持 自然科学基金、 博士点基金、\"十二五 密码发展基金”、科学研究与研究生培养共建项目等课题10余项。从事信息安全领域密码协议的设计和分析等研究,在包括SCI期刊Information Sciences、Sensors、Computers & Security等 知名期刊和 会议发表高水平学术论文近40篇,其中以 作者发表SCI检索论文11篇;单篇文章被ISI数据库他引59次,Google数据库被引103次。已授权 发明专利1项。
目录
第1章 数论基础 1
1.1 算法原理 1
1.1.1 厄拉多塞筛算法 1
1.1.2 欧几里得算法 2
1.1.3 快速幂取模算法 3
1.1.4 中国剩余定理算法 4
1.1.5 Miller-Rabin素性检测算法 5
1.2 算法伪代码 6
1.2.1 厄拉多塞筛算法伪代码 7
1.2.2 欧几里得算法伪代码 7
1.2.3 快速幂取模算法伪代码 8
1.2.4 中国剩余定理算法伪代码 8
1.2.5 Miller-Rabin素性检测算法伪代码 9
1.3 算法实现与测试 9
1.3.1 厄拉多塞筛算法实现与测试 10
1.3.2 欧几里得算法实现与测试 10
1.3.3 快速幂取模算法实现与测试 11
1.3.4 中国剩余定理算法实现与测试 12
1.3.5 Miller-Rabin素性检测算法实现与测试 13
1.4 思考题 13
第2章 有限域算术 14
2.1 算法原理 14
2.1.1 有限域四则运算算法 14
2.1.2 有限域欧几里得算法 17
2.1.3 有限域求乘法逆元算法 18
2.2 算法伪代码 19
2.2.1 有限域四则运算算法伪代码 19
2.2.2 有限域欧几里得算法伪代码 20
2.2.3 有限域求乘法逆元算法伪代码 21
2.3 算法实现与测试 22
2.3.1 有限域四则运算算法实现与测试 22
2.3.2 有限域欧几里得算法实现与测试 22
2.3.3 有限域求乘法逆元算法实现与测试 23
2.4 思考题 23
第3章 古典密码算法 24
3.1 算法原理 24
3.1.1 置换密码 24
3.1.2 代替密码 26
3.2 算法伪代码 31
3.2.1 栅栏密码算法伪代码 31
3.2.2 矩阵密码算法伪代码 32
3.2.3 单表代替密码算法伪代码 34
3.2.4 仿射密码算法伪代码 34
3.2.5 维吉尼亚密码算法伪代码 35
3.2.6 弗纳姆密码算法伪代码 36
3.2.7 希尔密码算法伪代码 37
3.2.8 对m维希尔密码的已知明文攻击算法伪代码 38
3.3 算法实现与测试 38
3.3.1 栅栏密码算法实现与测试 39
3.3.2 矩阵密码算法实现与测试 39
3.3.3 单表代替密码算法实现与测试 39
3.3.4 仿射密码算法实现与测试 40
3.3.5 维吉尼亚密码算法实现与测试 40
3.3.6 弗纳姆密码算法实现与测试 40
3.3.7 希尔密码算法实现与测试 40
3.3.8 对m维希尔密码的已知明文攻击算法实现与测试 41
3.4 思考题 41
第4章 DES算法 42
4.1 算法原理 42
4.1.1 DES算法整体结构 42
4.1.2 DES算法详细结构 43
4.1.3 密钥选择 46
4.2 算法伪代码 47
4.2.1 密钥扩展算法伪代码 48
4.2.2 加密算法伪代码 48
4.2.3 解密算法伪代码 50
4.2.4 基本变换算法伪代码 50
4.3 算法实现与测试 51
4.3.1 输入和输出 51
4.3.2 中间数据 53
4.4 思考题 53
第5章 AES算法 54
5.1 算法原理 54
5.1.1 AES算法整体结构 54
5.1.2 AES算法详细结构 55
5.1.3 AES-192算法与AES-256算法 59
5.2 算法伪代码 60
5.2.1 密钥扩展算法伪代码 60
5.2.2 加密算法伪代码 61
5.2.3 解密算法伪代码 61
5.2.4 基本变换算法伪代码 62
5.3 算法实现与测试 64
5.3.1 输入和输出 65
5.3.2 中间数据 65
5.4 思考题 68
第6章 伪随机数算法 69
6.1 算法原理 69
6.1.1 BBS算法 69
6.1.2 梅森旋转算法 70
6.2 算法伪代码 72
6.2.1 BBS算法伪代码 72
6.2.2 梅森旋转算法伪代码 73
6.3 算法实现与测试 74
6.3.1 BBS算法实现与测试 74
6.3.2 梅森旋转算法实现与测试 75
6.4 思考题 76
第7章 RC4算法 77
7.1 算法原理 77
7.1.1 流密码 77
7.1.2 RC4算法详细结构 77
7.2 算法伪代码 79
7.3 算法实现与测试 80
7.3.1 输入和输出 80
7.3.2 中间数据 81
7.3.3 无效置换和弱密钥问题 82
7.4 思考题 82
第8章 RSA算法 83
8.1 算法原理 83
8.1.1 RSA算法整体结构 83
8.1.2 RSA-OAEP算法 84
8.2 算法伪代码 85
8.2.1 RSA算法伪代码 86
8.2.2 RSA-OAEP算法伪代码 87
8.3 算法实现与测试 90
8.3.1 RSA算法实现与测试 90
8.3.2 RSA-OAEP算法实现与测试 91
8.4 思考题 92
第9章 Diffie-Hellman密钥交换协议 93
9.1 算法原理 93
9.1.1 Diffie-Hellman密钥交换协议的原理 93
9.1.2 基于ECC的Diffie-Hellman密钥交换协议 93
9.2 算法伪代码 94
9.2.1 Diffie-Hellman密钥交换协议伪代码 95
9.2.2 基于ECC的Diffie-Hellman密钥交换协议伪代码 95
9.3 算法实现与测试 95
9.3.1 Diffie-Hellman密钥交换协议实现与测试 96
9.3.2 基于ECC的Diffie-Hellman密钥交换协议实现与测试 96
9.4 思考题 98
0章 ECC算法 99
10.1 算法原理 99
10.1.1 基于ECC的加解密算法 100
10.1.2 基于ECC的数字签名算法 100
10.2 算法伪代码 101
10.2.1 椭圆曲线基础运算算法伪代码 101
10.2.2 密钥生成算法伪代码 103
10.2.3 基于ECC的加解密算法伪代码 103
10.2.4 基于ECC的数字签名算法伪代码 104
10.3 算法实现与测试 105
10.3.1 基于ECC的加解密算法实现与测试 105
10.3.2 基于ECC的数字签名算法实现与测试 106
10.4 思考题 107
1章 SHA-1算法 108
11.1 算法原理 108
11.1.1 SHA-1算法整体结构 108
11.1.2 SHA-1算法详细结构 109
11.2 算法伪代码 111
11.2.1 杂凑算法伪代码 111
11.2.2 消息填充算法伪代码 112
11.2.3 字扩展算法伪代码 112
11.2.4 轮函数伪代码 113
11.2.5 逻辑函数伪代码 113
11.3 算法实现与测试 114
11.4 思考题 120
2章 数字签名算法 121
12.1 算法原理 121
12.1.1 不带消息恢复功能的RSA数字签名算法 121
12.1.2 RSA-PSS数字签名算法 122
12.1.3 ElGamal数字签名算法 124
12.2 算法伪代码 125
12.2.1 不带消息恢复功能的RSA数字签名算法伪代码 125
12.2.2 RSA-PSS数字签名算法伪代码 126
12.2.3 ElGamal数字签名算法伪代码 128
12.3 算法实现与测试 130
12.3.1 不带消息恢复功能的RSA数字签名算法实现与测试 130
12.3.2 RSA-PSS数字签名算法实现与测试 131
12.3.3 ElGamal数字签名算法实现与测试 132
12.4 思考题 133
3章 SM2算法 134
13.1 算法原理 134
13.2 算法伪代码 137
13.2.1 密钥生成算法伪代码 137
13.2.2 加密算法伪代码 137
13.2.3 解密算法伪代码 138
13.3 算法实现与测试 139
13.3.1 方程参数 139
13.3.2 输入和输出 140
13.3.3 中间数据 141
13.4 思考题 142
4章 SM4算法 143
14.1 算法原理 143
14.1.1 SM4算法整体结构 143
14.1.2 SM4算法详细结构 144
14.2 算法伪代码 146
14.2.1 密钥扩展算法伪代码 146
14.2.2 加密算法伪代码 147
14.2.3 解密算法伪代码 148
14.3 算法实现与测试 148
14.4 思考题 152
5章 SM3算法 153
15.1 算法原理 153
15.1.1 SM3算法整体结构 153
15.1.2 SM3算法详细结构 153
15.2 算法伪代码 156
15.2.1 杂凑算法伪代码 156
15.2.2 消息填充算法伪代码 157
15.2.3 消息扩展算法伪代码 157
15.2.4 压缩算法伪代码 157
15.3 算法实现与测试 158
15.4 思考题 161
6章 ZUC算法 162
16.1 算法原理 162
16.2 算法伪代码 164
16.2.1 LFSR算法伪代码 164
16.2.2 比特重组算法伪代码 165
16.2.3 非线性函数算法伪代码 165
16.2.4 密钥装入算法伪代码 166
16.2.5 生成密钥字算法伪代码 166
16.3 算法实现与测试 167
16.4 思考题 168
7章 SM4算法快速软件实现 169
17.1 SM4算法的S盒复合域优化 169
17.2 算法伪代码 170
17.2.1 SM4算法的S盒函数伪代码 171
17.2.2 GF((2)4)2复合域求逆算法伪代码 171
17.3 算法实现与测试 172
17.4 思考题 173
8章 分组密码算法的工作模式 174
18.1 算法原理 174
18.1.1 ECB工作模式 174
18.1.2 CBC工作模式 174
18.1.3 CFB工作模式 175
18.1.4 OFB工作模式 176
18.1.5 CTR工作模式 177
18.2 算法伪代码 178
18.2.1 ECB工作模式算法伪代码 179
18.2.2 CBC工作模式算法伪代码 180
18.2.3 CFB工作模式算法伪代码 181
18.2.4 OFB工作模式算法伪代码 183
18.2.5 CTR工作模式算法伪代码 184
18.3 算法实现与测试 185
18.3.1 ECB工作模式算法实现与测试 185
18.3.2 CBC工作模式算法实现与测试 186
18.3.3 CFB工作模式算法实现与测试 187
18.3.4 OFB工作模式算法实现与测试 188
18.3.5 CTR工作模式算法实现与测试 188
18.4 思考题 189
1.1 算法原理 1
1.1.1 厄拉多塞筛算法 1
1.1.2 欧几里得算法 2
1.1.3 快速幂取模算法 3
1.1.4 中国剩余定理算法 4
1.1.5 Miller-Rabin素性检测算法 5
1.2 算法伪代码 6
1.2.1 厄拉多塞筛算法伪代码 7
1.2.2 欧几里得算法伪代码 7
1.2.3 快速幂取模算法伪代码 8
1.2.4 中国剩余定理算法伪代码 8
1.2.5 Miller-Rabin素性检测算法伪代码 9
1.3 算法实现与测试 9
1.3.1 厄拉多塞筛算法实现与测试 10
1.3.2 欧几里得算法实现与测试 10
1.3.3 快速幂取模算法实现与测试 11
1.3.4 中国剩余定理算法实现与测试 12
1.3.5 Miller-Rabin素性检测算法实现与测试 13
1.4 思考题 13
第2章 有限域算术 14
2.1 算法原理 14
2.1.1 有限域四则运算算法 14
2.1.2 有限域欧几里得算法 17
2.1.3 有限域求乘法逆元算法 18
2.2 算法伪代码 19
2.2.1 有限域四则运算算法伪代码 19
2.2.2 有限域欧几里得算法伪代码 20
2.2.3 有限域求乘法逆元算法伪代码 21
2.3 算法实现与测试 22
2.3.1 有限域四则运算算法实现与测试 22
2.3.2 有限域欧几里得算法实现与测试 22
2.3.3 有限域求乘法逆元算法实现与测试 23
2.4 思考题 23
第3章 古典密码算法 24
3.1 算法原理 24
3.1.1 置换密码 24
3.1.2 代替密码 26
3.2 算法伪代码 31
3.2.1 栅栏密码算法伪代码 31
3.2.2 矩阵密码算法伪代码 32
3.2.3 单表代替密码算法伪代码 34
3.2.4 仿射密码算法伪代码 34
3.2.5 维吉尼亚密码算法伪代码 35
3.2.6 弗纳姆密码算法伪代码 36
3.2.7 希尔密码算法伪代码 37
3.2.8 对m维希尔密码的已知明文攻击算法伪代码 38
3.3 算法实现与测试 38
3.3.1 栅栏密码算法实现与测试 39
3.3.2 矩阵密码算法实现与测试 39
3.3.3 单表代替密码算法实现与测试 39
3.3.4 仿射密码算法实现与测试 40
3.3.5 维吉尼亚密码算法实现与测试 40
3.3.6 弗纳姆密码算法实现与测试 40
3.3.7 希尔密码算法实现与测试 40
3.3.8 对m维希尔密码的已知明文攻击算法实现与测试 41
3.4 思考题 41
第4章 DES算法 42
4.1 算法原理 42
4.1.1 DES算法整体结构 42
4.1.2 DES算法详细结构 43
4.1.3 密钥选择 46
4.2 算法伪代码 47
4.2.1 密钥扩展算法伪代码 48
4.2.2 加密算法伪代码 48
4.2.3 解密算法伪代码 50
4.2.4 基本变换算法伪代码 50
4.3 算法实现与测试 51
4.3.1 输入和输出 51
4.3.2 中间数据 53
4.4 思考题 53
第5章 AES算法 54
5.1 算法原理 54
5.1.1 AES算法整体结构 54
5.1.2 AES算法详细结构 55
5.1.3 AES-192算法与AES-256算法 59
5.2 算法伪代码 60
5.2.1 密钥扩展算法伪代码 60
5.2.2 加密算法伪代码 61
5.2.3 解密算法伪代码 61
5.2.4 基本变换算法伪代码 62
5.3 算法实现与测试 64
5.3.1 输入和输出 65
5.3.2 中间数据 65
5.4 思考题 68
第6章 伪随机数算法 69
6.1 算法原理 69
6.1.1 BBS算法 69
6.1.2 梅森旋转算法 70
6.2 算法伪代码 72
6.2.1 BBS算法伪代码 72
6.2.2 梅森旋转算法伪代码 73
6.3 算法实现与测试 74
6.3.1 BBS算法实现与测试 74
6.3.2 梅森旋转算法实现与测试 75
6.4 思考题 76
第7章 RC4算法 77
7.1 算法原理 77
7.1.1 流密码 77
7.1.2 RC4算法详细结构 77
7.2 算法伪代码 79
7.3 算法实现与测试 80
7.3.1 输入和输出 80
7.3.2 中间数据 81
7.3.3 无效置换和弱密钥问题 82
7.4 思考题 82
第8章 RSA算法 83
8.1 算法原理 83
8.1.1 RSA算法整体结构 83
8.1.2 RSA-OAEP算法 84
8.2 算法伪代码 85
8.2.1 RSA算法伪代码 86
8.2.2 RSA-OAEP算法伪代码 87
8.3 算法实现与测试 90
8.3.1 RSA算法实现与测试 90
8.3.2 RSA-OAEP算法实现与测试 91
8.4 思考题 92
第9章 Diffie-Hellman密钥交换协议 93
9.1 算法原理 93
9.1.1 Diffie-Hellman密钥交换协议的原理 93
9.1.2 基于ECC的Diffie-Hellman密钥交换协议 93
9.2 算法伪代码 94
9.2.1 Diffie-Hellman密钥交换协议伪代码 95
9.2.2 基于ECC的Diffie-Hellman密钥交换协议伪代码 95
9.3 算法实现与测试 95
9.3.1 Diffie-Hellman密钥交换协议实现与测试 96
9.3.2 基于ECC的Diffie-Hellman密钥交换协议实现与测试 96
9.4 思考题 98
0章 ECC算法 99
10.1 算法原理 99
10.1.1 基于ECC的加解密算法 100
10.1.2 基于ECC的数字签名算法 100
10.2 算法伪代码 101
10.2.1 椭圆曲线基础运算算法伪代码 101
10.2.2 密钥生成算法伪代码 103
10.2.3 基于ECC的加解密算法伪代码 103
10.2.4 基于ECC的数字签名算法伪代码 104
10.3 算法实现与测试 105
10.3.1 基于ECC的加解密算法实现与测试 105
10.3.2 基于ECC的数字签名算法实现与测试 106
10.4 思考题 107
1章 SHA-1算法 108
11.1 算法原理 108
11.1.1 SHA-1算法整体结构 108
11.1.2 SHA-1算法详细结构 109
11.2 算法伪代码 111
11.2.1 杂凑算法伪代码 111
11.2.2 消息填充算法伪代码 112
11.2.3 字扩展算法伪代码 112
11.2.4 轮函数伪代码 113
11.2.5 逻辑函数伪代码 113
11.3 算法实现与测试 114
11.4 思考题 120
2章 数字签名算法 121
12.1 算法原理 121
12.1.1 不带消息恢复功能的RSA数字签名算法 121
12.1.2 RSA-PSS数字签名算法 122
12.1.3 ElGamal数字签名算法 124
12.2 算法伪代码 125
12.2.1 不带消息恢复功能的RSA数字签名算法伪代码 125
12.2.2 RSA-PSS数字签名算法伪代码 126
12.2.3 ElGamal数字签名算法伪代码 128
12.3 算法实现与测试 130
12.3.1 不带消息恢复功能的RSA数字签名算法实现与测试 130
12.3.2 RSA-PSS数字签名算法实现与测试 131
12.3.3 ElGamal数字签名算法实现与测试 132
12.4 思考题 133
3章 SM2算法 134
13.1 算法原理 134
13.2 算法伪代码 137
13.2.1 密钥生成算法伪代码 137
13.2.2 加密算法伪代码 137
13.2.3 解密算法伪代码 138
13.3 算法实现与测试 139
13.3.1 方程参数 139
13.3.2 输入和输出 140
13.3.3 中间数据 141
13.4 思考题 142
4章 SM4算法 143
14.1 算法原理 143
14.1.1 SM4算法整体结构 143
14.1.2 SM4算法详细结构 144
14.2 算法伪代码 146
14.2.1 密钥扩展算法伪代码 146
14.2.2 加密算法伪代码 147
14.2.3 解密算法伪代码 148
14.3 算法实现与测试 148
14.4 思考题 152
5章 SM3算法 153
15.1 算法原理 153
15.1.1 SM3算法整体结构 153
15.1.2 SM3算法详细结构 153
15.2 算法伪代码 156
15.2.1 杂凑算法伪代码 156
15.2.2 消息填充算法伪代码 157
15.2.3 消息扩展算法伪代码 157
15.2.4 压缩算法伪代码 157
15.3 算法实现与测试 158
15.4 思考题 161
6章 ZUC算法 162
16.1 算法原理 162
16.2 算法伪代码 164
16.2.1 LFSR算法伪代码 164
16.2.2 比特重组算法伪代码 165
16.2.3 非线性函数算法伪代码 165
16.2.4 密钥装入算法伪代码 166
16.2.5 生成密钥字算法伪代码 166
16.3 算法实现与测试 167
16.4 思考题 168
7章 SM4算法快速软件实现 169
17.1 SM4算法的S盒复合域优化 169
17.2 算法伪代码 170
17.2.1 SM4算法的S盒函数伪代码 171
17.2.2 GF((2)4)2复合域求逆算法伪代码 171
17.3 算法实现与测试 172
17.4 思考题 173
8章 分组密码算法的工作模式 174
18.1 算法原理 174
18.1.1 ECB工作模式 174
18.1.2 CBC工作模式 174
18.1.3 CFB工作模式 175
18.1.4 OFB工作模式 176
18.1.5 CTR工作模式 177
18.2 算法伪代码 178
18.2.1 ECB工作模式算法伪代码 179
18.2.2 CBC工作模式算法伪代码 180
18.2.3 CFB工作模式算法伪代码 181
18.2.4 OFB工作模式算法伪代码 183
18.2.5 CTR工作模式算法伪代码 184
18.3 算法实现与测试 185
18.3.1 ECB工作模式算法实现与测试 185
18.3.2 CBC工作模式算法实现与测试 186
18.3.3 CFB工作模式算法实现与测试 187
18.3.4 OFB工作模式算法实现与测试 188
18.3.5 CTR工作模式算法实现与测试 188
18.4 思考题 189
猜您喜欢