×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787302578215
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:528
  • 出版时间:2021-06-01
  • 条形码:9787302578215 ; 978-7-302-57821-5

本书特色

本书讲解加密解密原理及其实现,内容包括对称密码算法、杂凑函数和HMAC、密码学中常见的编码格式、非对称算法RSA的加解密、数字签名技术、椭圆曲线密码体制ECC、CSP和CryptoAPI、身份认证和PKI理论基础、实战PKI、SSL-TLS编程、SM2算法的数学基础、SM2算法。

内容简介

本书详解Windows加解密算法的原理及其实现技术,内容安排首先从各大主流加解密算法的原理入手,然后用C/C++语言自主实现这些算法,很后从C/C++提供的主流加解密框架和函数库入手讲解其使用方法。 本书分为14章,内容包括密码学概述、搭建C和C++密码开发环境、对称密码算法、杂凑函数和HMAC、密码学中常见的编码格式、非对称算法RSA的加解密、数字签名技术、椭圆曲线密码体制ECC、CSP和CryptoAPI、身份认证和I理论基础、实战I、SSL-TLS编程、SM2算法的数学基础、SM2算法的实现。 本书适合用于C/C++初中级开发人员自学密码开发技术,也适合高等院校和培训机构相关专业的师生教学参考。

目录

第1章 密码学概述 1

1.1 玛丽女王的密码 1

1.2 密码学简史 5

1.3 密码学的基本概念 7

1.3.1 基本概念 7

1.3.2 密码学要解决的5大问题 7

1.3.3 密码学中的五元组 8

1.3.4 加解密算法的分类 8

第2章 搭建C和C++密码开发环境 9

2.1 密码编程的两个重要的国际库 9

2.2 C/C++密码库OpenSSL 9

2.2.1 OpenSSL源代码模块结构 10

2.2.2 OpenSSL加密库调用方式 10

2.2.3 OpenSSL支持的对称加密算法 11

2.2.4 OpenSSL支持的非对称加密算法 11

2.2.5 OpenSSL支持的信息摘要算法 12

2.2.6 OpenSSL密钥和证书管理 12

2.2.7 面向对象与OpenSSL 12

2.2.8 BIO接口 14

2.2.9 EVP接口 15

2.2.10 关于版本和操作系统 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++密码开发Crypto++库 49

2.3.1 Crypto++的编译 50

2.3.2 使用Cypto++进行AES加解密 50

2.4 国产密码开发库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 默认编译安装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进行对称加解密 120

3.5.1 基本概念 120

3.5.2 对称加解密相关函数 121

第4章 杂凑函数和HMAC 131

4.1 杂凑函数概述 131

4.1.1 什么是杂凑函数 131

4.1.2 密码学和杂凑函数 131

4.1.3 杂凑函数的发展 132

4.1.4 杂凑函数的设计 132

4.1.5 杂凑函数的分类 133

4.1.6 杂凑函数的碰撞 133

4.2 SM3杂凑算法 134

4.2.1 常量和函数 134

4.2.2 填充 135

4.2.3 迭代压缩 135

4.2.4 杂凑值 136

4.2.5 一段式SM3算法的实现 137

4.2.6 三段式SM3杂凑的实现 141

4.2.7 OpenSSL实现SM3算法 151

4.3 HMAC 155

4.3.1 什么是HMAC 155

4.3.2 产生背景 155

4.3.3 设计目标 156

4.3.4 算法描述 156

4.3.5 独立自主实现HMAC-SM3 157

4.4 SHA系列杂凑算法 160

4.4.1 SHA算法概述 160

4.4.2 SHA的发展史 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的哈希运算 204

4.5.1 获取摘要算法函数EVP_get_digestbyname 205

4.5.2 创建结构体并初始化函数EVP_MD_CTX_create 205

4.5.3 销毁摘要上下文结构体EVP_MD_CTX_destroy 206

4.5.4 摘要初始化函数EVP_DigestInit_ex 206

4.5.5 摘要更新函数EVP_DigestUpdate 206

4.5.6 摘要结束函数EVP_Digest_Final_ex 207

4.5.7 单包摘要计算函数EVP_Digest 207

第5章 密码学中常见的编码格式 210

5.1 Base64编码 210

5.1.1 Base64编码的由来 210

5.1.2 Base64的索引表 210

5.1.3 Base64的转化原理 211

5.1.4 使用OpenSSL的base64命令 213

5.1.5 编程实现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编码规则在OSI中的应用 222

5.3.4 电子商务中ASN.1和DER编码的应用 223

5.3.5 ASN的优点 223

5.3.6 ASN.1的文法描述 224

5.3.7 编码规则 225

5.3.8 ASN.1实例 232

第6章 非对称算法RSA的加解密 236

6.1 非对称密码体制概述 236

6.2 RSA概述 237

6.3 RSA的数学基础 238

6.3.1 素数(质数) 238

6.3.2 素性检测 239

6.3.3 倍数 239

6.3.4 约数 239

6.3.5 互质数 239

6.3.6 质因数 240

6.3.7 强素数 240

6.3.8 因子 240

6.3.9 模运算 240

6.3.10 模运算的操作与性质 241

6.3.11 单向函数 241

6.3.12 费马定理和欧拉定理 243

6.3.13 幂 243

6.3.14 模幂运算 243

6.3.15 同余符号“≡” 243

6.3.16 欧拉函数 244

6.3.17 *大公约数 244

6.3.18 欧几里得算法 244

6.3.19 扩展欧几里得算法 246

