發展歷史
人類有記載的通信密碼始於公元前400年。古希臘人是置換密碼的發明者。1881年世界上的第一個電話保密專利出現。電報、無線電的發明使密碼學成為通信領域中不可迴避的研究課題。
在第二次世界大戰初期,德國軍方啟用“恩尼格瑪”密碼機,盟軍對德軍加密的信息有好幾年一籌莫展,“恩尼格瑪”密碼機似乎是不可破的。但是經過盟軍密碼分析學家的不懈努力,“恩尼格瑪”密碼機被攻破,盟軍掌握了德軍的許多機密,而德國軍方卻對此一無所知。
太平洋戰爭中,美軍破譯了日本海軍的密碼機,讀懂了日本艦隊司令官山本五十六發給各指揮官的命令,在中途島徹底擊潰了日本海軍,導致了太平洋戰爭的決定性轉折, 相反軸心國中,只有德國是在第二次世界大戰的初期在密碼破譯方面取得過輝煌的戰績。因此,我們可以說,密碼學在戰爭中起著非常重要的作用。
隨著信息化和數位化社會的發展,人們對信息安全和保密的重要性認識不斷提高。如網路銀行、電子購物、電子郵件等正在悄悄地融入普通百姓的日常生活中,人們自然要關注其安全性如何。1977年,美國國家標準局公布實施了“美國數據加密標(DES)”,軍事部門壟斷密碼的局面被打破,民間力量開始全面介入密碼學的研究和套用中。民用的加密產品在市場上已有大量出售,採用的加密算法有DES、IDEA、RSA等。
現有的密碼體制千千萬萬,各不相同。但是它們都可以分為單鑰密碼(對稱密碼體制)如 DES密碼,和公鑰密碼(非對稱加密體制)如RSA密碼。前者的加密過程和脫密過程相同,而且所用的密鑰也相同;後者,每個用戶都有各自的公開和秘密鑰。
編碼密碼學主要致力於信息加密、信息認證、數字簽名和密鑰管理方面的研究。信息加密的目的在於將可讀信息轉變為無法識別的內容,使得截獲這些信息的人無法閱讀,同時信息的接收人能夠驗證接收到的信息是否被敵方篡改或替換過;數字簽名就是信息的接收人能夠確定接收到的信息是否確實是由所希望的發信人發出的;密鑰管理是信息加密中最難的部分,因為信息加密的安全性在於密鑰。歷史上,各國軍事情治單位在獵取別國的密鑰管理方法上要比破譯加密算法成功得多。
密碼分析學與編碼學的方法不同,它不依賴數學邏輯的不變真理,必須憑經驗,依賴客觀世界覺察得到的事實。因而,密碼分析更需要發揮人們的聰明才智,更具有挑戰性。
現代密碼學是一門迅速發展的套用科學。隨著網際網路的迅速普及,人們依靠它傳送大量的信息,但是這些信息在網路上的傳輸都是公開的。因此,對於關係到個人利益的信息必須經過加密之後才可以在網上傳送,這將離不開現代密碼技術。
1976年Diffie和Hellman在《密碼新方向》中提出了著名的D-H密鑰交換協定,標誌著公鑰密碼體制的出現。 Diffie和Hellman第一次提出了不基於秘密信道的密鑰 分發,這就是D-H協定的重大意義所在。
PKI(Public Key Infrastructure)是一個用公鑰概念與技術來實施和提供安全服務的具有普適性的安全基礎設施。PKI公鑰基礎設施的主要任務是在開放環境中為開放性業務提供數字簽名服務。
學科教材
內容簡介
《現代密碼學》系統地講述了密碼學的基礎理論與套用技術。主要內容包括密碼學的資訊理論基礎、密碼學的複雜性理論、流密碼、分組密碼、公鑰密碼、Hash函式、數字簽名、密碼協定和密鑰管理。《現代密碼學》內容豐富,取材經典、新穎,概念清楚,各章後面配有大量習題。《現代密碼學》可作為高等院校信息安全、通信工程等相關專業本科生的教材,也可供研究生與相關技術人員學習參考。
作者簡介
何大可,西南交通大學教授、國家高性能計算中心(成都)主任、博士生導師、從1992年起享受國務院特殊津貼。兼任中國密碼學會副理事長,華南農業大學“丁穎講座教授”。長期從事密碼學、移動通信安全、鐵路信息系統安全工程等方面的教學、研究和設計工作。參與了我國首批密碼學博士點申報;曾任第四屆全國鐵路高校電子信息類專業教學指導委員會副主任,計算機科學與技術、自動化專業教學指導組組長。先後主持、主研國家自然科學基金項目、國家“八五”攻關項目、國家863計畫項目、教育部博士點基金項目及鐵道部等部委科技項目約30項。是多項中國專利和美國專利US6、859、151 B2的發明人。1989年獲國家自然科學四等獎,獲省部級一等獎1次、省部級二等獎3次,1997年獲中國科學技術發展基金會第三屆詹天佑人才獎。
圖書目錄
第1章 概論 1
1.1 信息安全與密碼技術 1
1.2 密碼系統模型和密碼體制 5
1.3 幾種簡單的密碼體制 10
1.4 初等密碼分析 14
1.5 密碼學的資訊理論基礎 20
1.5.1 信息量和熵 20
1.5.2 完善保密性 23
1.5.3 唯一解距離、理論保密性與實際保密性 25
1.6 密碼學的複雜性理論基礎 30
1.6.1 問題與算法 30
1.6.2 算法複雜性 31
1.6.3 問題按複雜性分類 32
註記 33
習題 33
第2章 流密碼 35
2.1 流密碼的一般模型 35
2.2 線性反饋移位暫存器序列 37
2.3 線性複雜度及B-M算法 41
2.4 非線性準則及非線性序列生成器 44
2.5 流密碼算法介紹 47
2.5.1 RC4算法 47
2.5.2 A5算法 48
註記 49
習題 50
第3章 分組密碼 51
3.1 分組密碼的一般模型 51
3.2 分組密碼分析方法 53
3.3 DES 54
3.3.1 DES算法描述 54
3.3.2 DES安全性 60
3.3.3 三重DES 62
3.4 IDEA 63
3.4.1 IDEA基本運算 63
3.4.2 IDEA算法描述 64
3.4.3 IDEA安全性和效率 68
3.5 AES算法-Rijndael 68
3.5.1 Rijndael算法數學基礎 69
3.5.2 Rijndael設計原理 72
3.5.3 Rijndael算法描述 73
3.5.4 Rijndael安全性及效率 79
3.6 分組密碼工作模式 79
註記 83
習題 83
第4章 公鑰密碼學 85
4.1 公鑰密碼系統基本概念 85
4.1.1 基本概念 85
4.1.2 背包公鑰密碼系統 87
4.2 RSA公鑰密碼系統 89
4.2.1 算法描述 89
4.2.2 對RSA的攻擊 91
4.2.3 RSA系統的參數選取 93
4.3 離散對數公鑰密碼系統 93
4.3.1 ElGamal密碼系統 93
4.3.2 ElGamal密碼系統的安全性 95
4.3.3 橢圓曲線密碼系統 96
4.4 可證明安全公鑰密碼系統 99
4.4.1 可證明安全性 99
4.4.2 公鑰密碼系統的安全性 100
4.4.3 可證明安全抗選擇明文攻擊密碼系統 101
4.4.4 可證明安全抗選擇密文攻擊密碼系統 102
註記 106
習題 107
第5章 Hash函式與訊息認證 108
5.1 Hash函式概述 108
5.1.1 Hash函式定義 108
5.1.2 Hash函式的安全性 109
5.1.3 Hash函式的疊代構造法 111
5.2 Hash函式MD5 112
5.2.1 MD5算法 112
5.2.2 MD5的安全性 116
5.3 安全Hash算法SHA-1 117
5.3.1 SHA-1算法 117
5.3.2 SHA-1和MD5的比較 120
5.3.3 SHA-1的修訂版 121
5.4 基於分組密碼與離散對數的Hash函式 122
5.4.1 利用分組密碼構造Hash函式 122
5.4.2 基於離散對數問題構造Hash函式 123
5.5 訊息認證 125
5.5.1 訊息認證碼 125
5.5.2 HMAC算法 126
5.6 套用 127
註記 129
習題 129
第6章 數字簽名 131
6.1 數字簽名概述 131
6.2 RSA數字簽名體制 133
6.2.1 算法描述 133
6.2.2 RSA數字簽名的安全性 134
6.3 ElGamal數字簽名體制 135
6.3.1 算法描述 135
6.3.2 ElGamal數字簽名的安全性 137
6.3.3 ElGamal簽名體制的變形 139
6.4 其他數字簽名體制 140
6.4.1 Schnorr數字簽名 140
6.4.2 Fiat-Shamir數字簽名 141
6.4.3 一次性數字簽名 143
6.4.4 不可否認數字簽名 145
6.4.5 盲簽名 147
6.5 數字簽名標準 150
6.5.1 美國數字簽名標準 150
6.5.2 俄羅斯數字簽名標準 151
6.6 套用 152
註記 153
習題 153
第7章 密碼協定 155
7.1 密碼協定概述 155
7.2 實體認證協定 156
7.3 密鑰認證協定 162
7.3.1 基於對稱密碼技術的密鑰認證協定 162
7.3.2 基於非對稱密碼技術的密鑰認證協定 164
7.4 比特承諾協定 169
7.5 零知識證明與身份識別協定 171
7.5.1 零知識證明 171
7.5.2 身份識別協定 173
註記 176
習題 176
第8章 密鑰管理 178
8.1 密鑰管理的基本概念 178
8.2 密鑰生成與密鑰分發 179
8.2.1 密鑰的種類 179
8.2.2 密鑰生成 180
8.2.3 密鑰分配 182
8.3 秘密共享與密鑰託管 186
8.3.1 秘密共享 186
8.3.2 密鑰託管 189
8.4 公鑰基礎設施PKI 192
8.4.1 PKI的概念 192
8.4.2 PKI的組成 193
8.4.3 X.509認證業務 193
8.4.4 認證中心的體系結構與服務 196
8.4.5 PKI中的信任模型 197
註記 199
習題 199
參考文獻 201
……