本書共18章,第1章和第2章為密碼學(xué)數(shù)學(xué)基礎(chǔ)的相關(guān)實驗;第3章為古典密碼算法相關(guān)實驗;第4章和第5章為對稱密碼算法相關(guān)實驗;第6章為偽隨機數(shù)算法相關(guān)實驗,其內(nèi)容服務(wù)于第7章和第8章的公鑰密碼算法實驗;第9章為Diffie-Hellman密鑰交換協(xié)議相關(guān)實驗;第10章為ECC算法相關(guān)實驗;第11章為SHA-1算法相關(guān)實驗;第12章為數(shù)字簽名算法相關(guān)實驗;第13~16章為國產(chǎn)密碼算法相關(guān)實驗;第17章為SM4算法的快速軟件實現(xiàn)方法;第18章為分組密碼算法的工作模式。本書不但可以作為網(wǎng)絡(luò)空間安全、密碼學(xué)科學(xué)與技術(shù)、信息安全、信息對抗技術(shù)、計算機科學(xué)與技術(shù)等專業(yè)的本科生、碩士生和博士生專業(yè)課程的配套實驗教材,而且可以作為信息安全工程師、密碼工程師的培訓(xùn)教材,為密碼學(xué)算法的實際部署提供一定指導(dǎo)。
郭華,博士,北京航空航天大學(xué)安全工程系主任。中國密碼學(xué)會會員、中國計算機學(xué)會會員。曾獲北京航空航天大學(xué)"藍天新秀獎”、教學(xué)成果三等獎、優(yōu)秀論文指導(dǎo)教師獎等?蒲蟹矫妫o緊圍繞國家網(wǎng)絡(luò)安全的戰(zhàn)略需求,圍繞區(qū)塊鏈、數(shù)字貨幣、密鑰管理、認證協(xié)議等當(dāng)前熱點問題展開研究,主持國家自然科學(xué)基金、教育部博士點基金、"十二五國家密碼發(fā)展基金”、科學(xué)研究與研究生培養(yǎng)共建項目等課題10余項。從事信息安全領(lǐng)域密碼協(xié)議的設(shè)計和分析等研究,在包括SCI期刊Information Sciences、Sensors、Computers & Security等國際知名期刊和國際會議發(fā)表高水平學(xué)術(shù)論文近40篇,其中以第一作者發(fā)表SCI檢索論文11篇;單篇文章被ISI數(shù)據(jù)庫他引59次,Google數(shù)據(jù)庫被引103次。已授權(quán)國家發(fā)明專利1項。
第1章 數(shù)論基礎(chǔ) 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 算法實現(xiàn)與測試 9
1.3.1 厄拉多塞篩算法實現(xiàn)與測試 10
1.3.2 歐幾里得算法實現(xiàn)與測試 10
1.3.3 快速冪取模算法實現(xiàn)與測試 11
1.3.4 中國剩余定理算法實現(xiàn)與測試 12
1.3.5 Miller-Rabin素性檢測算法實現(xiàn)與測試 13
1.4 思考題 13
第2章 有限域算術(shù) 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 算法實現(xiàn)與測試 22
2.3.1 有限域四則運算算法實現(xiàn)與測試 22
2.3.2 有限域歐幾里得算法實現(xiàn)與測試 22
2.3.3 有限域求乘法逆元算法實現(xiàn)與測試 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 算法實現(xiàn)與測試 38
3.3.1 柵欄密碼算法實現(xiàn)與測試 39
3.3.2 矩陣密碼算法實現(xiàn)與測試 39
3.3.3 單表代替密碼算法實現(xiàn)與測試 39
3.3.4 仿射密碼算法實現(xiàn)與測試 40
3.3.5 維吉尼亞密碼算法實現(xiàn)與測試 40
3.3.6 弗納姆密碼算法實現(xiàn)與測試 40
3.3.7 希爾密碼算法實現(xiàn)與測試 40
3.3.8 對m維希爾密碼的已知明文攻擊算法實現(xiàn)與測試 41
3.4 思考題 41
第4章 DES算法 42
4.1 算法原理 42
4.1.1 DES算法整體結(jié)構(gòu) 42
4.1.2 DES算法詳細結(jié)構(gòu) 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 算法實現(xiàn)與測試 51
4.3.1 輸入和輸出 51
4.3.2 中間數(shù)據(jù) 53
4.4 思考題 53
第5章 AES算法 54
5.1 算法原理 54
5.1.1 AES算法整體結(jié)構(gòu) 54
5.1.2 AES算法詳細結(jié)構(gòu) 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 算法實現(xiàn)與測試 64
5.3.1 輸入和輸出 65
5.3.2 中間數(shù)據(jù) 65
5.4 思考題 68
第6章 偽隨機數(shù)算法 69
6.1 算法原理 69
6.1.1 BBS算法 69
6.1.2 梅森旋轉(zhuǎn)算法 70
6.2 算法偽代碼 72
6.2.1 BBS算法偽代碼 72
6.2.2 梅森旋轉(zhuǎn)算法偽代碼 73
6.3 算法實現(xiàn)與測試 74
6.3.1 BBS算法實現(xiàn)與測試 74
6.3.2 梅森旋轉(zhuǎn)算法實現(xiàn)與測試 75
6.4 思考題 76
第7章 RC4算法 77
7.1 算法原理 77
7.1.1 流密碼 77
7.1.2 RC4算法詳細結(jié)構(gòu) 77
7.2 算法偽代碼 79
7.3 算法實現(xiàn)與測試 80
7.3.1 輸入和輸出 80
7.3.2 中間數(shù)據(jù) 81
7.3.3 無效置換和弱密鑰問題 82
7.4 思考題 82
第8章 RSA算法 83
8.1 算法原理 83
8.1.1 RSA算法整體結(jié)構(gòu) 83
8.1.2 RSA-OAEP算法 84
8.2 算法偽代碼 85
8.2.1 RSA算法偽代碼 86
8.2.2 RSA-OAEP算法偽代碼 87
8.3 算法實現(xiàn)與測試 90
8.3.1 RSA算法實現(xiàn)與測試 90
8.3.2 RSA-OAEP算法實現(xiàn)與測試 91
8.4 思考題 92
第9章 Diffie-Hellman密鑰交換協(xié)議 93
9.1 算法原理 93
9.1.1 Diffie-Hellman密鑰交換協(xié)議的原理 93
9.1.2 基于ECC的Diffie-Hellman密鑰交換協(xié)議 93
9.2 算法偽代碼 94
9.2.1 Diffie-Hellman密鑰交換協(xié)議偽代碼 95
9.2.2 基于ECC的Diffie-Hellman密鑰交換協(xié)議偽代碼 95
9.3 算法實現(xiàn)與測試 95
9.3.1 Diffie-Hellman密鑰交換協(xié)議實現(xiàn)與測試 96
9.3.2 基于ECC的Diffie-Hellman密鑰交換協(xié)議實現(xiàn)與測試 96
9.4 思考題 98
第10章 ECC算法 99
10.1 算法原理 99
10.1.1 基于ECC的加解密算法 100
10.1.2 基于ECC的數(shù)字簽名算法 100
10.2 算法偽代碼 101
10.2.1 橢圓曲線基礎(chǔ)運算算法偽代碼 101
10.2.2 密鑰生成算法偽代碼 103
10.2.3 基于ECC的加解密算法偽代碼 103
10.2.4 基于ECC的數(shù)字簽名算法偽代碼 104
10.3 算法實現(xiàn)與測試 105
10.3.1 基于ECC的加解密算法實現(xiàn)與測試 105
10.3.2 基于ECC的數(shù)字簽名算法實現(xiàn)與測試 106
10.4 思考題 107
第11章 SHA-1算法 108
11.1 算法原理 108
11.1.1 SHA-1算法整體結(jié)構(gòu) 108
11.1.2 SHA-1算法詳細結(jié)構(gòu) 109
11.2 算法偽代碼 111
11.2.1 雜湊算法偽代碼 111
11.2.2 消息填充算法偽代碼 112
11.2.3 字擴展算法偽代碼 112
11.2.4 輪函數(shù)偽代碼 113
11.2.5 邏輯函數(shù)偽代碼 113
11.3 算法實現(xiàn)與測試 114
11.4 思考題 120
第12章 數(shù)字簽名算法 121
12.1 算法原理 121
12.1.1 不帶消息恢復(fù)功能的RSA數(shù)字簽名算法 121
12.1.2 RSA-PSS數(shù)字簽名算法 122
12.1.3 ElGamal數(shù)字簽名算法 124
12.2 算法偽代碼 125
12.2.1 不帶消息恢復(fù)功能的RSA數(shù)字簽名算法偽代碼 125
12.2.2 RSA-PSS數(shù)字簽名算法偽代碼 126
12.2.3 ElGamal數(shù)字簽名算法偽代碼 128
12.3 算法實現(xiàn)與測試 130
12.3.1 不帶消息恢復(fù)功能的RSA數(shù)字簽名算法實現(xiàn)與測試 130
12.3.2 RSA-PSS數(shù)字簽名算法實現(xiàn)與測試 131
12.3.3 ElGamal數(shù)字簽名算法實現(xiàn)與測試 132
12.4 思考題 133
第13章 SM2算法 134
13.1 算法原理 134
13.2 算法偽代碼 137
13.2.1 密鑰生成算法偽代碼 137
13.2.2 加密算法偽代碼 137
13.2.3 解密算法偽代碼 138
13.3 算法實現(xiàn)與測試 139
13.3.1 方程參數(shù) 139
13.3.2 輸入和輸出 140
13.3.3 中間數(shù)據(jù) 141
13.4 思考題 142
第14章 SM4算法 143
14.1 算法原理 143
14.1.1 SM4算法整體結(jié)構(gòu) 143
14.1.2 SM4算法詳細結(jié)構(gòu) 144
14.2 算法偽代碼 146
14.2.1 密鑰擴展算法偽代碼 146
14.2.2 加密算法偽代碼 147
14.2.3 解密算法偽代碼 148
14.3 算法實現(xiàn)與測試 148
14.4 思考題 152
第15章 SM3算法 153
15.1 算法原理 153
15.1.1 SM3算法整體結(jié)構(gòu) 153
15.1.2 SM3算法詳細結(jié)構(gòu) 153
15.2 算法偽代碼 156
15.2.1 雜湊算法偽代碼 156
15.2.2 消息填充算法偽代碼 157
15.2.3 消息擴展算法偽代碼 157
15.2.4 壓縮算法偽代碼 157
15.3 算法實現(xiàn)與測試 158
15.4 思考題 161
第16章 ZUC算法 162
16.1 算法原理 162
16.2 算法偽代碼 164
16.2.1 LFSR算法偽代碼 164
16.2.2 比特重組算法偽代碼 165
16.2.3 非線性函數(shù)算法偽代碼 165
16.2.4 密鑰裝入算法偽代碼 166
16.2.5 生成密鑰字算法偽代碼 166
16.3 算法實現(xiàn)與測試 167
16.4 思考題 168
第17章 SM4算法快速軟件實現(xiàn) 169
17.1 SM4算法的S盒復(fù)合域優(yōu)化 169
17.2 算法偽代碼 170
17.2.1 SM4算法的S盒函數(shù)偽代碼 171
17.2.2 GF((2)4)2復(fù)合域求逆算法偽代碼 171
17.3 算法實現(xiàn)與測試 172
17.4 思考題 173
第18章 分組密碼算法的工作模式 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 算法實現(xiàn)與測試 185
18.3.1 ECB工作模式算法實現(xiàn)與測試 185
18.3.2 CBC工作模式算法實現(xiàn)與測試 186
18.3.3 CFB工作模式算法實現(xiàn)與測試 187
18.3.4 OFB工作模式算法實現(xiàn)與測試 188
18.3.5 CTR工作模式算法實現(xiàn)與測試 188
18.4 思考題 189