2020年1月1日,《中華人民共和國密碼法》正式施行。國家鼓勵和支持密碼科學技術研究與應用,促進密碼科學技術進步與創(chuàng)新,加強密碼人才培養(yǎng)和隊伍建設,采取多種形式加強密碼安全教育。本書是在國家密碼管理局和中國密碼學會的指導下,依據(jù)我國發(fā)布的商用密碼算法標準編寫而成的。本書作者長期從事密碼學的教學與科研工作,編寫材料來自多年教學和科研案例。本書詳細講解商用密碼概述、祖沖之序列密碼算法、SM2橢圓曲線公鑰密碼算法、SM3密碼雜湊算法、SM4分組密碼算法、SM9標識密碼算法,包括密碼算法的設計原理和實現(xiàn)過程等,并在C語言環(huán)境下編程實現(xiàn)了密碼算法,以期幫助廣大密碼愛好者更好地理解和使用商用密碼算法。本書適合作為高等院校信息安全專業(yè)、網絡空間安全專業(yè)或其他相關專業(yè)學生的教材,也可作為相關領域教學、科研人員及工程技術人員的參考書。
李子臣,博士,教授,博士生導師,清華大學計算機科學與技術系出站博士后。主要從事公鑰密碼學、數(shù)字簽名、后量子密碼等方面的研究。現(xiàn)任中國密碼學會理事、中國密碼學會教育與科普工作委員會副主任、中國人工智能學會理事、中國人工智能學會智能傳媒學會常務副理。先后參加和承擔完成了國家973計劃項目,國家自然科學基金重大研究計劃項目,"十五”國家科技攻關計劃,全國博士后基金項目,省自然科學基金等多項科研項目等。先后在IEEE、IEE、IPL、《電子學報》、《通信學報》等學術刊物和國際國內學術會議上發(fā)表學術論文100余篇。編寫教材多部。
第1章 商用密碼概述 1
1.1 商用密碼的概念 1
1.2 商用密碼的算法介紹 3
1.3 商用密碼的應用 5
第2章 祖沖之序列密碼算法 8
2.1 算法描述 8
2.1.1 參數(shù)描述 8
2.1.2 參數(shù)產生 11
2.1.3 算法運行 13
2.1.4 安全性分析 15
2.2 加密/解密算法和完整性算法 16
2.2.1 加密/解密算法 16
2.2.2 完整性算法 18
2.3 算法實現(xiàn) 19
2.3.1 算法舉例 19
2.3.2 程序流程 22
2.3.3 實現(xiàn)環(huán)境 23
2.3.4 核心代碼 23
2.3.5 實現(xiàn)結果 26
2.3.6 性能分析 27
2.4 本章小結 27
第3章 SM2橢圓曲線公鑰密碼算法 28
3.1 加密/解密算法描述 28
3.1.1 參數(shù)產生 28
3.1.2 密鑰產生 30
3.1.3 加密/解密過程 30
3.1.4 安全性分析 32
3.2 加密/解密算法實現(xiàn) 34
3.2.1 算法舉例 34
3.2.2 算法實現(xiàn) 35
3.2.3 實現(xiàn)結果 38
3.3 數(shù)字簽名算法描述 40
3.3.1 參數(shù)與密鑰的產生 40
3.3.2 數(shù)字簽名生成、驗證過程 40
3.3.3 數(shù)字簽名算法安全性分析 43
3.4 數(shù)字簽名算法實現(xiàn) 43
3.4.1 算法舉例 43
3.4.2 算法實現(xiàn) 44
3.4.3 實現(xiàn)結果 47
3.5 密鑰協(xié)商算法描述 49
3.5.1 密鑰協(xié)商過程 49
3.5.2 密鑰協(xié)商算法安全性分析 51
3.6 密鑰協(xié)商算法實現(xiàn) 52
3.6.1 算法舉例 52
3.6.2 算法實現(xiàn) 53
3.6.3 實現(xiàn)結果 55
3.6.4 性能分析 56
3.7 本章小結 56
第4章 SM3密碼雜湊算法 57
4.1 算法參數(shù)與函數(shù) 57
4.2 算法描述 58
4.2.1 消息填充與擴展 58
4.2.2 壓縮函數(shù) 59
4.2.3 迭代過程 59
4.3 設計原理 60
4.3.1 壓縮函數(shù)的設計 60
4.3.2 消息擴展算法的設計 62
4.4 算法實現(xiàn) 62
4.4.1 核心代碼 62
4.4.2 實現(xiàn)結果 68
4.5 本章小結 69
第5章 SM4分組密碼算法 70
5.1 算法參數(shù) 70
5.2 基本密碼構件 70
5.3 加密/解密算法描述 72
5.3.1 密鑰擴展算法 73
5.3.2 加密/解密流程 73
5.3.3 算法分析 74
5.4 算法實現(xiàn) 75
5.4.1 算法舉例 75
5.4.2 程序流程 77
5.4.3 實現(xiàn)環(huán)境 78
5.4.4 核心代碼 78
5.4.5 實現(xiàn)結果 79
5.5 本章小結 82
第6章 SM9標識密碼算法 83
6.1 加密/解密算法描述 83
6.1.1 參數(shù)產生 83
6.1.2 密鑰產生 86
6.1.3 加密/解密流程 86
6.1.4 加密/解密算法安全性分析 88
6.2 加密/解密算法實現(xiàn) 90
6.2.1 算法舉例 90
6.2.2 算法實現(xiàn) 97
6.2.3 實現(xiàn)結果 104
6.3 數(shù)字簽名算法描述 105
6.3.1 參數(shù)與密鑰的產生 106
6.3.2 算法流程 106
6.3.3 數(shù)字簽名算法安全性分析 109
6.4 數(shù)字簽名算法實現(xiàn) 109
6.4.1 算法舉例 109
6.4.2 算法實現(xiàn) 115
6.4.3 實現(xiàn)結果 120
6.5 密鑰交換協(xié)議描述 122
6.5.1 參數(shù)產生 122
6.5.2 協(xié)議流程 123
6.5.3 密鑰交換協(xié)議安全性分析 125
6.6 密鑰交換協(xié)議實現(xiàn) 125
6.6.1 算法舉例 125
6.6.2 核心代碼 138
6.6.3 實現(xiàn)結果 143
6.7 本章小結 145
參考文獻 146