《現代密碼學》系統地講述了密碼學的基礎理論與應用技術。主要內容包括密碼學的信息論基礎、密碼學的復雜性理論、流密碼、分組密碼、公鑰密碼、Hash函數、數字簽名、密碼協議和密鑰管理。《現代密碼學》內容豐富,取材經典、新穎,概念清楚,各章后面配有大量習題。《現代密碼學》可作為高等院校信息安全、通信工程等相關專業本科生的教材,也可供研究生與相關技術人員學習參考。
密碼學(Cryptology)包括密碼編碼學(Cryptography)和密碼分析學(Cryptanalytics),后者的研究內容,也稱為密碼破譯(cipher-break),密碼是在非安全信道中為保證交換信息的機密性而誕生的。
人類使用密碼已經有幾千年了,在歷史上它往往和軍事、間諜等工作聯系在一起。由于成功的密碼編碼、密碼使用或密碼分析,使密碼工作者多次在世界軍事史上留名并且影響到歷史的進程。納瓦霍語密碼是密碼編碼的傳奇;破譯德國“恩尼格瑪”密碼和破譯日本“紫密”密電是密碼分析的傳奇——它們已經成為膾炙人口的故事。以戰爭為主要驅動力的密碼學,和通信理論、電子學一樣在第二次世界大戰后得到高度重視,隨著社會日益增長的保密需求,其研究在更大范圍內受到關注和支持。在近代密碼學的發展史上,以下幾個事件具有特殊的意義。
1949年C.E.Shannon發表了“Communication theory of secrecy system’,將密碼學的研究引入了科學的軌道——雖然該文在20多年后才得到密碼學界足夠的重視。20世紀70年代,有兩個可以稱為里程碑的事件:一是美國國家標準局(NBS)正式公布實施美國數據加密標準(DES),由此導致密碼的廣泛商業應用和密碼研究的平民化;另一個是W.Diftie和M.E.Hellman公開發表“New directions incryptography”一文,提出了不同于傳統對稱密碼體制的非對稱密碼體制或雙鑰密碼體制——由于加密與解密密鑰中的一個可以公開,所以也被稱為公鑰密碼體制。它們是現代密碼學誕生的主要標志。將公鑰密碼體制改用于認證時,唯一擁有秘密密鑰的一方如果用該密鑰加密授權書(或其壓縮映像),則既定的驗證者均可利用對應的公鑰解密以上結果得到原來的授權書(或其壓縮映像)。上述過程可以提供加密者擁有該秘密密鑰的證據,同時也能達到防止他人篡改其原始文件的目的——這就是數字簽名得以立法的理論基礎(我國法律名為“中華人民共和國電子簽名法”)。于是,利益不一致的參與者之間要求個人信譽保證的所有商務、金融活動等交易,都可能從傳統的在契約上以手書簽名的運作方式,轉移到網絡上來進行——因為數字簽名可以代替手書簽名甚至效果更佳,而將交易信息加密又可以保證交易的機密性。不難想象,這樣的變革對人類社會的影響是多么巨大,因為需要“簽署”以證明信用或便于審計的不止是商業和金融業,政府、軍隊也是如此。于是,電子政務、電子商務近年得以迅猛發展,事實上還包括“電子軍務”。
密碼編碼學的任務與密碼分析學的任務如同制造堅固的盾與制造鋒利的矛。同古老的盾與矛一樣,它們也逃不出“相互爭斗,永無休止”的哲學。自然,在這里需要的不再是鐵與火,而是數學、電子學、信息論、計算復雜性理論等,以及在此基礎上表現出的智力、技巧、微電子制造甚至。DNA技術,同時還需要一點謙遜、謹慎和預見——因為現實社會中參與密碼搏弈的對手對其真實的密碼設計水平與密碼破譯能力始終是秘而不宣。
何大可,西南交通大學教授、國家高性能計算中心(成都)主任、博士生導師、從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
第1章 概論
本章介紹信息安全基本概念、密碼系統模型、密碼體制分類、簡單密碼算法、初等密碼分析、密碼學的信息論基礎和計算復雜性理論基礎。
1.1 信息安全與密碼技術
隨著人類步人信息時代的21世紀,信息安全變得越來越重要。這里,不可避免地要涉及信息(Information)、數據(Data)、知識(Knowledge)、信息系統幾個概念。
信息的一般定義屬于哲學范疇。信息是事物運動的狀態與方式,是事物的一種區別于物質與能量的屬性。信息與物質、能量的概念處于同一層次,成為組成世界的三大要素。消息是信息的外殼或表象,信息是消息的內核;信號是信息的載體;數據是記錄信息的一種形式。知識是認識主體(人、猩猩等)加工、序化的信息。
信息系統是指有目的、和諧地處理信息的人—機系統(人、傳感器、通信設備、計算機硬件、軟件等),它能對一定形態、形式的信息進行處理(如采集、發送、傳遞、接收、檢測、度量、變換、存儲),并且最終轉換為可以由人類感知器直接感知的結果(傳統的感知器有視覺、聽覺、觸覺感知器;而嗅覺、味覺感知器已經或者即將被利用)。下面是信息系統的一些實例:公眾移動通信系統,民航/鐵路客運售票系統,地理信息系統,保安監控系統,地震、海嘯監測預警系統(可能包含以某些動物作為探測器的預警子系統)。信息系統按社會功能可分為:企業生產/營銷業務系統,黨政內部網絡系統,電子政務系統,電子商務系統,軍隊信息系統(如指揮-控制-通信-計算機-情報系統C4I,信息作戰系統),大國間的戰略導彈核查系統等。目前的一個趨勢是:若干信息系統經集成或互聯(比如經互聯網),形成了十分復雜的網絡拓撲結構,使信息安全保障的形勢變得更加嚴峻。