嚴肅的密碼學:實用現代加密術 Serious Cryptography: A Practical Introduction to Modern Encryption

Jean-Philippe Aumasson 陳華瑾 等

買這商品的人也買了...

商品描述

本書是著名密碼算法BLAKE2、SipHash和NORX的創造者、當代應用密碼學大師Jean-Philippe Aumasson的最新力作的中文譯本。
正如其名,本書並非淺嘗輒止的領域概述,而是全面深入地討論了密碼工程的理論、技術以及最新進展。
本書面向密碼學研究及從業人員,從本書中您不僅能學到密碼算法的工作原理,還將學習如何在實際的系統中使用它們。

作者簡介

Jean-Philippe Aumasson

是總部位於瑞士的國際網絡安全公司Kudelski Security的首席研究工程師,
他在密碼學和密碼分析領域發表文章40餘篇。
他設計了廣為人知的哈希函數BLAKE2和SipHash,
也是Black Hat、DEF CON、Troopers和Infiltrate等信息安全會議上的常客。

陳華瑾

信息工程大學網絡空間安全學院副教授,2013年獲得密碼學博士學位。
長期從事密碼學教學與科研工作,研究方向是對稱密碼設計與分析。


俞少華

公安部第三研究所信息網絡安全公安部重點實驗室網絡安全專家,2007年碩士畢業於浙江大學數學系,
一直從事網絡安全工作,在網絡攻擊與防禦、網絡安全

事件取證溯源和密碼學領域有著深入研究。

目錄大綱

第1章加密 1
基礎知識 1
古典密碼 2
凱撒密碼 2
維吉尼亞密碼 3
密碼是如何工作的 4
置換 4
操作模式 5
為什麼古典密碼不安全 6
完美的加密:一次一密體制 6
一次一密加密過程 7
為什麼一次一密安全 8
加密安全性 9
攻擊模型 9
安全目標11
安全概念12
非對稱加密14
加密之外的密碼學14
認證加密15
格式保持加密15
全同態加密16
可搜索加密16
可調加密16
意外如何發生17
弱密碼17
錯誤模型18
拓展閱讀18

第2章隨機性19
隨機與非隨機19
作為概率分佈的隨機性20
熵:不確定性的度量指標21
隨機數發生器和偽隨機數發生器22
PRNG如何工作23
安全問題23
PRNG Fortuna 24
統計測試不重要26
現實世界中的PRNG 27
在基於UNIX的系統中生成隨機比特27
Windows中的CryptGenRandom()函數31
基於硬件的PRNG:英特爾微處理器中的RDRAND 32
意外如何發生33
熵源不理想33
啟動時熵不足34
非加密PRNG 35
對強隨機性的採樣漏洞35
拓展閱讀36

第3章密碼學中的安全性37
不可能的定義37
理論上安全:信息安全性38
實際安全:計算安全性38
量化安全性40
以比特度量安全性40
全攻擊成本41
選擇和評估安全強度42
安全實現43
可證明安全性43
啟發式安全性46
密鑰生成46
生成對稱密鑰47
生成非對稱密鑰47
保護密鑰48
意外如何發生49
不正確的安全性證明49
支持遺留系統的短密鑰49
拓展閱讀50

第4章分組密碼51
什麼是分組密碼51
安全目標52
分組大小52
碼本攻擊53
如何構造分組密碼53
分組密碼的輪數53
滑動攻擊和子密鑰54
替換-置換網絡54
Feistel結構55
高級加密標準(AES) 56
AES內核56
使用AES 59
實現AES 60
基於查詢表實現60
原生指令集61
AES安全嗎62
工作方式63
電碼本模式(ECB) 63
密碼分組鏈接(CBC)模式65
如何在CBC模式中加密消息67
計數(CTR)模式68
意外如何發生70
中間相遇攻擊70
Padding Oracle攻擊71
拓展閱讀73

第5章序列密碼75
序列密碼的工作原理76
基於狀態轉移的和基於計數器的序列密碼76
面向硬件的序列密碼77
反饋移位寄存器78
Grain-128a算法84
A5/1算法85
面向軟件的序列密碼88
RC4 89
Salsa20 93
意外如何發生98
nonce的重複使用98
破解RC4 98
硬件燒製時的弱密碼100
拓展閱讀101

第6章哈希函數103
哈希函數的安全性104
不可預測性104
原像攻擊抗性105
抗碰撞性107
查找碰撞107
構造哈希函數109
基於壓縮的哈希函數:Merkle?CDamg?rd結構109
基於置換的哈希函數:海綿函數112
哈希函數SHA系列113
SHA-1 113
SHA-2 116
SHA-3競賽117
Keccak(SHA-3) 118
BLAKE2哈希函數120
意外如何發生122
長度擴展攻擊122
欺騙存儲證明協議122
拓展閱讀123