6.4 RSA算法描述 254

6.5 RSA算法实例 256

6.5.1 查找法计算私钥d 256

6.5.2 简便法计算私钥d 259

6.5.3 扩展欧几里得算法计算私钥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 提取私钥各参数 273

6.7.3 RSA公钥加密一个文件 275

6.7.4 RSA私钥解密一个文件 276

6.8 基于OpenSSL库的RSA编程 276

6.8.1 OpenSSL的RSA实现 277

6.8.2 主要数据结构 277

6.8.3 主要函数 278

6.9 随机大素数的生成 287

6.10 RSA算法的攻击及分析 287

6.10.1 因子分解攻击 287

6.10.2 选择密文攻击 287

6.10.3 公共模数攻击 288

6.10.4 小指数攻击 288

第7章 数字签名技术 289

7.1 概述 289

7.2 什么是数字签名技术 291

7.2.1 签名 291

7.2.2 数字签名的基本概念 291

7.2.3 数字签名的原理 292

7.2.4 数字签名的一般性定义 292

7.2.5 数字签名的分类 293

7.2.6 数字签名的安全性 294

7.2.7 数字签名的特征与应用 295

7.3 RSA公钥算法在数字签名中的应用 295

7.4 使用OpenSSL命令进行签名和验签 296

7.5 基于OpenSSL的签名验签编程 298

7.5.1 直接使用RSA函数进行签名验签 298

7.5.2 使用EVP系列函数进行签名验签 304

第8章 椭圆曲线密码体制 310

8.1 概述 310

8.1.1 信息安全技术 310

8.1.2 密码体制 311

8.1.3 椭圆曲线密码体制 311

8.1.4 为什么使用椭圆曲线密码体制 313

8.2 背景基础知识 313

8.2.1 无穷远点 314

8.2.2 射影平面坐标系 314

8.2.3 域 316

8.2.4 数域 316

8.2.5 有限域 316

8.2.6 素数域 316

8.2.7 逆元 317

8.3 椭圆曲线的定义 318

8.4 密码学中的椭圆曲线 321

8.5 ECC算法体系 326

8.5.1 有限域的模运算 327

8.5.2 椭圆曲线上的点加和倍点运算 328

8.5.3 标量乘运算 333

8.5.4 数据加解密算法 336

第9章 CSP和CryptoAPI 350

9.1 什么是CSP 350

9.2 CryptoAPI简介 350

9.3 CSP服务体系 351

9.4 CSP的组成 353

9.5 CryptoAPI体系结构 353

9.6 CryptoAPI调用底层CSP服务方式 354

9.7 CrpytoAPI的基本功能 355

9.8 搭建CryptoAPI开发环境 356

9.9 基本加密函数 357

9.9.1 服务提供者函数 358

9.9.2 密钥的产生和交换函数 363

9.9.3 编码/解码函数 364

9.9.4 数据加密/解密函数 364

9.9.5 哈希和数字签名函数 364

第10章 身份认证和PKI理论基础 369

10.1 身份认证概述 369

10.1.1 网络安全与身份认证 369

10.1.2 网络环境下身份认证所面临的威胁 370

10.1.3 网络身份认证体系的发展现状 371

10.2 身份认证技术基础 373

10.2.1 用户名/密码认证 373

10.2.2 智能卡认证 374

10.2.3 生物特征认证 374

10.2.4 动态口令 374

10.2.5 USB Key认证 375

10.2.6 基于冲击响应的认证模式 375

10.2.7 基于数字证书PKI的认证模式 375

10.3 PKI概述 376

10.3.1 PKI的国内外应用状态 376

10.3.2 PKI的应用前景 377

10.3.3 PKI存在的问题及发展趋势 378

10.4 基于X.509证书的PKI认证体系 380

10.4.1 数字证书 380

10.4.2 数字信封 383

10.4.3 PKI体系结构 384

10.4.4 认证机构 387

10.4.5 基于X.509证书的身份认证 388

第11章 实战PKI 391

11.1 只有密码算法是不够的 391

11.2 OpenSSL实现CA的搭建 393

11.3 基于OpenSSL的证书编程 403

11.4 证书编程实战 409

第12章 SSL-TLS编程 417

12.1 SSL协议规范 417

12.2 OpenSSL中的SSL编程 424

12.3 SSL函数 425

12.4 准备SSL通信所需的证书 429

12.5 实战SSL网络编程 435

第13章 SM2算法的数学基础 444

13.1 素域Fp 444

13.2 二元扩域 447

13.3 椭圆曲线多倍点运算 453

13.4 求解椭圆曲线离散对数问题的方法 456

13.5 椭圆曲线上点的压缩 458

13.6 有限域和模运算 459

13.7 椭圆曲线算法 464

13.8 曲线示例 465

13.9 椭圆曲线方程参数的拟随机生成 467

13.10 椭圆曲线方程参数的验证 468

第14章 SM2算法的实现 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 椭圆曲线系统参数及其验证 474

14.9 密钥对的生成 476

14.10 公钥的验证 477

14.11 MIRACL库入门 477

14.12 SM2加解密算法 481

14.13 SM2数字签名 508

展开全部

作者简介

朱晨冰,朱文伟的笔名,名校计算机专业统招硕士,20年C\C++、Java开发经验。主导开发过密码、图形、人工智能等产品。精通Linux、Windows系统开发及数据库开发技术。著有图书《Windows C/C++加密解密实战》《密码学原理与Java实现》《Linux C与C++ 一线开发实践》《Visual C++2017从入门到精通》。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航