高手才用 C語言:Windows C/C++ 加密解密實戰

高手才用 C語言:Windows C/C++ 加密解密實戰

作者: 朱晨冰 李建英
出版社: 深智數位
出版在: 2021-09-16
ISBN-13: 9789860776348
ISBN-10: 9860776342
裝訂格式: 平裝
總頁數: 720 頁





內容描述


用最強大的Windows C/C++暴力破解密碼
一窺這個充滿數學及程式語言的新世界
【本書特色】
◎支撐現代人類經濟活動的就是密碼學
◎用最強大的Windows C/C++暴力破解 
◎一窺這個充滿數學及程式語言的新世界
C/C++一直是程式語言的王者,再方便的Python,再強大的Java,再物件化的Ruby,都沒有C/C++來得暴力直接,使用C/C++是最能了解密碼學的極佳工具。
【本書內容】
雖然量子電腦已經出現,但距離真正能破解現代密碼的超強計算能力還有一段時間。密碼學是現代人類經濟文明的基礎,這些靠著數學及演算法所產生的保護力,讓我們可以放心地在網上購物,刷卡,提款,交易虛擬貨幣等。
C/C++一直是程式語言的王者,使用C/C++是最能了解密碼學的極佳工具。
本書完整介紹我們很熟悉的名詞,HTTPS,ECC,RSA,SSL,並且將其數學的原理都說明清楚。在演算法方法,一些基本的對稱演算法、雜湊、編碼格式、RSA、數位簽名等等。而常見的密碼體制如橢圓曲線、CSP、CryptoAPI、身份驗證及PKI理論也有說明。網路上傳輸的基礎SSL-TLS更有完整的實作。最後也說明了SM2等原理,對想研究加密學、虛擬貨幣是不可或缺的一本好書。
本書來自擁有幾十年經驗的密碼開發工程師的一手資料,透過本書,讀者不僅能了解原理,還能自己上機實現,讓你具備熟練呼叫業界知名演算法庫的能力,做到從理論到實踐的完全精通,這一點是市面上99%的密碼書都無法做到的。
學完本書,你就可稱自己是Windows C/C++的密碼高手了。
適合讀者群  C/C 初、中級開發人員自學密碼開發技術,或作為大專院校和培訓機構參考用書。


目錄大綱


前言
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 數位簽章


作者介紹


作者簡介
朱晨冰
20年C \ C++ 、Java開發經驗。主導開發過密碼、圖形、人工智慧等產品。
精通Linux、Windows系統開發及資料庫開發技術。




相關書籍

Introducing Microsoft Quantum Computing for Developers: Using the Quantum Development Kit and Q#

作者 Hooyberghs Johnny

2021-09-16

通訊系統 -- 類比與數位, 2/e (Haykin: Introduction to Analog and Digital Communications, 2/e)

作者 Simon Haykin Michael Moher 繆紹綱譯

2021-09-16

5G Second Phase Explained C

作者 Penttinen Jyrki T. J.

2021-09-16