第7章帶密鑰的哈希125
消息認證碼125
安全通信中的消息認證碼126
偽造和選擇消息攻擊126
重放攻擊126
偽隨機函數127
PRF的安全性127
為什麼PRF比MAC更安全127
從不帶密鑰的哈希構建帶密鑰的哈希128
加秘密前綴的構造方法128
帶秘密後綴的構造方法129
HMAC的構造方法129
針對基於哈希的MAC的一般攻擊130
由分組密碼構造的帶密鑰哈希:CMAC 131
破解CBC-MAC 132
修改CBC-MAC 132
專用設計133
Poly1305 134
SipHash 136
意外如何發生138
針對MAC認證的計時攻擊138
當海綿結構洩露140
拓展閱讀141

第8章認證加密143
使用MAC的認證加密143
同時完成加密和MAC 144
先MAC再加密145
先加密再MAC 145
認證加密146
使用關聯數據的認證加密146
使用nonce來避免可預測性147
怎樣才是一個好的認證加密算法147
AES-GCM:認證加密算法標準149
GCM的內部結構: CTR和GHASH 149
GCM的安全性151
GCM的效率152
OCB: 比GCM更快的認證加密算法152
OCB的內部結構153
OCB的安全性154
OCB的效率154
SIV是安全的認證算法嗎154
基於置換的AEAD 155
意外如何發生156
AES-GCM和弱哈希密鑰157
AES-GCM和短標籤159
拓展閱讀159

第9章困難問題161
計算困難性161
測量運行時間162
多項式時間vs超多項式時間164
複雜度的分類166
非確定多項式時間166
NP完全問題167
P問題vs NP問題168
因數分解問題169
實踐中的分解大數算法170
分解算法是NP完全的嗎171
離散對數問題172
群是什麼172
困難之處173
意外如何發生174
容易分解的情況174
小規模的困難問題並不困難175
拓展閱讀176

第10章RSA 179
RSA背後的數學概念180
RSA陷門置換181
RSA的密鑰生成和安全性181
RSA加密183
利用教科書式RSA加密的擴展性進行攻擊183
加強版RSA加密:OAEP 184
RSA簽名186
針對教科書式RSA簽名的攻擊186
PSS簽名標準187
全域哈希簽名188
RSA的實現189
快速求冪算法:平方乘190
用於更快公鑰操作的小指數192
中國剩餘定理193
意外如何發生194
針對RSA-CRT的Bellcore攻擊194
共享秘密指數或共享模數195
拓展閱讀197

第11章Diffie-Hellman 199
Diffie-Hellman函數200
Diffie-Hellman問題201
計算Diffie-Hellman問題201
決策Diffie-Hellman問題202
更多的Diffie-Hellman問題202
密鑰協商協議203
非DH密鑰協商協議示例203
密鑰協商協議的攻擊模型204
效能205
Diffie-Hellman協議206
匿名Diffie-Hellman協議206
含身份驗證的Diffie-Hellman協議207
Menezes?CQu?CVanstone(MQV)協議210
意外如何發生211
不哈希共享秘密211
TLS中Diffie?CHellman的歷史遺留問題212
不安全的群參數212
拓展閱讀213

第12章橢圓曲線215
什麼是橢圓曲線216
整數上的橢圓曲線217
加法點和乘法點219
橢圓曲線群222
ECDLP問題222
橢圓曲線上的Diffie?CHellman密鑰協商223
橢圓曲線上的簽名224
橢圓曲線上的加密226
曲線的選擇227
NIST曲線227
曲線25519 228
其他曲線228
意外如何發生229
隨機性差的ECDSA 229
用另一條曲線破解ECDH 229
拓展閱讀230

第13章TLS 231
目標應用和要求232
TLS協議套件232
TLS和SSL協議家族的簡單歷史232
TLS簡介233
證書和證書頒發機構233
記錄協議236
TLS握手協議237
TLS 1.3的密碼算法239
TLS 1.3對TLS 1.2的改進240
降級保護240
單次往返握手241
會話恢復241
TLS安全性的優勢241
認證242
前向保密性242
意外如何發生242
不安全的證書頒發機構243
不安全的服務器243
不安全的客戶端243
實現中的缺陷244
拓展閱讀244

第14章量子和後量子時代的密碼學247
量子計算機的工作原理247
量子比特248
量子門251
量子加速253
指數加速和Simon問題253
Shor算法的威脅254
Shor算法解決因數分解問題255
Shor算法和離散對數問題255
Grover算法255
為什麼製造量子計算機如此困難257
後量子密碼算法258
基於編碼的密碼258
基於格的密碼259
基於多變量的密碼259
基於哈希的密碼261
意外如何發生262
不明晰的安全水平262
快進:如果太晚會發生什麼263
實現問題263
拓展閱讀264