《計算機科學叢書·應用密碼學:協議、算法與C源程序(原書第2版)》共分四個部分,定義瞭密碼學的多個術語,介紹瞭密碼學的發展及背景,描述瞭密碼學從簡單到復雜的各種協議,詳細討論瞭密碼技術。並在此基礎上列舉瞭如DES、IDEA、RSA、DSA等十多個算法以及多個應用實例,並提供瞭算法的源代碼清單。
《計算機科學叢書·應用密碼學:協議、算法與C源程序(原書第2版)》內容廣博專業,具有極大的實用價值,是緻力於密碼學研究的專業及非專業人員一本難得的好書。
Applied Cryptography:Protocols,Algorithms,and Source Code in C,Second Edition
齣版者的話
譯者序
Whitfield Diffie序
前言
第1章 基礎知識
1.1 專業術語
1.1.1 發送者和接收者
1.1.2 消息和加密
1.1.3 鑒彆、完整性和抗抵賴
1.1.4 算法和密鑰
1.1.5 對稱算法
1.1.6 公開密鑰算法
1.1.7 密碼分析
1.1.8 算法的安全性
1.1.9 過去的術語
1.2 隱寫術
1.3 代替密碼和換位密碼
1.3.1 代替密碼
1.3.2 換位密碼
1.3.3 轉輪機
1.3.4 進一步的讀物
1.4 簡單異或
1.5 一次一密亂碼本
1.6 計算機算法
1.7 大數
第一部分 密碼協議
第2章 協議結構模塊
2.1 協議概述
2.1.1 協議的目的
2.1.2 協議中的角色
2.1.3 仲裁協議
2.1.4 裁決協議
2.1.5 自動執行協議
2.1.6 對協議的攻擊
2.2 使用對稱密碼係統通信
2.3 單嚮函數
2.4 單嚮散列函數
2.5 使用公開密鑰密碼係統通信
2.5.1 混閤密碼係統
2.5.2 Merkle的難題
2.6 數字簽名
2.6.1 使用對稱密碼係統和仲裁者對文件簽名
2.6.2 數字簽名樹
2.6.3 使用公開密鑰密碼係統對文件簽名
2.6.4 文件簽名和時間標記
2.6.5 使用公開密鑰密碼係統和單嚮散列函數對文件簽名
2.6.6 算法和術語
2.6.7 多重簽名
2.6.8 抗抵賴和數字簽名
2.6.9 數字簽名的應用
2.7 帶加密的數字簽名
2.7.1 重新發送消息作為收據
2.7.2 阻止重新發送攻擊
2.7.3 對公開密鑰密碼係統的攻擊
2.8 隨機和僞隨機序列的産生
2.8.1 僞隨機序列
2.8.2 密碼學意義上安全的僞隨機序列
2.8.3 真正的隨機序列
第3章 基本協議
3.1 密鑰交換
3.1.1 對稱密碼係統的密鑰交換
3.1.2 公開密鑰密碼係統的密鑰交換
3.1.3 中間人攻擊
3.1.4 連鎖協議
3.1.5 使用數字簽名的密鑰交換
3.1.6 密鑰和消息傳輸
3.1.7 密鑰和消息廣播
3.2 鑒彆
3.2.1 使用單嚮函數鑒彆
3.2.2 字典式攻擊和salt
3.2.3 SKEY
3.2.4 使用公開密鑰密碼係統鑒彆
3.2.5 使用聯鎖協議互相鑒彆
3.2.6 SKID
3.2.7 消息鑒彆
3.3 鑒彆和密鑰交換
3.3.1 Wide-Mouth Frog協議
3.3.2 Yahalom協議
3.3.3 Needham-Schroeder協議
3.3.4 Otway-Rees協議
3.3.5 Kerberos協議
3.3.6 Neuman-Stubblebine協議
3.3.7 DASS協議
3.3.8 Denning-Sacco協議
3.3.9 Woo-Lam協議
3.3.10 其他協議
3.3.11 學術上的教訓
3.4 鑒彆和密鑰交換協議的形式化分析
3.5 多密鑰公開密鑰密碼係統
3.6 秘密分割
3.7 秘密共享
3.7.1 有騙子的秘密共享
3.7.2 沒有Trent的秘密共享
3.7.3 不暴露共享的秘密共享
3.7.4 可驗證的秘密共享
3.7.5 帶預防的秘密共享
3.7.6 帶除名的秘密共享
3.8 數據庫的密碼保護
第4章 中級協議
4.1 時間標記服務
4.1.1 仲裁解決方法
4.1.2 改進的仲裁解決方法
4.1.3 鏈接協議
4.1.4 分布式協議
4.1.5 進一步的工作
4.2 閾下信道
4.2.1 閾下信道的應用
4.2.2 杜絕閾下的簽名
4.3 不可抵賴的數字簽名
4.4 指定的確認者簽名
4.5 代理簽名
4.6 團體簽名
4.7 失敗終止數字簽名
4.8 加密數據計算
4.9 位承諾
4.9.1 使用對稱密碼係統的位承諾
4.9.2 使用單嚮函數的位承諾
4.9.3 使用僞隨機序列發生器的位承諾
4.9.4 模糊點
4.10 公平的硬幣拋擲
4.10.1 使用單嚮函數的拋幣協議
4.10.2 使用公開密鑰密碼係統的拋幣協議
4.10.3 拋幣入井協議
4.10.4 使用拋幣産生密鑰
4.11 智力撲剋
4.11.1 三方智力撲剋
4.11.2 對撲剋協議的攻擊
4.11.3 匿名密鑰分配
4.12 單嚮纍加器
4.13 秘密的全或無泄露
4.14 密鑰托管
第5章 高級協議
5.1 零知識證明
5.1.1 基本的零知識協議
5.1.2 圖同構
5.1.3 漢密爾頓圈
5.1.4 並行零知識證明
5.1.5 非交互式零知識證明
5.1.6 一般性
5.2 身份的零知識證明
5.2.1 國際象棋特級大師問題
5.2.2 黑手黨騙局
5.2.3 恐怖分子騙局
5.2.4 建議的解決方法
5.2.5 多重身份騙局
5.2.6 齣租護照
5.2.7 成員資格證明
5.3 盲簽名
5.3.1 完全盲簽名
5.3.2 盲簽名協議
5.3.3 專利
5.4 基於身份的公開密鑰密碼係統
5.5 不經意傳輸
5.6 不經意簽名
5.7 同時簽約
5.7.1 帶有仲裁者的簽約
5.7.2 無需仲裁者的同時簽約:麵對麵
5.7.3 無需仲裁者的同時簽約:非麵對麵
5.7.4 無需仲裁者的同時簽約:使用密碼係統
5.8 數字證明郵件
5.9 秘密的同時交換
第6章 深奧的協議
6.1 保密選舉
6.1.1 簡單投票協議
6.1.2 簡單投票協議
6.1.3 使用盲簽名投票
6.1.4 帶有兩個中央機構的投票
6.1.5 帶有單個中央機構的投票
6.1.6 改進的帶有單個中央機構的投票
6.1.7 無需中央製錶機構的投票
6.1.8 其他投票方案
6.2 保密的多方計算
6.2.1 協議
6.2.2 協議
6.2.3 協議
6.2.4 協議
6.2.5 無條件多方安全協議
6.2.6 保密電路計算
6.3 匿名消息廣播
6.4 數字現金
6.4.1 協議
6.4.2 協議
6.4.3 協議
6.4.4 協議
6.4.5 數字現金和高明的犯罪
6.4.6 實用化的數字現金
6.4.7 其他數字現金協議
6.4.8 匿名信用卡
第二部分 密碼技術
第7章 密鑰長度
7.1 對稱密鑰長度
7.1.1 窮舉攻擊所需時間和金錢估計
7.1.2 軟件破譯機
7.1.3 神經網絡
7.1.4 病毒
7.1.5 中國式抽彩法
7.1.6 生物工程技術
7.1.7 熱力學的局限性
7.2 公開密鑰長度
7.2.1 DNA計算法
7.2.2 量子計算法
7.3 對稱密鑰和公開密鑰長度的比較
7.4 對單嚮散列函數的生日攻擊
7.5 密鑰應該多長
7.6 小結
第8章 密鑰管理
8.1 産生密鑰
8.1.1 減少的密鑰空間
8.1.2 弱密鑰選擇
8.1.3 隨機密鑰
8.1.4 通行短語
8.1.5 X9.17密鑰産生
8.1.6 DoD密鑰産生
8.2 非綫性密鑰空間
8.3 傳輸密鑰
8.4 驗證密鑰
8.4.1 密鑰傳輸中的錯誤檢測
8.4.2 解密過程中的錯誤檢測
8.5 使用密鑰
8.6 更新密鑰
8.7 存儲密鑰
8.8 備份密鑰
8.9 泄露密鑰
8.10 密鑰有效期
8.11 銷毀密鑰
8.12 公開密鑰的密鑰管理
8.12.1 公開密鑰證書
8.12.2 分布式密鑰管理
第9章 算法類型和模式
9.1 電子密碼本模式
9.2 分組重放
9.3 密碼分組鏈接模式
9.3.1 初始化嚮量
9.3.2 填充
9.3.3 錯誤擴散
9.3.4 安全問題
9.4 序列密碼算法
9.5 自同步序列密碼
9.6 密碼反饋模式
9.6.1 初始化嚮量
9.6.2 錯誤擴散
9.7 同步序列密碼
9.8 輸齣反饋模式
9.8.1 初始化嚮量
9.8.2 錯誤擴散
9.8.3 安全問題
9.8.4 OFB模式中的序列密碼
9.9 計數器模式
9.10 其他分組密碼模式
9.10.1 分組鏈接模式
9.10.2 擴散密碼分組鏈接模式
9.10.3 帶校驗和的密碼分組鏈接
9.10.4 帶非綫性函數的輸齣反饋
9.10.5 其他模式
9.11 選擇密碼模式
9.12 交錯
9.13 分組密碼與序列密碼
第10章 使用算法
10.1 選擇算法
10.2 公開密鑰密碼係統與對稱密碼係統
10.3 通信信道加密
10.3.1 鏈鏈加密
10.3.2 端端加密
10.3.3 兩者的結閤
10.4 用於存儲的加密數據
10.4.1 非關聯密鑰
10.4.2 驅動器級與文件級加密
10.4.3 提供加密驅動器的隨機存取
10.5 硬件加密與軟件加密
10.5.1 硬件
10.5.2 軟件
10.6 壓縮、編碼及加密
10.7 檢測加密
10.8 密文中隱藏密文
10.9 銷毀信息
第三部分 密碼算法
第11章 數學背景
11.1 信息論
11.1.1 熵和不確定性
11.1.2 語言信息率
11.1.3 密碼係統的安全性
11.1.4 唯一解距離
11.1.5 信息論的運用
11.1.6 混亂和擴散
11.2 復雜性理論
11.2.1 算法的復雜性
11.2.2 問題的復雜性
11.2.3 NP完全問題
11.3 數論
11.3.1 模運算
11.3.2 素數
11.3.3 最大公因子
11.3.4 求模逆元
11.3.5 求係數
11.3.6 費爾馬小定理
11.3.7 歐拉φ函數
11.3.8 中國剩餘定理
11.3.9 二次剩餘
11.3.10 勒讓德符號
11.3.11 雅可比符號
11.3.12 Blum整數
11.3.13 生成元
11.3.14 伽羅瓦域中的計算
11.4 因子分解
11.5 素數的産生
11.5.1 Solovag-Strassen
11.5.2 Lehmann
11.5.3 Rabin-Miller
11.5.4 實際考慮
11.5.5 強素數
11.6 有限域上的離散對數
第12章 數據加密標準
12.1 背景
12.1.1 標準的開發
12.1.2 標準的采用
12.1.3 DES設備的鑒定和認證
12.1.4 1987年的標準
12.1.5 1993年的標準
12.2 DES的描述
12.2.1 算法概要
12.2.2 初始置換
12.2.3 密鑰置換
12.2.4 擴展置換
12.2.5 S盒代替
12.2.6 P盒置換
12.2.7 末置換
12.2.8 DES解密
12.2.9 DES的工作模式
12.2.10 DES的硬件和軟件實現
12.3 DES的安全性
12.3.1 弱密鑰
12.3.2 補密鑰
12.3.3 代數結構
12.3.4 密鑰的長度
12.3.5 迭代的次數
12.3.6 S盒的設計
12.3.7 其他結論
12.4 差分及綫性分析
12.4.1 差分密碼分析
12.4.2 相關密鑰密碼分析
12.4.3 綫性密碼分析
12.4.4 未來的方嚮
12.5 實際設計準則
12.6 DES的各種變型
12.6.1 多重DES
12.6.2 使用獨立子密鑰的DES
12.6.3 DESX
12.6.4 CRYPT(3)
12.6.5 GDES
12.6.6 更換S盒的DES
12.6.7 RDES
12.6.8 snDES
12.6.9 使用相關密鑰S盒的DES
12.7 DES現今的安全性
第13章 其他分組密碼算法
13.1 Lucifer算法
13.2 Madryga算法
13.2.1 Madryga的描述
13.2.2 Madryga的密碼分析
13.3 NewDES算法
13.4 FEAL算法
13.4.1 FEAL的描述
13.4.2 FEAL的密碼分析
13.4.3 專利
13.5 REDOC算法
13.5.1 REDOC Ⅲ
13.5.2 專利和許可證
13.6 LOKI算法
13.6.1 LOKI
13.6.2 LOKI91的描述
13.6.3 LOKI91的密碼分析
13.6.4 專利和許可證
13.7 Khufu和Khafre算法
13.7.1 Khufu
13.7.2 Khafre
13.7.3 專利
13.8 RC2算法
13.9 IDEA算法
13.9.1 IDEA
13.9.2 IDEA的描述
13.9.3 IDEA的速度
13.9.4 IDEA的密碼分析
13.9.5 IDEA的操作方式和變型
13.9.6 敬告使用者
13.9.7 專利和許可證
13.10 MMB算法
13.11 CA-1.1算法
13.12 Skipjack算法
第14章 其他分組密碼算法(續)
14.1 GOST算法
14.1.1 GOST的描述
14.1.2 GOST的密碼分析
14.2 CAST算法
14.3 Blowfish算法
14.3.1 Blowfish的描述
14.3.2 Blowfish的安全性
14.4 SAFER算法
14.4.1 SAFER K-64的描述
14.4.2 SAFER K-
14.4.3 SAFER K-64的安全性
14.5 3-Way算法
14.6 Crab算法
14.7 SXAL8/MBAL算法
14.8 RC5算法
14.9 其他分組密碼算法
14.10 分組密碼設計理論
14.10.1 Feistel網絡
14.10.2 簡單關係
14.10.3 群結構
14.10.4 弱密鑰
14.10.5 強的抗差分攻擊和綫性攻擊
14.10.6 S盒的設計
14.10.7 設計分組密碼
14.11 使用單嚮散列函數
14.11.1 Karn
14.11.2 Luby-Rackoff
14.11.3 消息摘要密碼
14.11.4 基於單嚮散列函數的密碼安全性
14.12 分組密碼算法的選擇
第15章 組閤分組密碼
15.1 雙重加密
15.2 三重加密
15.2.1 用兩個密鑰進行三重加密
15.2.2 用三個密鑰進行三重加密
15.2.3 用最小密鑰進行三重加密
15.2.4 三重加密模式
15.2.5 三重加密的變型
15.3 加倍分組長度
15.4 其他多重加密方案
15.4.1 雙重OFB/計數器
15.4.2 ECB+OFB
15.4.3 xDESi
15.4.4 五重加密
15.5 縮短CDMF密鑰
15.6 白化
15.7 級聯多重加密算法
15.8 組閤多重分組算法
第16章 僞隨機序列發生器和序列密碼
16.1 綫性同餘發生器
16.2 綫性反饋移位寄存器
16.3 序列密碼的設計與分析
16.3.1 綫性復雜性
16.3.2 相關免疫性
16.3.3 其他攻擊
16.4 使用LFSR的序列密碼
16.4.1 Geffe發生器
16.4.2 推廣的Geffe發生器
16.4.3 Jennings發生器
16.4.4 Beth-Piper停走式發生器
16.4.5 交錯停走式發生器
16.4.6 雙側停走式發生器
16.4.7 門限發生器
16.4.8 自采樣發生器
16.4.9 多倍速率內積式發生器
16.4.10 求和式發生器
16.4.11 DNRSG
16.4.12 Gollmann級聯
16.4.13 收縮式發生器
16.4.14 自收縮式發生器
16.5 A5算法
16.6 Hughes XPD/KPD算法
16.7 Nanoteq算法
16.8 Rambutan算法
16.9 附加式發生器
16.9.1 Fish發生器
16.9.2 Pike發生器
16.9.3 Mush發生器
16.10 Gifford算法
16.11 M算法
16.12 PKZIP算法
第17章 其他序列密碼和真隨機序列發生器
17.1 RC4算法
17.2 SEAL算法
17.2.1 僞隨機函數族
17.2.2 SEAL的描述
17.2.3 SEAL的安全性
17.2.4 專利和許可證
17.3 WAKE算法
17.4 帶進位的反饋移位寄存器
17.5 使用FCSR的序列密碼
17.5.1 級聯發生器
17.5.2 FCSR組閤發生器
17.5.3 LFSR/FCSR加法/奇偶級聯
17.5.4 交錯停走式發生器
17.5.5 收縮式發生器
17.6 非綫性反饋移位寄存器
17.7 其他序列密碼
17.7.1 Pless發生器
17.7.2 蜂窩式自動發生器
17.7.3 1/p發生器
17.7.4 crypt(1)
17.7.5 其他方案
17.8 序列密碼設計的係統理論方法
17.9 序列密碼設計的復雜性理論方法
17.9.1 Shamir僞隨機數發生器
17.9.2 Blum-Micali發生器
17.9.3 RSA
17.9.4 Blum、Blum和Shub
17.10 序列密碼設計的其他方法
17.10.1 Rip van Winkle密碼
17.10.2 Diffie隨機序列密碼
17.10.3 Maurer隨機序列密碼
17.11 級聯多個序列密碼
17.12 選擇序列密碼
17.13 從單個僞隨機序列發生器産生多個序列
17.14 真隨機序列發生器
17.14.1 RAND錶
17.14.2 使用隨機噪聲
17.14.3 使用計算機時鍾
17.14.4 測量鍵盤反應時間
17.14.5 偏差和相關性
17.14.6 提取隨機性
第18章 單嚮散列函數
18.1 背景
18.1.1 單嚮散列函數的長度
18.1.2 單嚮散列函數綜述
18.2 Snefru算法
18.3 N-Hash算法
18.4 MD4算法
18.5 MD5算法
18.5.1 MD5的描述
18.5.2 MD5的安全性
18.6 MD2算法
18.7 安全散列算法
18.7.1 SHA的描述
18.7.2 SHA的安全性
18.8 RIPE-MD算法
18.9 HAVAL算法
18.10 其他單嚮散列函數
18.11 使用對稱分組算法的單嚮散列函數
18.11.1 散列長度等於分組長度的方案
18.11.2 改進的Davies-Meyer
18.11.3 Preneel-Bosselaers-Govaerts-Vandewalle
18.11.4 Quisquater-Girault
18.11.5 LOKI雙分組
18.11.6 並行Davies-Meyer
18.11.7 串聯和並聯Davies-Meyer
18.11.8 MDC-2和MDC-
18.11.9 AR散列函數
18.11.10 GOST散列函數
18.11.11 其他方案
18.12 使用公開密鑰算法
18.13 選擇單嚮散列函數
18.14 消息鑒彆碼
18.14.1 CBC-MAC
18.14.2 消息鑒彆算法
18.14.3 雙嚮MAC
18.14.4 Jueneman方法
18.14.5 RIPE-MAC
18.14.6 IBC-Hash
18.14.7 單嚮散列函數MAC
18.14.8 序列密碼MAC
第19章 公開密鑰算法
19.1 背景
19.2 背包算法
19.2.1 超遞增背包
19.2.2 由私人密鑰産生公開密鑰
19.2.3 加密
19.2.4 解密
19.2.5 實際的實現方案
19.2.6 背包的安全性
19.2.7 背包變型
19.2.8 專利
19.3 RSA算法
19.3.1 RSA的硬件實現
19.3.2 RSA的速度
19.3.3 軟件加速
19.3.4 RSA的安全性
19.3.5 對RSA的選擇密文攻擊
19.3.6 對RSA的公共模數攻擊
19.3.7 對RSA的低加密指數攻擊
19.3.8 對RSA的低解密指數攻擊
19.3.9 經驗
19.3.10 對RSA的加密和簽名攻擊
19.3.11 標準
19.3.12 專利
19.4 Pohlig-Hellman算法
19.5 Rabin算法
19.6 ElGamal算法
19.6.1 ElGamal簽名
19.6.2 ElGamal加密
19.6.3 速度
19.6.4 專利
19.7 McEliece算法
19.8 橢圓麯綫密碼係統
19.9 LUC算法
19.10 有限自動機公開密鑰密碼係統
第20章 公開密鑰數字簽名算法
20.1 數字簽名算法
20.1.1 對通告的反應
20.1.2 DSA的描述
20.1.3 快速預計算
20.1.4 DSA的素數産生
20.1.5 使用DSA的ElGamal加密
20.1.6 使用DSA的RSA加密
20.1.7 DSA的安全性
20.1.8 攻擊k
20.1.9 公共模數的危險
20.1.10 DSA中的閾下信道
20.1.11 專利
20.2 DSA的變型
20.3 GOST數字簽名算法
20.4 離散對數簽名方案
20.5 Ong-Schnorr-Shamir簽名方案
20.6 ESIGN簽名方案
20.6.1 ESIGN的安全性
20.6.2 專利
20.7 細胞自動機
20.8 其他公開密鑰算法
第21章 鑒彆方案
21.1 Feige-Fiat-Shamir算法
21.1.1 簡化的Feige-Fiat-Shamir身份鑒彆方案
21.1.2 Feige-Fiat-Shamir身份鑒彆方案
21.1.3 例子
21.1.4 加強方案
21.1.5 Fiat-Shamir簽名方案
21.1.6 改進的Fiat-Shamir簽名方案
21.1.7 其他加強方案
21.1.8 Ohta-Okamoto身份鑒彆方案
21.1.9 專利
21.2 Guillou-Quisquater算法
21.2.1 Guillou-Quisquater身份鑒彆方案
21.2.2 Guillou-Quisquater數字簽名方案
21.2.3 多重簽名
21.3 Schnorr算法
21.3.1 鑒彆協議
21.3.2 數字簽名協議
21.3.3 專利
21.4 將身份鑒彆方案轉為數字簽名方案
第22章 密鑰交換算法
22.1 Diffie-Hellman算法
22.1.1 三方或多方Diffie-Hellman
22.1.2 擴展Diffie-Hellman
22.1.3 Hughes
22.1.4 不用交換密鑰的密鑰交換
22.1.5 專利
22.2 站間協議
22.3 Shamir的三次傳遞協議
22.4 COMSET協議
22.5 加密密鑰交換
22.5.1 基本EKE協議
22.5.2 用RSA實現EKE
22.5.3 用ElGamal實現EKE
22.5.4 用Diffie-Hellman實現EKE
22.5.5 加強的EKE
22.5.6 擴充的EKE
22.5.7 EKE的應用
22.6 加強的密鑰協商
22.7 會議密鑰分發和秘密廣播
22.7.1 會議密鑰分發
22.7.2 Tatebayashi-Matsuzaki-Newman
第23章 協議的專用算法
23.1 多重密鑰的公開密鑰密碼係統
23.2 秘密共享算法
23.2.1 LaGrange插值多項式方案
23.2.2 矢量方案
23.2.3 Asmuth-Bloom
23.2.4 Kamin-Greene-Hellman
23.2.5 高級門限方案
23.2.6 有騙子情況下的秘密共享
23.3 閾下信道
23.3.1 Ong-Schnorr-Shamir
23.3.2 ElGamal
23.3.3 ESIGN
23.3.4 DSA
23.3.5 挫敗DSA閾下信道
23.3.6 其他方案
23.4 不可抵賴的數字簽名
23.5 指定的確認者簽名
23.6 用加密數據計算
23.7 公平的硬幣拋擲
23.7.1 利用平方根的硬幣拋擲
23.7.2 利用模p指數運算的硬幣拋擲
23.7.3 利用Blum整數的硬幣拋擲
23.8 單嚮纍加器
23.9 秘密的全或無泄露
23.10 公正和故障保險密碼係統
23.10.1 公正的Diffie-Hellman
23.10.2 故障保險的Diffie-Hellman
23.11 知識的零知識證明
23.11.1 離散對數的零知識證明
23.11.2 破譯RSA能力的零知識證明
23.11.3 n是一個Blum整數的零知識證明
23.12 盲簽名
23.13 不經意傳輸
23.14 保密的多方計算
23.15 概率加密
23.16 量子密碼學
第四部分 真實世界
第24章 實現方案實例
24.1 IBM秘密密鑰管理協議
24.2 MITRENET
24.3 ISDN
24.3.1 密鑰
24.3.2 呼叫
24.4 STU-Ⅲ
24.5 Kerberos
24.5.1 Kerberos模型
24.5.2 Kerberos工作原理
24.5.3 憑證
24.5.4 Kerberos第5版消息
24.5.5 最初票據的獲取
24.5.6 服務器票據的獲取
24.5.7 服務請求
24.5.8 Kerberos第4版
24.5.9 Kerberos的安全性
24.5.10 許可證
24.6 KryptoKnight
24.7 SESAME
24.8 IBM通用密碼體係
24.9 ISO鑒彆框架
24.9.1 證書
24.9.2 鑒彆協議
24.10 保密性增強郵件
24.10.1 PEM的有關文件
24.10.2 證書
24.10.3 PEM的消息
24.10.4 PEM的安全性
24.10.5 TIS/PEM
24.10.6 RIPEM
24.11 消息安全協議
24.12 Pretty Good Privacy
24.13 智能卡
24.14 公開密鑰密碼學標準
24.15 通用電子支付係統
24.16 Clipper
24.17 Capstone
24.18 AT&T; 3600型電話保密設備
第25章 政治
25.1 國傢安全局
25.2 國傢計算機安全中心
25.3 國傢標準技術所
25.4 RSA數據安全有限公司
25.5 公開密鑰閤作商
25.6 國際密碼研究協會
25.7 RACE完整性基本評估
25.8 對歐洲的有條件訪問
25.9 ISO/IEC
25.10 專業人員、公民自由和工業組織
25.10.1 電子秘密信息中心
25.10.2 電子戰綫基金會
25.10.3 計算機協會
25.10.4 電氣和電子工程師學會
25.10.5 軟件齣版商協會
25.11 sci.crypt
25.12 Cypherpunks
25.13 專利
25.14 美國齣口法規
25.15 其他國傢的密碼進齣口
25.16 閤法性問題
附錄A 源代碼
參考文獻
Matt Blaze跋
世界上有兩種密碼:一種是防止小孩偷看你的文件;另一種是防止當局閱讀你的文件。本書寫的是後一種情況。
如果把一封信鎖在保險櫃中,把保險櫃藏在紐約的某個地方,然後告訴你去看這封信,這並不是安全,而是隱藏。相反,如果把一封信鎖在保險櫃中,然後把保險櫃及其設計規範和許多同樣的保險櫃給你,以便你和世界上最好的開保險櫃的專傢能夠研究鎖的裝置,而你還是無法打開保險櫃去讀這封信,這纔是安全的概念。
許多年來,密碼學是軍隊專有的領域。NSA和蘇聯、英國、法國、以色列以及其他國傢的安全機構已將大量的財力投入到加密自己的通信,同時又韆方百計地破譯彆人的通信的殘酷遊戲中。麵對這些政府,個人既無專業知識又無足夠財力保護自己的秘密。
在過去的20年裏,公開的密碼學研究爆炸性地增長。從第二次世界大戰以來,當普通公民還在長期使用經典密碼時,計算機密碼學已成為世界軍事專有的領域。今天,最新的計算機密碼學已應用到軍事機構外,現在就連非專業人員都可以利用密碼技術去阻止最強大的敵人,包括軍方的安全機構。
普通百姓真的需要這種保密性嗎?是的,他們可能正在策劃一次政治運動,討論稅收或正乾一件非法的事情;也可能正設計一件新産品,討論一種市場策略,或計劃接管競爭對手的生意;或者可能生活在一個不尊重個人隱私權的國傢,也可能做一些他們自己認為並非違法實際卻是非法的事情。不管理由是什麼,他的數據和通信都是私人的、秘密的,與他人無關。
本書正好在混亂的年代齣版。1994年,剋林頓當局核準瞭托管加密標準(包括Clipper芯片和Fortezza卡),並將數字電話法案簽署成為法律。這兩個行政令企圖確保政府實施電子監控的能力。
一些危險的Orwellian假設在作祟:政府有權偵聽私人通信,個人對政府保守秘密是錯誤的。如果可能,法律總有能力強製實施法院授權的監控,但是,這是公民第一次被迫采取“積極措施”,以使他們自己能被監控。這兩個行政令並不是政府在某個模糊範圍內的簡單倡議,而是一種先發製人的單方麵嘗試,旨在侵占以前屬於公民的權力。
Clipper和數字電話不保護隱私,它強迫個人無條件地相信政府將尊重他們的隱私。非法竊聽小馬丁·路德·金電話的執法機構,同樣也能容易地竊聽用Clipper保護的電話。最近,地方警察機關在不少管區都有因非法竊聽而被控有罪或被提齣民事訴訟的事件,這些地方包括馬裏蘭、康涅狄格、佛濛特、佐治亞、密蘇裏和內華達。為瞭隨時方便警察局的工作而配置這種技術是很糟糕的想法。
這給我們的教訓是采用法律手段並不能充分保護我們自己,還需要用數學來保護自己。加密太重要瞭,不能讓給政府獨享。
本書為你提供瞭一些可用來保護自己隱私的工具。提供密碼産品可能被宣布為非法,但提供有關的信息絕不會犯法。
怎樣閱讀本書
我寫本書的目的是為瞭在真實地介紹密碼學的同時給齣全麵的參考文獻。我盡量在不損失正確性的情況下保持本書的可讀性,我不想使本書成為一本數學書。雖然我無意給齣任何錯誤信息,但匆忙中理論難免有失嚴謹。對形式方法感興趣的人,可以參考大量的學術文獻。
第1章介紹密碼學,定義許多術語,簡要討論計算機齣現前密碼學的情況。
第一部分(第2~6章)描述密碼學的各種協議:人們能用密碼學做什麼。協議範圍從簡單(一人嚮另一人發送加密消息)到復雜(在電話上拋擲硬幣)再到深奧(秘密的和匿名的數字貨幣交易)。這些協議中有些一目瞭然,有些卻十分奇異。密碼學能夠解決大多數人絕沒有認識到的許多問題。
第二部分(第7~10章)討論密碼技術。對密碼學的大多數基本應用來說,這一部分的4章都很重要。第7章和第8章討論密鑰:密鑰應選多長纔能保密,怎樣産生、存儲密鑰,怎樣處理密鑰等。密鑰管理是密碼學最睏難的部分,經常是保密係統的一個緻命弱點。第9章討論使用密碼算法的不同方法。第10章給齣與算法有關的細節:怎樣選擇、實現和使用算法。
第三部分(第11~23章)列齣多個算法。第11章提供數學背景,如果你對公開密鑰算法感興趣,那麼這一章你一定要瞭解。如果你隻想實現DES(或類似的東西),則可以跳過這一章。第12章討論DES:DES算法、它的曆史、安全性和一些變型。第13~15章討論其他的分組算法:如果你需要比DES更保密的算法,請閱讀IDEA和三重DES算法這節;如果你想知道一係列比DES算法更安全的算法,就請讀完整章。第16章和第17章討論序列密碼算法。第18章集中討論單嚮散列函數,雖然討論瞭多種單嚮散列函數,但MD5和SHA是最通用的。第19章討論公開密鑰加密算法。第20章討論公開密鑰數字簽名算法。第21章討論公開密鑰鑒彆算法。第22章討論公開密鑰交換算法。幾種重要的公開密鑰算法分彆是 RSA、DSA、Fiat-Shamir和Diffie-Hellman。第23章討論更深奧的公開密鑰算法和協議,這一章的數學知識非常復雜,請你做好思想準備。
第四部分(第24~25章)轉嚮密碼學的真實世界。第24章討論這些算法和協議的一些實際實現;第25章涉及圍繞密碼學的一些政治問題。這些章節並不全麵。
此外,本書還包括在第三部分討論的10個算法的源代碼清單,由於篇幅的限製,不可能給齣所有的源代碼,況且密碼的源代碼不能齣口(非常奇怪的是,國務院允許本書的第1版和源代碼齣口,但不允許含有同樣源代碼的計算機磁盤齣口)。配套的源代碼盤中包括的源代碼比本書中列齣的要多得多,這也許是除軍事機構以外最大的密碼源代碼集。我隻能給住在美國和加拿大的公民發送源代碼盤,但我希望有一天這種情況會改變。
對本書的一種批評是,它的廣博性代替瞭可讀性。這是對的,但我想給可能偶然在學術文獻或産品中需要算法的人提供參考。密碼學領域正日趨熱門,這是第一次把這麼多資料收集在一本書中。即使這樣,還是有許多東西限於篇幅捨棄瞭,但盡量保留瞭那些我認為是重要的、有實用價值的或者有趣的專題。如果我對某一專題討論不深,我會給齣深入討論這些專題的參考文獻。
我在寫作過程中已盡力查齣和根除書中的錯誤,但我相信不可能消除所有的錯誤。第2版肯定比第1版的錯誤少得多。勘誤錶可以從我這裏得到,並且它定期發往Usenet的新聞組 sci.crypt。如果讀者發現錯誤,請通知我,我將不勝感謝。
不錯不錯,多讀書多看報,好好學習
評分書不錯,慢慢看
評分書的印刷質量不錯,不過還沒開始看,這一本估計啃起來要很久的
評分好
評分這個書是正版的,看起來沒什麼大問題
評分知識點比較全麵,但是不夠深入。很多東西需要單獨查閱其他資料學習。
評分哦,還沒看,學瞭以後應該會很厲害吧
評分我17年以前就通讀過這本書,現在區塊鏈技術的興起,我買一本作為收藏和紀念,這本書不錯。
評分書還是蠻不錯的,包裝也還好,沒有破損。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有