Windows C/C++加密解密實戰(zhàn) 版權(quán)信息
- ISBN:9787302578215
- 條形碼:9787302578215 ; 978-7-302-57821-5
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
Windows C/C++加密解密實戰(zhàn) 本書特色
本書講解加密解密原理及其實現(xiàn),內(nèi)容包括對稱密碼算法、雜湊函數(shù)和HMAC、密碼學(xué)中常見的編碼格式、非對稱算法RSA的加解密、數(shù)字簽名技術(shù)、橢圓曲線密碼體制ECC、CSP和CryptoAPI、身份認(rèn)證和PKI理論基礎(chǔ)、實戰(zhàn)PKI、SSL-TLS編程、SM2算法的數(shù)學(xué)基礎(chǔ)、SM2算法。
Windows C/C++加密解密實戰(zhàn) 內(nèi)容簡介
本書詳解Windows加解密算法的原理及其實現(xiàn)技術(shù),內(nèi)容安排首先從各大主流加解密算法的原理入手,然后用C/C++語言自主實現(xiàn)這些算法,很后從C/C++提供的主流加解密框架和函數(shù)庫入手講解其使用方法。 本書分為14章,內(nèi)容包括密碼學(xué)概述、搭建C和C++密碼開發(fā)環(huán)境、對稱密碼算法、雜湊函數(shù)和HMAC、密碼學(xué)中常見的編碼格式、非對稱算法RSA的加解密、數(shù)字簽名技術(shù)、橢圓曲線密碼體制ECC、CSP和CryptoAPI、身份認(rèn)證和I理論基礎(chǔ)、實戰(zhàn)I、SSL-TLS編程、SM2算法的數(shù)學(xué)基礎(chǔ)、SM2算法的實現(xiàn)。 本書適合用于C/C++初中級開發(fā)人員自學(xué)密碼開發(fā)技術(shù),也適合高等院校和培訓(xùn)機(jī)構(gòu)相關(guān)專業(yè)的師生教學(xué)參考。
Windows C/C++加密解密實戰(zhàn) 目錄
第1章 密碼學(xué)概述 1
1.1 瑪麗女王的密碼 1
1.2 密碼學(xué)簡史 5
1.3 密碼學(xué)的基本概念 7
1.3.1 基本概念 7
1.3.2 密碼學(xué)要解決的5大問題 7
1.3.3 密碼學(xué)中的五元組 8
1.3.4 加解密算法的分類 8
第2章 搭建C和C++密碼開發(fā)環(huán)境 9
2.1 密碼編程的兩個重要的國際庫 9
2.2 C/C++密碼庫OpenSSL 9
2.2.1 OpenSSL源代碼模塊結(jié)構(gòu) 10
2.2.2 OpenSSL加密庫調(diào)用方式 10
2.2.3 OpenSSL支持的對稱加密算法 11
2.2.4 OpenSSL支持的非對稱加密算法 11
2.2.5 OpenSSL支持的信息摘要算法 12
2.2.6 OpenSSL密鑰和證書管理 12
2.2.7 面向?qū)ο笈cOpenSSL 12
2.2.8 BIO接口 14
2.2.9 EVP接口 15
2.2.10 關(guān)于版本和操作系統(tǒng) 16
2.2.11 在Windows下編譯OpenSSL 1.1.1 16
2.2.12 在Windows下編譯OpenSSL 1.0.2m 30
2.2.13 在Linux下編譯安裝OpenSSL 1.0.2 38
2.2.14 測試使用openssl命令 47
2.3 純C++密碼開發(fā)Crypto++庫 49
2.3.1 Crypto++的編譯 50
2.3.2 使用Cypto++進(jìn)行AES加解密 50
2.4 國產(chǎn)密碼開發(fā)庫GmSSL 52
2.4.1 GmSSL的特點 52
2.4.2 GmSSL的一些歷史 52
2.4.3 什么是國密算法 53
2.4.4 GmSSL的下載 53
2.4.5 在Windows下編譯安裝GmSSL 54
2.4.6 在Linux下編譯安裝GmSSL 57
2.4.7 默認(rèn)編譯安裝GmSSL 61
2.4.8 在老版本的Linux下編譯安裝GmSSL 64
第3章 對稱密碼算法 68
3.1 基本概念 68
3.2 對稱加解密算法的分類 69
3.3 流加密算法 69
3.3.1 基本概念 69
3.3.2 流密碼和分組密碼的比較 70
3.3.3 RC4算法 71
3.4 分組加密算法 81
3.4.1 工作模式 81
3.4.2 短塊加密 85
3.4.3 DES和3DES算法 86
3.4.4 SM4算法 104
3.5 利用OpenSSL進(jìn)行對稱加解密 120
3.5.1 基本概念 120
3.5.2 對稱加解密相關(guān)函數(shù) 121
第4章 雜湊函數(shù)和HMAC 131
4.1 雜湊函數(shù)概述 131
4.1.1 什么是雜湊函數(shù) 131
4.1.2 密碼學(xué)和雜湊函數(shù) 131
4.1.3 雜湊函數(shù)的發(fā)展 132
4.1.4 雜湊函數(shù)的設(shè)計 132
4.1.5 雜湊函數(shù)的分類 133
4.1.6 雜湊函數(shù)的碰撞 133
4.2 SM3雜湊算法 134
4.2.1 常量和函數(shù) 134
4.2.2 填充 135
4.2.3 迭代壓縮 135
4.2.4 雜湊值 136
4.2.5 一段式SM3算法的實現(xiàn) 137
4.2.6 三段式SM3雜湊的實現(xiàn) 141
4.2.7 OpenSSL實現(xiàn)SM3算法 151
4.3 HMAC 155
4.3.1 什么是HMAC 155
4.3.2 產(chǎn)生背景 155
4.3.3 設(shè)計目標(biāo) 156
4.3.4 算法描述 156
4.3.5 獨立自主實現(xiàn)HMAC-SM3 157
4.4 SHA系列雜湊算法 160
4.4.1 SHA算法概述 160
4.4.2 SHA的發(fā)展史 161
4.4.3 SHA系列算法的核心思想和特點 161
4.4.4 單向性 161
4.4.5 主要用途 161
4.4.6 SHA256算法原理解析 161
4.4.7 SHA384和SHA512算法 177
4.5 更通用的基于OpenSSL的哈希運(yùn)算 204
4.5.1 獲取摘要算法函數(shù)EVP_get_digestbyname 205
4.5.2 創(chuàng)建結(jié)構(gòu)體并初始化函數(shù)EVP_MD_CTX_create 205
4.5.3 銷毀摘要上下文結(jié)構(gòu)體EVP_MD_CTX_destroy 206
4.5.4 摘要初始化函數(shù)EVP_DigestInit_ex 206
4.5.5 摘要更新函數(shù)EVP_DigestUpdate 206
4.5.6 摘要結(jié)束函數(shù)EVP_Digest_Final_ex 207
4.5.7 單包摘要計算函數(shù)EVP_Digest 207
第5章 密碼學(xué)中常見的編碼格式 210
5.1 Base64編碼 210
5.1.1 Base64編碼的由來 210
5.1.2 Base64的索引表 210
5.1.3 Base64的轉(zhuǎn)化原理 211
5.1.4 使用OpenSSL的base64命令 213
5.1.5 編程實現(xiàn)Base64編解碼 214
5.2 PEM文件 217
5.2.1 什么是PEM文件 217
5.2.2 生成一個PEM文件 219
5.3 ASN.1和BER、DER 220
5.3.1 ASN.1的歷史 220
5.3.2 ASN.1的基本概念 221
5.3.3 ASN.1和ASN.1編碼規(guī)則在OSI中的應(yīng)用 222
5.3.4 電子商務(wù)中ASN.1和DER編碼的應(yīng)用 223
5.3.5 ASN的優(yōu)點 223
5.3.6 ASN.1的文法描述 224
5.3.7 編碼規(guī)則 225
5.3.8 ASN.1實例 232
第6章 非對稱算法RSA的加解密 236
6.1 非對稱密碼體制概述 236
6.2 RSA概述 237
6.3 RSA的數(shù)學(xué)基礎(chǔ) 238
6.3.1 素數(shù)(質(zhì)數(shù)) 238
6.3.2 素性檢測 239
6.3.3 倍數(shù) 239
6.3.4 約數(shù) 239
6.3.5 互質(zhì)數(shù) 239
6.3.6 質(zhì)因數(shù) 240
6.3.7 強(qiáng)素數(shù) 240
6.3.8 因子 240
6.3.9 模運(yùn)算 240
6.3.10 模運(yùn)算的操作與性質(zhì) 241
6.3.11 單向函數(shù) 241
6.3.12 費(fèi)馬定理和歐拉定理 243
6.3.13 冪 243
6.3.14 模冪運(yùn)算 243
6.3.15 同余符號“≡” 243
6.3.16 歐拉函數(shù) 244
6.3.17 *大公約數(shù) 244
6.3.18 歐幾里得算法 244
6.3.19 擴(kuò)展歐幾里得算法 246
6.4 RSA算法描述 254
6.5 RSA算法實例 256
6.5.1 查找法計算私鑰d 256
6.5.2 簡便法計算私鑰d 259
6.5.3 擴(kuò)展歐幾里得算法計算私鑰d 260
6.5.4 加密字母 261
6.5.5 分組加密字符串 262
6.6 熟悉PKCS#1 266
6.6.1 PKCS#1填充 267
6.6.2 PKCS#1中的 RSA私鑰語法 271
6.7 在OpenSSL命令中使用RSA 272
6.7.1 生成RSA公私鑰 272
6.7.2 提取私鑰各參數(shù) 273
6.7.3 RSA公鑰加密一個文件 275
6.7.4 RSA私鑰解密一個文件 276
6.8 基于OpenSSL庫的RSA編程 276
6.8.1 OpenSSL的RSA實現(xiàn) 277
6.8.2 主要數(shù)據(jù)結(jié)構(gòu) 277
6.8.3 主要函數(shù) 278
6.9 隨機(jī)大素數(shù)的生成 287
6.10 RSA算法的攻擊及分析 287
6.10.1 因子分解攻擊 287
6.10.2 選擇密文攻擊 287
6.10.3 公共模數(shù)攻擊 288
6.10.4 小指數(shù)攻擊 288
第7章 數(shù)字簽名技術(shù) 289
7.1 概述 289
7.2 什么是數(shù)字簽名技術(shù) 291
7.2.1 簽名 291
7.2.2 數(shù)字簽名的基本概念 291
7.2.3 數(shù)字簽名的原理 292
7.2.4 數(shù)字簽名的一般性定義 292
7.2.5 數(shù)字簽名的分類 293
7.2.6 數(shù)字簽名的安全性 294
7.2.7 數(shù)字簽名的特征與應(yīng)用 295
7.3 RSA公鑰算法在數(shù)字簽名中的應(yīng)用 295
7.4 使用OpenSSL命令進(jìn)行簽名和驗簽 296
7.5 基于OpenSSL的簽名驗簽編程 298
7.5.1 直接使用RSA函數(shù)進(jìn)行簽名驗簽 298
7.5.2 使用EVP系列函數(shù)進(jìn)行簽名驗簽 304
第8章 橢圓曲線密碼體制 310
8.1 概述 310
8.1.1 信息安全技術(shù) 310
8.1.2 密碼體制 311
8.1.3 橢圓曲線密碼體制 311
8.1.4 為什么使用橢圓曲線密碼體制 313
8.2 背景基礎(chǔ)知識 313
8.2.1 無窮遠(yuǎn)點 314
8.2.2 射影平面坐標(biāo)系 314
8.2.3 域 316
8.2.4 數(shù)域 316
8.2.5 有限域 316
8.2.6 素數(shù)域 316
8.2.7 逆元 317
8.3 橢圓曲線的定義 318
8.4 密碼學(xué)中的橢圓曲線 321
8.5 ECC算法體系 326
8.5.1 有限域的模運(yùn)算 327
8.5.2 橢圓曲線上的點加和倍點運(yùn)算 328
8.5.3 標(biāo)量乘運(yùn)算 333
8.5.4 數(shù)據(jù)加解密算法 336
第9章 CSP和CryptoAPI 350
9.1 什么是CSP 350
9.2 CryptoAPI簡介 350
9.3 CSP服務(wù)體系 351
9.4 CSP的組成 353
9.5 CryptoAPI體系結(jié)構(gòu) 353
9.6 CryptoAPI調(diào)用底層CSP服務(wù)方式 354
9.7 CrpytoAPI的基本功能 355
9.8 搭建CryptoAPI開發(fā)環(huán)境 356
9.9 基本加密函數(shù) 357
9.9.1 服務(wù)提供者函數(shù) 358
9.9.2 密鑰的產(chǎn)生和交換函數(shù) 363
9.9.3 編碼/解碼函數(shù) 364
9.9.4 數(shù)據(jù)加密/解密函數(shù) 364
9.9.5 哈希和數(shù)字簽名函數(shù) 364
第10章 身份認(rèn)證和PKI理論基礎(chǔ) 369
10.1 身份認(rèn)證概述 369
10.1.1 網(wǎng)絡(luò)安全與身份認(rèn)證 369
10.1.2 網(wǎng)絡(luò)環(huán)境下身份認(rèn)證所面臨的威脅 370
10.1.3 網(wǎng)絡(luò)身份認(rèn)證體系的發(fā)展現(xiàn)狀 371
10.2 身份認(rèn)證技術(shù)基礎(chǔ) 373
10.2.1 用戶名/密碼認(rèn)證 373
10.2.2 智能卡認(rèn)證 374
10.2.3 生物特征認(rèn)證 374
10.2.4 動態(tài)口令 374
10.2.5 USB Key認(rèn)證 375
10.2.6 基于沖擊響應(yīng)的認(rèn)證模式 375
10.2.7 基于數(shù)字證書PKI的認(rèn)證模式 375
10.3 PKI概述 376
10.3.1 PKI的國內(nèi)外應(yīng)用狀態(tài) 376
10.3.2 PKI的應(yīng)用前景 377
10.3.3 PKI存在的問題及發(fā)展趨勢 378
10.4 基于X.509證書的PKI認(rèn)證體系 380
10.4.1 數(shù)字證書 380
10.4.2 數(shù)字信封 383
10.4.3 PKI體系結(jié)構(gòu) 384
10.4.4 認(rèn)證機(jī)構(gòu) 387
10.4.5 基于X.509證書的身份認(rèn)證 388
第11章 實戰(zhàn)PKI 391
11.1 只有密碼算法是不夠的 391
11.2 OpenSSL實現(xiàn)CA的搭建 393
11.3 基于OpenSSL的證書編程 403
11.4 證書編程實戰(zhàn) 409
第12章 SSL-TLS編程 417
12.1 SSL協(xié)議規(guī)范 417
12.2 OpenSSL中的SSL編程 424
12.3 SSL函數(shù) 425
12.4 準(zhǔn)備SSL通信所需的證書 429
12.5 實戰(zhàn)SSL網(wǎng)絡(luò)編程 435
第13章 SM2算法的數(shù)學(xué)基礎(chǔ) 444
13.1 素域Fp 444
13.2 二元擴(kuò)域 447
13.3 橢圓曲線多倍點運(yùn)算 453
13.4 求解橢圓曲線離散對數(shù)問題的方法 456
13.5 橢圓曲線上點的壓縮 458
13.6 有限域和模運(yùn)算 459
13.7 橢圓曲線算法 464
13.8 曲線示例 465
13.9 橢圓曲線方程參數(shù)的擬隨機(jī)生成 467
13.10 橢圓曲線方程參數(shù)的驗證 468
第14章 SM2算法的實現(xiàn) 470
14.1 為何要推出SM2算法 470
14.2 SM2算法采用的橢圓曲線方程 471
14.3 SM2算法的用途 471
14.4 橢圓曲線密碼體制的不足 471
14.5 橢圓曲線的研究熱點 472
14.6 SM2算法中的有限域 473
14.7 有限域上的橢圓曲線 473
14.8 橢圓曲線系統(tǒng)參數(shù)及其驗證 474
14.9 密鑰對的生成 476
14.10 公鑰的驗證 477
14.11 MIRACL庫入門 477
14.12 SM2加解密算法 481
14.13 SM2數(shù)字簽名 508
Windows C/C++加密解密實戰(zhàn) 作者簡介
朱晨冰,朱文偉的筆名,名校計算機(jī)專業(yè)統(tǒng)招碩士,20年C\C++、Java開發(fā)經(jīng)驗。主導(dǎo)開發(fā)過密碼、圖形、人工智能等產(chǎn)品。精通Linux、Windows系統(tǒng)開發(fā)及數(shù)據(jù)庫開發(fā)技術(shù)。著有圖書《Windows C/C++加密解密實戰(zhàn)》《密碼學(xué)原理與Java實現(xiàn)》《Linux C與C++ 一線開發(fā)實踐》《Visual C++2017從入門到精通》。
- >
名家?guī)阕x魯迅:朝花夕拾
- >
山海經(jīng)
- >
煙與鏡
- >
羅曼·羅蘭讀書隨筆-精裝
- >
姑媽的寶刀
- >
隨園食單
- >
推拿
- >
新文學(xué)天穹兩巨星--魯迅與胡適/紅燭學(xué)術(shù)叢書(紅燭學(xué)術(shù)叢書)