●序
前言
第1章 密碼算法和密鑰
1.1 密碼算法
1.1.1 密碼算法和數據安全
1.1.2 密碼雜湊算法
1.1.3 對稱密碼算法
1.1.4 公鑰密碼算法
1.2 密鑰管理和密鑰安全
1.2.1 密鑰管理
1.2.2 密鑰安全
1.3 密碼算法實現
1.3.1 密碼軟件實現
1.3.2 密碼硬件實現
1.3.3 密碼算法軟硬件實現對比
1.4 本章小結
參考文獻
第2章 計算機和操作繫統內存管理
2.1 計算機
2.1.1 寄存器
2.1.2 內存
2.1.3 Cache
2.2 操作繫統內存管理
2.2.1 內核態和用戶態的隔離
2.2.2 用戶態進程隔離
2.3 本章小結
參考文獻
第3章 典型的密碼軟件實現方案
3.1 用戶態密碼軟件實現
3.1.1 常見的用戶態密碼庫
3.1.2 現有用戶態密碼庫的安全防護
3.2 內核態密碼軟件實現
3.2.1 Windows CryptoAPI和Windows CNG
3.2.2 Linux Keillel Crypto API
3.3 虛擬機監控器密碼軟件實現
3.3.1 虛擬密碼設備方案
3.3.2 虛擬化環境的虛擬密碼設備管理方案
3.4 本章小結
參考文獻
第4章 密碼軟件實現面臨的攻擊
4.1 軟件攻擊
4.1.1 針對操作繫統隔離機制漏洞的攻擊
4.1.2 針對內存數據殘餘的攻擊
4.1.3 針對密碼軟件實現自身漏洞的攻擊
4.2 物理攻擊
4.2.1 冷啟動攻擊
4.2.2 DMA攻擊
4.3 間接攻擊
4.3.1 基於頁共享的Flush+Reload攻擊
4.3.2 CPU硬件漏洞攻擊
4.4 本章小結
參考文獻
第5章 基於寄存器的密鑰安全方案
5.1 方案的原理
5.2 安全假設和安全目標
5.3 基於寄存器的對稱密碼算法實現方案
5.3.1 方案設計
5.3.2 繫統實現
5.3.3 結合虛擬機監控器的實現
5.3.4 實現評估
5.4 基於寄存器的公鑰密碼算法實現方案
5.4.1 方案設計
5.4.2 繫統實現
5.4.3 實現評估
5.5 本章小結
參考文獻
第6章 基於Cache的密鑰安全方案
6.1 方案的原理
6.2 針對公鑰密碼算法的Copker方案
6.2.1 安全假設和安全目標
6.2.2 方案設計
6.2.3 繫統實現
6.2.4 實現評估
6.3 針對嵌入式設備的Sentry方案
6.3.1 安全假設和安全目標
6.3.2 方案設計和實現
6.3.3 實現評估
6.4 本章小結
參考文獻
第7章 基於處理器擴展特性的密鑰安全方案
7.1 基於可信執行環境的密鑰安全方案
7.1.1 可信執行環境簡介
7.1.2 方案的原理
7.1.3 安全假設和安全目標
7.1.4 密鑰安全方案設計和示例
7.2 基於事務內存機制的密鑰安全方案
7.2.1 Intel TSX工作機制
7.2.2 安全假設和安全目標
7.2.3 方案設計
7.2.4 繫統實現
7.2.5 實現評估
7.3 本章小結
參考文獻
第8章 基於門限密碼算法的密鑰安全方案
8.1 秘密分享
8.1.1 Shamir秘密分享方案
8.1.2 基於Shamir秘密分享方案的擴展
8.2 門限密碼算法
8.2.1 RSA門限密碼算法示例
8.2.2 SM2門限密碼算法示例
8.3 針對門限密碼算法的密鑰安全方案
8.3.1 方案的原理
8.3.2 安全假設和安全目標
8.3.3 繫統架構和工作流程
8.3.4 實現評估
8.3.5 密鑰使用控制
8.4 本章小結
參考文獻
縮略語表