本書系統(tǒng)介紹了密碼學的主要知識,共6章:古典密碼、序列密碼、分組密碼、Hash函數(shù)、公鑰密碼和密碼協(xié)議。本書內(nèi)容全面,實例豐富,論述深入淺出,注重探究式講授,將密碼學中的設(shè)計與分析、理論與實踐、基礎(chǔ)與拓展等內(nèi)容有機結(jié)合,最小限度地介紹數(shù)學概念,并將其隨遇隨講地寓于各類型密碼算法的介紹之中。
本書凝聚了作者多年教學經(jīng)驗和教研成果,可作為高等院校密碼科學與技術(shù)、信息安全、網(wǎng)絡(luò)空間安全及相關(guān)專業(yè)的本科生和研究生教材,也可作為密碼與信息安全專業(yè)人員的參考書。
以密碼通信的實際需求和現(xiàn)實問題為出發(fā)點,采用探究式、研究性講授方式,啟發(fā)和引導學生積極思考與探索解決問題的思路和方法。
通過經(jīng)典密碼算法被破譯的現(xiàn)實,引導學生思考如何提升經(jīng)典密碼算法的計算復雜度,從而提高密碼算法的破譯難度或抗攻擊能力。
通過密碼算法的破譯、改進和完善過程,學生可以認識到密碼算法的安全性是建立在嚴格的數(shù)學理論基礎(chǔ)之上的,以提升對理論基礎(chǔ)研究重要性的認知。
將密碼學中的設(shè)計與分析、理論與實踐、基礎(chǔ)與拓展等內(nèi)容有機結(jié)合,最小限度地介紹數(shù)學概念。
配套提供電子課件、微課視頻、習題答案、教學大綱、教案、源代碼。
21世紀以來,隨著信息技術(shù)的飛速發(fā)展,高等教育教學理念發(fā)生了重大變化,培養(yǎng)具有創(chuàng)新精神和創(chuàng)新能力的高素質(zhì)人才成為時代共識,為了培養(yǎng)具有創(chuàng)新精神與創(chuàng)新能力的密碼和信息安全高素質(zhì)人才,本書編者根據(jù)多年從事密碼學課程教學和科研實踐的心得與體會,嘗試編寫一部能體現(xiàn)探究式、研究性教學理念的密碼學教材《密碼學教程》。
本書遵循密碼理論和技術(shù)發(fā)展的歷史脈絡(luò),以歷史 上幾個重要時期的通信安全問題為切入點,引導學生分析問題、研究問題,不斷探究解決問題的方法和思路,順其自然地引入密碼學的基礎(chǔ)概念、基本理論、科學方法和科學原理。與市面上已出版的同類教材相比,本書具有如下特點。
一是以密碼通信的需求為導向。以密碼通信的實際需求和現(xiàn)實問題為出發(fā)點,采用探究式、研究性講授方式,啟發(fā)和引導學生積極思考與探索解決問題的思路和方法,從而使學生接觸密碼學基本概念和簡單的加/解密方法,再通過提出新的需求和問題來啟發(fā)與引導學生完善已有解決方案。比如,第1章古典密碼以古代戰(zhàn)爭中需要傳遞秘密消息這一實際問題為出發(fā)點,通過介紹斯巴達人和凱撒大帝傳遞秘密消息的方法,引入古典密碼的基本思想,并啟發(fā)學生提出自己的加/解密新方法。
二是以密碼破譯的現(xiàn)實為動力。通過經(jīng)典密碼算法被破譯的現(xiàn)實,引導學生思考如何提升經(jīng)典密碼算法的計算復雜度,從而提高密碼算法的破譯難度或抗攻擊能力,由此深化學生對相關(guān)數(shù)學理論的學習和研究,并嘗試將新的數(shù)學方法或原理引入密碼算法的設(shè)計之中,從而形成更加安全的密碼算法。比如,第1章通過分析古典密碼的密文特點,引導學生思考古典密碼存在的安全缺陷,并針對這些安全缺陷思考如何破譯古典密碼,以及如何提高古典密碼的安全性。
三是以重視密碼理論研究為根本。通過密碼算法的破譯、改進和完善過程,學生可以認識到密碼算法的安全性是建立在嚴格的數(shù)學理論基礎(chǔ)之上的,以提升對理論基礎(chǔ)研究重要性的認知。比如,隨著機械和電子技術(shù)的發(fā)展,加/解密技術(shù)進入機械電子密碼時代,此時通過介紹以圖靈為代表的密碼專家對德國恩尼格瑪密碼機的破解,引導學生分析、思考古典密碼終結(jié)的根本原因,再通過介紹香農(nóng)《保密系統(tǒng)的通信理論》的核心思想,學生可以認識到密碼技術(shù)由文字變換技法走向科學的必然性和必要性,從而提升對理論基礎(chǔ)研究重要性的根本認知。
上面僅以古典密碼為例說明了本書的寫作特點,實際上本書中其他類型的密碼介紹也同樣體現(xiàn)和遵循了這些特點。同時,本書在內(nèi)容安排上注重凝練和與時俱進,標有*的為選學內(nèi)容。
密碼學中的攻防矛盾推動著密碼學不斷發(fā)展,這些是天然的課程思政素材。本書將這些素材有機地融入愛國主義、辯證思維、克服困難的意志品質(zhì)的培養(yǎng)之中,做到立德樹人與專業(yè)知識并重。
全書共6章,分別是古典密碼、序列密碼、分組密碼、Hash 函數(shù)、公鑰密碼和密碼協(xié)議。本書由國務(wù)院政府特殊津貼專家、北京市教學名師毛明教授負責總體設(shè)計、策劃組織、部分章節(jié)編寫和全書審稿。李夢東教授負責第4章、第5章和第6章6.6節(jié)的編寫,并負責全書的統(tǒng)稿。歐海文教授負責第2章的編寫,李艷俊副教授負責第3章的編寫,張艷碩副教授負責第6章6.1~6.5節(jié)的編寫,謝惠琴和王克老師負責第1章的編寫,謝絨娜教授負責各章的知識脈絡(luò)梳理和小結(jié),劉冰、孫瑩、辛紅彩、季福磊和魯小娟老師參與有關(guān)章節(jié)的整理、編寫和校對工作。
本書于2023年8月完成初稿,以講義形式供學生試用。根據(jù)試用情況和反饋意見,李夢東教授對初稿的部分章節(jié)進行了改寫和修訂,并增加了各章的應(yīng)用示例。張艷碩、王克、謝惠琴、季福磊、魯小娟、王彩冰、董有恒和刁嘉文老師參與了部分內(nèi)容編寫、全書修訂、習題解答和校對工作。
本書凝結(jié)了多位教授長期從事密碼學課程教學的經(jīng)驗和新研究成果,適合作為高等院校密碼科學與技術(shù)、信息安全、網(wǎng)絡(luò)空間安全等專業(yè)的本科生和研究生教材,也可作為從事密碼設(shè)計與分析、信息安全和網(wǎng)絡(luò)空間安全等相關(guān)工程技術(shù)人員的參考用書。
陳小明、楊亞濤、史國振、孟璀教授等審閱了全書,并提出了許多寶貴建議和意見,在此一并表示衷心感謝!
由于水平所限,錯誤和不當之處在所難免,歡迎廣大讀者和專家批評指正。
毛明,北京電子科技學院原校長。北京市教學名師,國務(wù)院政府特殊津貼獲得者,博士生導師,第三屆全國高等學校教學研究會常務(wù)理事,高等學校管理科學與工程類專業(yè)教學指導委員會保密管理專業(yè)教學指導分委員會委員。主要從事密碼理論與技術(shù)方面的教學、研究與開發(fā)工作。主持或作為主要完成人完成了國家專項科研理論及工程項目多項,承擔省部級教改課題7項。獲得省部級獎7項。主編計算機軟件及信息安全專業(yè)類著作20余部,其中高等學校教材4部,北京市精品教材1部,在核心期刊發(fā)表學術(shù)論文20余篇。作為導師,培養(yǎng)碩士研究生20余名、博士研究生4名。主講密碼學、密碼工作概論等課程。
前言
第1章 古典密碼 1
1.1 源遠流長的保密通信 1
1.1.1 隱符隱書與密碼棒 1
1.1.2 加密與解密 2
1.2 置換密碼及其破解方法 4
1.2.1 置換密碼的數(shù)學描述 4
1.2.2 置換密碼的蠻力破解 5
1.3 代替密碼及其破解方法 6
1.3.1 凱撒密碼 6
1.3.2 代替密碼的數(shù)學描述 7
1.3.3 代替密碼的頻率破解 9
1.3.4 漢字加/解密方法字典密碼 9
1.4 Vigenere密碼及其破解方法 12
1.4.1 Vigenere密碼 12
1.4.2 多表代替密碼的數(shù)學描述 14
1.4.3 Vigenere密碼的分析破解 15
1.5 二戰(zhàn)中的秘密武器轉(zhuǎn)輪 密碼機 19
1.5.1 轉(zhuǎn)輪密碼機設(shè)計原理 19
1.5.2 恩尼格瑪密碼機 21
1.5.3 紫色密碼機 23
1.6 香農(nóng)保密通信理論概要 23
1.6.1 完全保密的密碼體制 23
1.6.2 計算安全的密碼體制 26
1.7 相關(guān)的數(shù)學概念和算法 27
1.7.1 同余 27
1.7.2 代數(shù)結(jié)構(gòu) 28
1.7.3 歐幾里得算法 29
應(yīng)用示例:中途島戰(zhàn)役中選擇明文 攻擊 30
小結(jié) 30
習題 31
參考文獻 32
第2章 序列密碼 33
2.1 序列密碼的起源 33
2.1.1 產(chǎn)生與明文一樣長的密鑰 33
2.1.2 密鑰序列的偽隨機化 35
2.2 線性反饋移位寄存器(LFSR) 35
2.2.1 LFSR的工作原理 35
2.2.2 n-LFSR的有理表示 37
2.2.3* 退化的LFSR情況 40
2.3 m序列的偽隨機性 41
2.3.1 隨機性和偽隨機性的特性指標 42
2.3.2 m序列的偽隨機性證明 42
2.4 對偶移位寄存器(DSR) 44
2.4.1 DSR的性質(zhì) 44
2.4.2 DSR的狀態(tài)更新過程 45
2.5 LFSR序列的線性綜合解和 非線性綜合 47
2.5.1 Berlekamp-Massey算法 47
2.5.2 LFSR輸出序列的非線性綜合 49
2.5.3 針對序列密碼的攻擊 51
2.6 序列密碼的著名算法 52
2.6.1 A5算法 52
2.6.2 RC4算法 54
2.6.3* NESSIE和eSTREAM項目中的序列密碼 55
2.6.4 我國序列密碼商密標準ZUC算法 57
2.7 KG的統(tǒng)計測試方法 62
2.7.1 一般統(tǒng)計測試原理 62
2.7.2 常見的統(tǒng)計測試 64
應(yīng)用示例:移動通信中的序列密碼 67
小結(jié) 68
習題 68
參考文獻 69
第3章 分組密碼 70
3.1 分組密碼概述 70
3.1.1 分組密碼與序列密碼的區(qū)別 70
3.1.2 香農(nóng)提出的擴散和混淆準則 71
3.2 國際上第一個密碼標準DES 73
3.2.1 Feistel結(jié)構(gòu) 74
3.2.2 數(shù)據(jù)加密標準(DES) 75
3.2.3 DES的破譯與安全性增強措施 81
3.3 IDEA和MISTY算法 85
3.3.1 LM結(jié)構(gòu)和IDEA 85
3.3.2 MISTY結(jié)構(gòu)和MISTY1算法 88
3.4 高級加密標準(AES) 91
3.4.1 NIST征集高級加密標準 91
3.4.2 AES算法 91
3.4.3 AES的優(yōu)勢 98
3.5 我國商用密碼標準SM4 99
3.5.1 我國分組算法標準SM4 99
3.5.2 SM4的特點與優(yōu)勢 101
3.6 輕量級分組密碼算法的興起 103
3.6.1 更節(jié)儉的應(yīng)用需求 103
3.6.2 標準算法PRESENT 105
3.7 分組密碼的工作模式 107
3.7.1 電碼本(ECB)模式 107
3.7.2 密碼分組鏈接(CBC)模式 108
3.7.3 輸出反饋(OFB)模式 109
3.7.4 密文反饋(CFB)模式 110
3.7.5 計數(shù)器(CTR)模式 111
應(yīng)用示例:分組密碼算法在云端存儲中的應(yīng)用 112
小結(jié) 112
習題 113
參考文獻 114
第4章 Hash函數(shù) 115
4.1 消息的完整性及可靠性 115
4.1.1 消息認證的現(xiàn)實需求 115
4.1.2 電子文檔的指紋生成器Hash函數(shù) 117
4.2 Hash函數(shù)的設(shè)計與實現(xiàn) 120
4.2.1 Hash函數(shù)設(shè)計方法 120
4.2.2 Hash函數(shù)的一般實現(xiàn)過程 123
4.3 Hash算法標準的誕生與演變 125
4.3.1 早期的Hash算法標準 127
4.3.2 摘要長度的不斷擴展 131
4.3.3 針對MD5/SHA-1等的攻擊 133
4.3.4 針對MD結(jié)構(gòu)的攻擊方法 136
4.4 Hash算法的新標準 139
4.4.1 NIST的SHA-3 139
4.4.2 我國商密標準SM3 142
4.4.3 針對新標準算法的攻擊 144
4.5 Hash函數(shù)的廣泛應(yīng)用 146
4.5.1 消息認證碼(MAC) 146
4.5.2 認證加密 150
4.5.3 其他應(yīng)用 153
應(yīng)用示例:計算機軟件的完整性保護 154
小結(jié) 155
習題 155
參考文獻 156
第5章 公鑰密碼 157
5.1 公鑰密碼的誕生 157
5.1.1 解決對稱密鑰建立的問題 157
5.1.2 密碼學的新方向 159
5.2 早期提出的公鑰加密算法 161
5.2.1 基于背包問題的公鑰加密算法 161
5.2.2 基于大整數(shù)分解的公鑰加密算法 163
5.2.3 RSA選擇多大的數(shù)才安全 166
5.3 基于離散對數(shù)問題的公鑰加密 算法 169
5.3.1 ElGamal提出的解決方案 169
5.3.2 橢圓曲線的加盟 171
5.3.3 離散對數(shù)的破解之道 174
5.4 公鑰密碼中的數(shù)字簽名 177
5.4.1 認證技術(shù)的主要工具 177
5.4.2 數(shù)字簽名經(jīng)典算法 178
5.4.3 數(shù)字簽名的安全性 180
5.4.4 數(shù)字簽名的應(yīng)用 182
5.5 公鑰密碼算法標準 184
5.5.1 美國NIST公鑰密碼標準 184
5.5.2 我國商用密碼標準SM2 186
5.5.3* 我國商用密碼標準SM9 188
5.6 迎接量子計算的挑戰(zhàn) 191
5.6.1 傳統(tǒng)密碼算法的危機 191
5.6.2 后量子密碼算法的涌現(xiàn) 194
5.6.3 后量子密碼算法標準 199
應(yīng)用示例:數(shù)字簽名在電子保單中的應(yīng)用 202
小結(jié)