作者簡介
朱晨冰
20年C \ C++ 、Java開發經驗。主導開發過密碼、圖形、人工智慧等產品。
精通Linux、Windows系統開發及資料庫開發技術。
前言
01 密碼學概述
1.1 瑪麗女王的密碼
1.2 密碼學簡史
1.3 密碼學的基本概念
02 架設C 和C++ 密碼開發環境
2.1 密碼程式設計的兩個重要的國際函數庫
2.2 C/C++ 密碼函數庫OpenSSL
2.3 純C++ 密碼開發Crypto++ 函數庫
2.4 密碼開發函數庫GmSSL
03 對稱密碼演算法
3.1 基本概念
3.2 對稱加解密演算法的分類
3.3 串流加密演算法
3.4 分組加密演算法
3.5 利用OpenSSL 進行對稱加解密
04 雜湊函數和HMAC
4.1 雜湊函數概述
4.2 SM3 雜湊演算法
4.3 HMAC
4.4 SHA 系列雜湊演算法
4.5 更通用的基於OpenSSL 的雜湊運算
05 密碼學中常見的編碼格式
5.1 Base64 編碼
5.2 PEM 檔案
5.3 ASN.1 和BER、DER
06 非對稱演算法RSA 的加解密
6.1 非對稱密碼體制概述
6.2 RSA 概述
6.3 RSA 的數學基礎
6.4 RSA 演算法描述
6.5 RSA 演算法實例
6.6 熟悉PKCS#1
6.7 在OpenSSL 命令中使用RSA
6.8 基於OpenSSL 函數庫的RSA程式設計
6.9 隨機大質數的生成
6.10 RSA 演算法的攻擊及分析
07 數位簽章技術
7.1 概述
7.2 什麼是數位簽章技術
7.3 RSA 公開金鑰演算法在數位簽章中的應用
7.4 使用OpenSSL 命令進行簽名和驗簽
7.5 基於OpenSSL 的簽名驗簽程式設計
08 橢圓曲線密碼體制
8.1 概述
8.2 背景基礎知識
8.3 橢圓曲線的定義
8.4 密碼學中的橢圓曲線
8.5 ECC 演算法系統
09 CSP 和CryptoAPI
9.1 什麼是CSP
9.2 CryptoAPI 簡介
9.3 CSP 服務系統
9.4 CSP 的組成
9.5 CryptoAPI 系統結構
9.6 CryptoAPI 呼叫底層CSP 服務方式
9.7 CrpytoAPI 的基本功能
9.8 架設CryptoAPI 開發環境
9.9 基本加密函數
10 身份認證和PKI 理論基礎
10.1 身份認證概述
10.2 身份認證技術基礎
10.3 PKI 概述
10.4 基於X.509 證書的PKI 認證系統
11 實戰PKI
11.1 只有密碼演算法是不夠的
11.2 OpenSSL 實現CA 的架設
11.3 基於OpenSSL 的證書程式設計
11.4 證書程式設計實戰
12 SSL-TLS 程式設計
12.1 SSL 協定規範
12.2 OpenSSL 中的SSL 程式設計
12.3 SSL 函數
12.4 準備SSL 通訊所需的證書
12.5 實戰SSL 網路程式設計
13 SM2 演算法的數學基礎
13.1 素域Fp
13.2 二元擴域 2m F
13.3 橢圓曲線多倍點運算
13.4 求解橢圓曲線離散對數問題的方法
13.5 橢圓曲線上點的壓縮
13.6 有限域和模運算
13.7 橢圓曲線演算法
13.8 曲線範例
13.9 橢圓曲線方程式參數的擬隨機生成
13.10 橢圓曲線方程式參數的驗證
14 SM2 演算法的實現
14.1 為何要推出SM2 演算法
14.2 SM2 演算法採用的橢圓曲線方程式
14.3 SM2 演算法的用途
14.4 橢圓曲線密碼體制的不足
14.5 橢圓曲線的研究熱點
14.6 SM2 演算法中的有限域
14.7 有限域上的橢圓曲線
14.8 橢圓曲線系統參數及其驗證
14.9 金鑰對的生成
14.10 公開金鑰的驗證
14.11 MIRACL 函數庫入門
14.12 SM2 加解密演算法
14.13 SM2 數位簽章