內容簡介
本書避免孤立講述RSA算法及大量涉及到數論知識的離散對數等內容,也未提及具體的協定及怎樣攻擊別人的計算。本書以描述性為主,涉及少量的數學證。該教材全面講述了密碼學的大量基礎知識。本書中的許多章節內容超出了一學期的教學內容。
本書全面講解了密碼學基本知識以及相關的基礎數學理論,介紹了橢圓曲線、AES和量子密碼體制等密碼學前沿知識,詳細地闡述了數字簽名、數字現金等套用問題。另外,書中每章均給出了相應的習題,在附錄中給出了相關Mathematica、Maple和 MATLAB實例。
本書可供高等院校就用數學、通信和計算機等專業用作密碼學、通信安全和網路安全等課程的教材或參考書,也可供信息安全系統設計開發人員、密碼學和信息安全愛好者參考。
作品目錄
第1章密碼學及其套用概述1
1.1安全通信2
1.1.1可能的攻擊2
1.1.2對稱和公開密鑰算法3
1.1.3密鑰長度5
1.2密碼學套用6
第2章古典密碼體制8
2.1移位密碼8
2.2仿射密碼9
2.3Vigenère?密碼11
2.3.1發現密鑰長度12
2.3.2發現密鑰:第一種方法13
2.3.3發現密鑰:第二種方法15
2.4替換密碼16
2.5福爾摩斯密碼18
2.6Playfair和ADFGX密碼21
2.7分組密碼23
2.8二進制數和ASCII26
2.9一次一密27
2.10偽隨機序列生成28
2.11線性反饋移位暫存序列30
2.12Enigma34
2.13習題37
2.14上機題39
第3章基礎數論42
3.1基本概念42
3.1.1整除42
3.1.2素數43
3.1.3最大公約數(Greatest?Common?divisor)44
3.2求解ax+by=d46
3.3同餘47
3.3.1除法49
3.3.2求a-1(mod?n)50
3.3.3當gcd(a,n)=1時,解ax≡?c(mod?n)50
3.3.4如果gcd(a,n)>1怎么辦50
3.3.5分數的計算51
3.4中國剩餘定理51
3.5模的冪計算53
3.6費爾馬小定理和歐拉定理54
3.7本原根56
3.8模n逆矩陣57
3.9模n平方根58
3.10有限域59
3.10.1除法62
3.10.2LFSR序列64
3.11習題65
3.12上機題67
第4章數據加密標準69
4.1概述69
4.2一個簡單的類DES算法70
4.3微分密碼分析法72
4.3.1具有三輪循環的微分密碼分析法73
4.3.2具有四輪循環的微分密碼分析法75
4.4DES76
4.5操作模式82
4.5.1電子密碼本(ECB)82
4.5.2密碼分組鏈(CBC)82
4.5.3密碼反饋(CFB)83
4.6破解DES84
4.7口令的安全87
4.8習題88
第5章高級加密標準:Rijndael90
5.1基本算法90
5.2層91
5.2.1位元組轉換91
5.2.2移動行變換92
5.2.3混合列變換92
5.2.4加循環密鑰93
5.2.5密鑰計畫表93
5.2.6S-盒的構成94
5.3解密94
5.4設計中要考慮的問題96
第6章RSA算法98
6.1RSA算法98
6.2對RSA的攻擊101
6.3素數判定103
6.4因數分解106
6.5RSA挑戰110
6.6協定驗證上的套用111
6.7公鑰概念111
6.8習題113
6.9上機題115
第7章離散對數117
7.1離散對數117
7.2離散對數的計算118
7.2.1Pohlig-Hellman算法118
7.2.2指數微積分120
7.2.3模4離散對數的計算121
7.3比特約定122
7.4Elgamal公鑰體制123
7.5習題124
7.6上機題125
第8章數字簽名126
8.1RSA簽名126
8.2ElGamal簽名方案127
8.3散列函式129
8.4生日攻擊132
8.4.1簽名方案中的生日攻擊133
8.4.2基於離散對數的生日攻擊133
8.4.3雙重加密的中間相遇攻擊134
8.5數字簽名算法134
8.6習題136
8.7上機題137
第9章電子商務與數字現金139
9.1安全的電子交易139
9.2數字現金141
9.3習題145
第10章秘密共享方案146
10.1秘密分拆146
10.2門限方案146
10.3習題151
10.4上機題152
第11章搏弈153
11.1電話擲幣153
11.2電話撲克155
11.3習題158
第12章零知識證明159
12.1基本構成159
12.2Feige-Fiat-Shamir識別方案161
12.3習題162
第13章密鑰建立協定165
13.1密鑰協商協定165
13.2密鑰預分發167
13.3密鑰分發168
13.4公鑰基礎設施(PKI)171
13.5習題173
第14章資訊理論175
14.1機率回顧175
14.2熵177
14.3哈夫曼編碼180
14.4完全保密181
14.5英文的熵183
14.6習題187
第15章橢圓曲線189
15.1加法定律189
15.2模n橢圓曲線192
15.2.1模p點的數目193
15.2.2基於橢圓曲線的離散對數193
15.2.3表示明文194
15.3用橢圓曲線因數分解194
15.4特徵為2的橢圓曲線197
15.5橢圓曲線密碼體制199
15.5.1橢圓曲線ElGamal密碼體制199
15.5.2橢圓曲線Diffie-Hellman密鑰交換200
15.5.3ElGamal?數字簽名200
15.6習題201
15.7上機題203
第16章糾錯碼205
16.1緒論205
16.2糾錯碼209
16.3一般編碼的邊界條件212
16.3.1上邊界條件212
16.3.2下邊界條件213
16.3.3例子215
16.4線性碼216
16.5漢明碼221
16.6Golay碼222
16.7循環碼228
16.8BCH碼232
16.9Reed-Solomon?碼237
16.10McEliece密碼體制238
16.11其他問題240
16.12習題241
16.13上機題243
第17章密碼學中的量子技術244
17.1一個量子實驗244
17.2量子密鑰的分發246
17.3Shor算法248
17.3.1因數分解249
17.3.2離散的傅立葉變換249
17.3.3Shor的算法251
17.3.4連分數254
17.3.5結束語255
17.4習題255
附錄AMathematica實例257
A.1Mathematica入門257
A.2部分命令258
A.3第2章實例259
A.4第3章實例265
A.5第6章實例267
A.6第8章實例273
A.7第10章實例273
A.8第11章實例274
A.9第15章實例275
附錄BMaple實例279
B.1Maple入門279
B.2部分命令280
B.3第2章實例281
B.4第3章實例286
B.5第6章實例289
B.6第8章實例294
B.7第10章實例294
B.8第11章實例295
B.9第15章實例296
附錄CMATLAB實例300
C.1MATLAB入門300
C.2第2章實例304
C.3第3章實例314
C.4第6章實例317
C.5第8章實例321
C.6第10章實例321
C.7第11章實例322
C.8第15章實例324
附錄D進一步閱讀的建議330
參考文獻331