本書是密碼學(xué)領(lǐng)域的經(jīng)典著作,是作者多年教學(xué)經(jīng)驗(yàn)的總結(jié)。本書概念清晰,表述簡潔,數(shù)學(xué)證明過程詳細(xì)易懂。本書內(nèi)容全面,包括數(shù)論、數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、高級加密標(biāo)準(zhǔn)Rijndael、RSA算法、離散對數(shù)、散列函數(shù)、信息論、格方法、糾錯(cuò)碼以及量子密碼等,其中許多內(nèi)容都反映了業(yè)內(nèi)的新進(jìn)展。第三版增加了RC4、一次一密的多次使用、完全保密、散列函數(shù)的應(yīng)用、比特幣和密碼貨幣、基于對的密碼系統(tǒng)等章節(jié)。本書配有大量實(shí)例,習(xí)題以及用Mathematica、Maple、MATLAB和Sage編寫的上機(jī)練習(xí),詳細(xì)說明了密碼算法和協(xié)議的執(zhí)行過程。
Wade Trappe 美國羅格斯大學(xué)無線信息網(wǎng)絡(luò)實(shí)驗(yàn)室及電子與計(jì)算機(jī)工程系教授。Lawrence C. Washington馬里蘭大學(xué)數(shù)學(xué)系教授。<BR>W(wǎng)ade Trappe 美國羅格斯大學(xué)無線信息網(wǎng)絡(luò)實(shí)驗(yàn)室及電子與計(jì)算機(jī)工程系教授。Lawrence C. Washington馬里蘭大學(xué)數(shù)學(xué)系教授。
Contents
目??錄
Chapter 1?Overview of Cryptography and Its Applications?密碼學(xué)及其應(yīng)用概述
1.1?Secure Communications?安全通信
1.1.1 Possible Attacks?四種主要的攻擊
1.1.2 Symmetric and Public Key Algorithms?對稱和公鑰算法
1.1.3 Key Length?密鑰長度
1.2?Cryptographic Applications?密碼學(xué)應(yīng)用
Chapter 2?Classical Cryptosystems?傳統(tǒng)密碼系統(tǒng)
2.1?Shift Ciphers?移位密碼
2.2?Affine Ciphers?仿射密碼
2.3?The Vigenère Cipher?維吉內(nèi)爾密碼
2.3.1 Finding the Key Length?算出密鑰長度
2.3.2 Finding the Key: First Method?算出密鑰的第一種方法
2.3.3 Finding the Key: Second Method?算出密鑰的第二種方法
2.4?Substitution Ciphers?替換密碼
2.5?Sherlock Holmes?夏洛克·福爾摩斯
2.6?The Playfair and ADFGX Ciphers?Playfair和ADFGX密碼
2.7?Enigma?Enigma密碼機(jī)
2.8?Exercises?習(xí)題
2.9?Computer Problems?上機(jī)練習(xí)
Chapter 3?Basic Number Theory?數(shù)論簡介
3.1?Basic Notions?基本概念
3.1.1 Divisibility?整除性
3.1.2 Prime Numbers?素?cái)?shù)
3.1.3 Greatest Common Divisor?最大公因子
3.2?The Extended Euclidean Algorithm?擴(kuò)展的歐幾里得算法
3.3?Congruences?同余式
3.3.1 Division?除法
3.3.2 Working with Fractions?使用分式
3.4?The Chinese Remainder Theorem?中國余數(shù)定理
3.5?Modular Exponentiation?模指數(shù)
3.6?Fermat’s Theorem and Euler’s Theorem?費(fèi)馬小定理和歐拉定理
3.6.1?Three-Pass Protocol?三輪協(xié)議
3.7?Primitive Roots?原根
3.8?Inverting Matrices Mod n?模n求逆矩陣
3.9?Square Roots Mod n?模n平方根
3.10?Legendre and Jacobi Symbols?勒讓德和雅可比符號
3.11?Finite Fields?有限域
3.11.1 Division?除法
3.11.2 GF(28)
3.11.3 LFSR Sequences?線性反饋移位寄存器序列
3.12?Continued Fractions?連分?jǐn)?shù)
3.13?Exercises?習(xí)題
3.14?Computer Problems?上機(jī)練習(xí)
Chapter 4?The One-Time Pad?一次一密
4.1?Binary Numbers and ASCII?二進(jìn)制數(shù)和ASCII碼
4.2?One-Time Pads?一次一密
4.3?Multiple Use of a One-Time Pad?一次一密的多次使用
4.4?Perfect Secrecy of the One-Time Pad?一次一密的完全保密
4.5?Indistinguishability and Security?不可區(qū)分性和安全性
4.6?Exercises?習(xí)題
Chapter 5?Stream Ciphers?流密碼
5.1?Pseudorandom Bit Generation?偽隨機(jī)比特生成器
5.2?Linear Feedback Shift Register Sequences?線性反饋移位寄存器序列
5.3?RC4
5.4?Exercises?習(xí)題
5.5?Computer Problems?上機(jī)練習(xí)
Chapter 6?Block Ciphers?分組密碼
6.1?Block Ciphers?分組密碼簡介
6.2?Hill Ciphers?希爾密碼
6.3?Modes of Operation?工作模式
6.3.1 Electronic Codebook (ECB)?電子密碼本(ECB)
6.3.2 Cipher Block Chaining (CBC)?密碼分組鏈接(CBC)
6.3.3 Cipher Feedback (CFB)?密碼反饋(CFB)
6.3.4 Output Feedback (OFB)?輸出反饋(OFB)
6.3.5 Counter (CTR)?計(jì)數(shù)器(CTR)
6.4?Multiple Encryption?多重加密
6.5?Meet-in-the-Middle Attacks?中間相遇攻擊
6.6?Exercises?習(xí)題
6.7?Computer Problems?上機(jī)練習(xí)
Chapter 7?The Data Encryption Standard?數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)
7.1?Introduction?簡介
7.2?A Simplied DES-Type Algorithm?DES算法的簡化版
7.3?Differential Cryptanalysis?差分密碼分析
7.3.1 Differential Cryptanalysis for Three Rounds?三輪差分密碼分析
7.3.2 Differential Cryptanalysis for Four Rounds?四輪差分密碼分析
7.4?DES?DES算法
7.4.1?DES Is Not a Group?DES算法不是代數(shù)群
7.5?Breaking DES?破解DES
7.6?Password Security?口令安全
7.7?Exercises?習(xí)題
7.8?Computer Problems?上機(jī)練習(xí)
Chapter 8?The Advanced Encryption Standard: Rijndael 高級加密標(biāo)準(zhǔn):Rijndael
8.1?The Basic Algorithm?算法簡介
8.2?The Layers?層的描述
8.2.1 The SubBytes Transformation?SubByte變換
8.2.2 The ShiftRows Transformation?ShiftRow變換
8.2.3 The MixColumns Transformation?MixColumn變換
8.2.4 The RoundKey Addition?RoundKey加法
8.2.5 The Key Schedule?密鑰擴(kuò)展方案
8.2.6 The Construction of the S-Box?S盒的結(jié)構(gòu)
8.3?Decryption?解密算法
8.4?Design Considerations?設(shè)計(jì)中的考慮
8.5?Exercises?習(xí)題
Chapter 9?The RSA Algorithm?RSA算法
9.1?The RSA Algorithm?RSA算法簡介
9.2?Attacks on RSA?RSA算法的攻擊
9.2.1 Low Exponent Attacks?低指數(shù)攻擊
9.2.2 Short Plaintext?短明文
9.2.3 Timing Attacks?時(shí)間攻擊
9.3?Primality Testing?素性檢測
9.4?Factoring?因子分解
9.4.1 x2≡y2
9.4.2 Using ar≡1? ar≡1的應(yīng)用
9.5?The RSA Challenge?RSA挑戰(zhàn)
9.6?An Application to Treaty Verification?協(xié)約驗(yàn)證的應(yīng)用
9.7?The Public Key Concept?公鑰密碼系統(tǒng)概念
9.8?Exercises?習(xí)題
9.9?Computer Problems?上機(jī)練習(xí)
Chapter 10?Discrete Logarithms?離散對數(shù)
10.1?Discrete Logarithms?離散對數(shù)簡介
10.2?Computing Discrete Logs?離散對數(shù)的計(jì)算
10.2.1 The Pohlig-Hellman Algorithm?Pohlig-Hellman算法
10.2.2 Baby Step, Giant Step?小步-大步法
10.2.3 The Index Calculus?指數(shù)計(jì)算法
10.2.4 Computing Discrete Logs Mod 4?模4離散對數(shù)的計(jì)算
10.3?Bit Commitment?比特承諾
10.4?Diffie-Hellman Key Exchange?Diffie-Hellman 密鑰協(xié)商協(xié)議
10.5?The ElGamal Public Key Cryptosystem?ElGamal公鑰密碼系統(tǒng)
10.5.1 Security of ElGamal Ciphertexts?ElGamal密文的安全性
10.6?Exercises?習(xí)題
10.7?Computer Problems?上機(jī)練習(xí)
Chapter 11?Hash Functions?散列函數(shù)
11.1?Hash Functions?散列函數(shù)簡介
11.2?Simple Hash Examples?簡單散列示例
11.3?The Merkle-Damg?rd Construction?Merkle-Damg?rd結(jié)構(gòu)
11.4?SHA-2
11.5?SHA-3/Keccak?SHA-3/Keccak算法
11.6?Exercises?習(xí)題
Chapter 12?Hash Functions: Attacks and Applications 散列函數(shù):攻擊與應(yīng)用
12.1?Birthday Attacks?生日攻擊
12.1.1 A Birthday Attack on Discrete Logarithms?離散對數(shù)的生日攻擊
12.2?Multicollisions?多元碰撞
12.3?The Random Oracle Model?隨機(jī)預(yù)言模型
12.4?Using Hash Functions to Encrypt?用散列函數(shù)加密
12.5?Message Authentication Codes?消息認(rèn)證碼
12.5.1 HMAC
12.5.2 CBC-MAC
12.6?Password Protocols?口令協(xié)議
12.6.1 The Secure Remote Password Protocol?安全遠(yuǎn)程口令協(xié)議
12.6.2 Lamport’s Protocol?Lamport協(xié)議
12.7?Blockchains?區(qū)塊鏈
12.8?Exercises?習(xí)題
12.9?Computer Problems?上機(jī)練習(xí)
Chapter 13?Digital Signatures?數(shù)字簽名
13.1?RSA Signatures?RSA簽名方案
13.2?The ElGamal Signature Scheme?ElGamal簽名方案
13.3?Hashing and Signing?散列與簽名
13.4?Birthday Attacks on Signatures?簽名的生日攻擊
13.5?The Digital Signature Algorithm?數(shù)字簽名算法(DSA)
13.6?Exercises?習(xí)題
13.7?Computer Problems?上機(jī)練習(xí)
Chapter 14?What Can Go Wrong?會(huì)出什么問題
14.1?An Enigma“Feature”?Enigma密碼機(jī)的“特征”
14.2?Choosing Primes for RSA?RSA算法中的素?cái)?shù)選取
14.3?WEP
14.3.1 CRC-32
14.4?Exercises?習(xí)題
Chapter 15?Security Protocols?安全協(xié)議
15.1?Intruders-in-the-Middle and Impostors?中間入侵者和冒名頂替者
15.1.1 Intruder-in-the-Middle Attacks?中間人攻擊
15.2?Key Distribution?密鑰分配
15.2.1 Key Pre-distribution?密鑰預(yù)分配
15.2.2 Authenticated Key Distribution?認(rèn)證的密鑰分配
15.3?Kerberos?Kerberos協(xié)議
15.4?Public Key Infrastructures (PKI)?公鑰基礎(chǔ)設(shè)施(PKI)
15.5?X.509 Certificates?X.509證書
15.6?Pretty Good Privacy?PGP協(xié)議
15.7?SSL and TLS?SSL協(xié)議和TLS協(xié)議
15.8?Secure Electronic Transaction?SET協(xié)議
15.9?Exercises?習(xí)題
Chapter 16?Digital Cash?數(shù)字現(xiàn)金
16.1?Setting the Stage for Digital Economies?為數(shù)字經(jīng)濟(jì)創(chuàng)造條件
16.2?A Digital Cash System?數(shù)字現(xiàn)金系統(tǒng)
16.2.1 Participants?參與者
16.2.2 Initialization?初始化
16.2.3 The Bank?銀行
16.2.4 The Spender?消費(fèi)者
16.2.5 The Merchant?商家
16.2.6 Creating a Coin?創(chuàng)建硬幣
16.2.7 Spending the Coin?消費(fèi)硬幣
16.2.8 The Merchant Deposits the Coin in the Bank?商家將硬幣存入銀行
16.2.9 Fraud Control?欺詐控制
16.2.10?Anonymity?匿名性
16.3?Bitcoin Overview?比特幣簡介
16.3.1 Some More Details?更多細(xì)節(jié)
16.4?Cryptocurrencies?密碼貨幣
16.5?Exercises?習(xí)題
Chapter 17?Secret Sharing Schemes?秘密共享方案
17.1?Secret Splitting?秘密分拆
17.2?Threshold Schemes?門限方案
17.3?Exercises?習(xí)題
17.4?Computer Problems?上機(jī)練習(xí)
Chapter 18?Games?游戲
18.1?Flipping Coins over the Telephone?電話擲硬幣
18.2?Poker over the Telephone?電話玩牌
18.2.1 How to Cheat?如何欺騙
18.3?Exercises?習(xí)題
Chapter 19?Zero-Knowledge Techniques?零知識技術(shù)
19.1?The Basic Setup?簡介
19.2?The Feige-Fiat-Shamir Identification Scheme Feige-Fiat-Shamir身份識別方案
19.3?Exercises?習(xí)題
Chapter 20?Information Theory?信息論
20.1?Probability Review?概率論簡介
20.2?Entropy?熵
20.3?Huffman Codes?霍夫曼編碼
20.4?Perfect Secrecy?完全保密
20.5?The Entropy of English?英文中的熵
20.5.1 Unicity Distance?唯一性距離
20.6?Exercises?習(xí)題
Chapter 21?Elliptic Curves?橢圓曲線
21.1?The Addition Law?加法法則
21.2?Elliptic Curves Mod p?模p橢圓曲線
21.2.1 Number of Points Mod p?模p點(diǎn)的數(shù)目
21.2.2 Discrete Logarithms on Elliptic Curves?橢圓曲線上的離散對數(shù)
21.2.3 Representing Plaintext?明文表示
21.3?Factoring with Elliptic Curves?橢圓曲線因子分解
21.3.1 Singular Curves?奇異曲線
21.4?Elliptic Curves in Characteristic 2?特征值為2的橢圓曲線
21.5?Elliptic Curve Cryptosystems?橢圓曲線密碼系統(tǒng)
21.5.1 An Elliptic Curve ElGamal Cryptosystem?橢圓曲線ElGamal加密方案
21.5.2 Elliptic Curve Diffie-Hellman Key Exchange 橢圓曲線Diffie-Hellman密鑰協(xié)商協(xié)議
21.5.3 ElGamal Digital Signatures?橢圓曲線ElGamal簽名方案
21.6?Exercises?習(xí)題
21.7?Computer Problems?上機(jī)練習(xí)
Chapter 22?Pairing-Based Cryptography?基于對的密碼系統(tǒng)
22.1?Bilinear Pairings?雙線性對
22.2?The MOV Attack?MOV攻擊
22.3?Tripartite Diffie-Hellman?三方Diffie-Hellman密鑰協(xié)商協(xié)議
22.4?Identity-Based Encryption?基于身份的加密
22.5?Signatures?簽名
22.5.1 BLS Signatures?BLS簽名
22.5.2 A Variation?BLS簽名的變形
22.5.3 Identity-Based Signatures?基于身份的簽名
22.6?Keyword Search?關(guān)鍵詞搜索
22.7?Exercises?習(xí)題
Chapter 23?Lattice Methods?格方法
23.1?Lattices?格
23.2?Lattice Reduction?格歸約
23.2.1 Two-Dimensional Lattices?二維格
23.2.2 The LLL algorithm?LLL算法
23.3?An Attack on RSA?RSA中的攻擊
23.4?NTRU
23.4.1 An Attack on NTRU?NTRU中的攻擊
23.5?Another Lattice-Based Cryptosystem?另一個(gè)基于格的密碼系統(tǒng)
23.6?Post-Quantum Cryptography??抗量子密碼學(xué)
23.7?Exercises?習(xí)題
Chapter 24?Error Correcting Codes?糾錯(cuò)碼
24.1?Introduction?簡介
24.2?Error Correcting Codes?糾錯(cuò)碼
24.3?Bounds on General Codes?一般碼的限
24.3.1 Upper Bounds?上界
24.3.2 Lower Bounds?下界
24.4?Linear Codes?線性碼
24.4.1 Dual Codes?對偶碼
24.5?Hamming Codes?漢明碼
24.6?Golay Codes?戈萊碼
24.6.1 Decoding G24?G24譯碼
24.7?Cyclic Codes?循環(huán)碼
24.8?BCH Codes?BCH碼
24.8.1 Decoding BCH Codes?BCH譯碼
24.9?Reed-Solomon Codes?里德-所羅門碼
24.10?The McEliece Cryptosystem?McEliece密碼系統(tǒng)
24.11?Other Topics?其他問題
24.12?Exercises?習(xí)題
24.13?Computer Problems?上機(jī)練習(xí)
Chapter 25?Quantum Techniques in Cryptography?密碼學(xué)中的量子技術(shù)
25.1?A Quantum Experiment?量子實(shí)驗(yàn)
25.2?Quantum Key Distribution?量子密鑰分配
25.3?Shor’s Algorithm?Shor算法
25.3.1 Factoring?因子分解
25.3.2 The Discrete Fourier Transform?離散傅里葉變換
25.3.3 Shor’s Algorithm?Shor算法
25.3.4 Final Words?小結(jié)
25.4?Exercises?習(xí)題
Appendix A?Mathematica Examples?Mathematica實(shí)例
Appendix B?Maple Examples?Maple 實(shí)例
Appendix C?MATLAB Examples?MATLAB實(shí)例
Appendix D?Sage Examples?Sage實(shí)例
Appendix E?Answers and Hints for Selected Odd-Numbered Exercises
奇數(shù)編號習(xí)題的答案與提示
Appendix F?Suggestions for Further Reading?推薦閱讀
Bibliography?參考文獻(xiàn)