本书由资深的密码学大咖David 编写,由专业研究密码学的博士和硕士团队翻译完成。原汁原味地还原了书中关于密码学深浅出的讲解,通过插画和简明易懂的描述,将密码学相关的知识和实践技巧讲得通透明白。 本书各章还有若干习题,以便于读者巩固知识。在书的附录中,对应提供了相关习题的答案,以便于读者对照参考。此外,本书还提供配套的彩图下载,以优化读者的阅读体验。
售 价:¥
纸质售价:¥113.80购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版 权
内容提要
作者简介
译者简介
关于封面插图
序言
前言
资源与支持
第一部分 密码原语:密码学的重要组成部分
第1章 引言
1.1 密码学使协议安全
1.2 对称密码:对称加密概述
1.3 Kerckhoff原则:只有密钥保密
1.4 非对称加密:两个密钥优于一个密钥
1.4.1 密钥交换
1.4.2 非对称加密
1.4.3 数字签名:与手写签名作用一样
1.5 密码算法分类和抽象化
1.6 理论密码学vs.实用密码学
1.7 从理论到实践:选择独特冒险
1.8 警示之言
1.9 本章小结
第2章 哈希函数
2.1 什么是哈希函数
2.2 哈希函数的安全属性
2.3 哈希函数的安全性考量
2.4 哈希函数的实际应用
2.4.1 承诺
2.4.2 子资源完整性
2.4.3 比特流
2.4.4 洋葱路由
2.5 标准化的哈希函数
2.5.1 SHA-2哈希函数
2.5.2 SHA-3哈希函数
2.5.3 SHAKE和cSHAKE:两个可扩展输出的函数
2.5.4 使用元组哈希避免模糊哈希
2.6 口令哈希
2.7 本章小结
第3章 消息认证码
3.1 无状态cookie——一个引入MAC的范例
3.2 一个代码示例
3.3 MAC的安全属性
3.3.1 伪造认证标签
3.3.2 认证标签的长度
3.3.3 重放攻击
3.3.4 在固定时间内验证认证标签
3.4 现实世界中的MAC
3.4.1 消息认证码
3.4.2 密钥派生
3.4.3 cookie的完整性
3.4.4 哈希表
3.5 实际应用中的消息认证码
3.5.1 HMAC——一个基于哈希函数的消息认证码算法
3.5.2 KMAC——基于cSHAKE的消息认证码算法
3.6 SHA-2和长度扩展攻击
3.7 本章小结
第4章 认证加密
4.1 密码的定义
4.2 高级加密标准
4.2.1 AES算法的安全级别
4.2.2 AES算法的接口
4.2.3 AES内部构造
4.3 加密企鹅图片和CBC操作模式
4.4 选用具有认证机制的AES-CBC-HMAC算法
4.5 认证加密算法的一体式构造
4.5.1 有附加数据的认证加密
4.5.2 AEAD型算法AES-GCM
4.5.3 ChaCha20-Poly1305算法
4.6 其他类型的对称加密
4.6.1 密钥包装
4.6.2 抗Nonce误用的认证加密算法
4.6.3 磁盘加密
4.6.4 数据库加密
4.7 本章小结
第5章 密钥交换
5.1 密钥交换的定义
5.2 Diffie-Hellman(DH)密钥交换
5.2.1 群论
5.2.2 离散对数问题:DH算法的基础
5.2.3 DH密钥交换标准
5.3 基于椭圆曲线的DH密钥交换算法
5.3.1 椭圆曲线的定义
5.3.2 ECDH密钥交换算法的实现
5.3.3 ECDH算法的标准
5.4 小子群攻击以及其他安全注意事项
5.5 本章小结
第6章 非对称加密和混合加密
6.1 非对称加密简介
6.2 实践中的非对称加密和混合加密
6.2.1 密钥交换和密钥封装
6.2.2 混合加密
6.3 RSA非对称加密的优缺点
6.3.1 教科书式RSA算法
6.3.2 切勿使用PKCS#1 v1.5标准中的RSA算法
6.3.3 非对称加密RSA-OAEP
6.4 混合加密ECIES
6.5 本章小结
第7章 数字签名与零知识证明
7.1 数字签名的定义
7.1.1 现实应用中计算和验证签名的方法
7.1.2 数字签名应用案例:认证密钥交换
7.1.3 数字签名的实际用法:公钥基础设施
7.2 零知识证明:数字签名的起源
7.2.1 Schnorr身份识别协议:一种交互式零知识证明
7.2.2 数字签名作为非交互式零知识证明
7.3 签名算法的标准
7.3.1 RSA PKCS#1 v1.5:一个有漏洞的标准
7.3.2 RSA-PSS:更优的标准
7.3.3 椭圆曲线数字签名算法
7.3.4 Edwards曲线数字签名算法
7.4 签名方案特殊性质
7.4.1 对签名的替换攻击
7.4.2 签名的可延展性
7.5 本章小结
第8章 随机性和秘密性
8.1 随机性的定义
8.2 伪随机数发生器
8.3 获取随机性的方法
8.4 生成随机数和安全性考虑
8.5 公开的随机性
8.6 用HKDF算法派生密钥
8.7 管理密钥和秘密信息
8.8 分布式门限密码技术
8.9 本章小结
第二部分 协议:密码学的核心作用
第9章 安全传输
9.1 SSL和TLS协议
9.1.1 从SSL到TLS的转化
9.1.2 TLS的实际应用
9.2 TLS协议的工作原理
9.2.1 TLS协议的握手阶段
9.2.2 TLS 1.3中加密应用程序数据的方法
9.3 Web加密技术发展现状
9.4 其他安全传输协议
9.5 Noise协议框架:TLS新的替代方案
9.5.1 Noise协议框架中不同的握手模式
9.5.2 Noise协议的握手过程
9.6 本章小结
第10章 端到端加密
10.1 为什么使用端到端加密
10.2 信任源缺失
10.3 邮件加密的失败案例
10.3.1 PGP或GPG协议的工作原理
10.3.2 将Web系统信任机制扩展到用户之间
10.3.3 寻找PGP公钥是个难题
10.3.4 PGP的替代品
10.4 安全消息传递:现代端到端加密协议Signal
10.4.1 比Web信任机制更友好:信任可验证
10.4.2 X3DH:Signal协议的握手过程
10.4.3 双棘轮协议:Signal握手结束之后的协议
10.5 端到端加密最新进展
10.6 本章小结
第11章 用户认证
11.1 认证性的定义
11.2 用户身份认证
11.2.1 用一个口令来控制所有口令:单点登录以及口令管理器
11.2.2 避免口令的明文传输:使用非对称的口令认证密钥交换协议
11.2.3 一次性口令并不是真正的口令:使用对称密钥进行无口令操作
11.2.4 用非对称密钥替换口令
11.3 用户辅助身份认证:人工辅助设备配对
11.3.1 预共享密钥
11.3.2 CPace对称口令认证密钥交换
11.3.3 用短认证字符串避免密钥交换遭受MIMT攻击
11.4 本章小结
第12章 “加密货币”
12.1 拜占庭共识算法介绍
12.1.1 数据恢复问题:分布式数据可恢复协议
12.1.2 信任问题:利用去中心化解决信任问题
12.1.3 规模问题:无许可和不受审查的网络
12.2 Bitcoin的工作原理
12.2.1 Bitcoin处理用户余额和交易的方式
12.2.2 挖掘数字黄金BTC
12.2.3 解决挖矿中的冲突
12.2.4 使用Merkle树减小区块的大小
12.3 “加密货币”之旅
12.3.1 波动性
12.3.2 延迟性
12.3.3 区块链规模
12.3.4 机密性
12.3.5 电能消耗
12.4 DiemBFT:一种拜占庭容错共识协议
12.4.1 安全性和活跃性:BFT共识协议的两大属性
12.4.2 一轮DiemBFT协议
12.4.3 协议对不诚实行为的容忍度
12.4.4 DiemBFT协议的投票规则
12.4.5 交易最终得到确认
12.4.6 DiemBFT协议安全性的直观解释
12.5 本章小结
第13章 硬件密码学
13.1 现代密码学中常见的攻击模型
13.2 不可信环境:让硬件提供帮助
13.2.1 白盒密码学不可取
13.2.2 智能卡和安全元件
13.2.3 硬件安全模块——银行业的宠儿
13.2.4 可信平台模块:安全元件的有效标准化
13.2.5 在可信执行环境中进行保密计算
13.3 何为最优解决方案
13.4 防泄露密码
13.4.1 恒定时间编程
13.4.2 隐藏与盲化
13.4.3 故障攻击
13.5 本章小结
第14章 后量子密码
14.1 震动密码学界的量子计算机
14.1.1 研究小物体的量子力学
14.1.2 量子计算机从诞生到实现量子霸权
14.1.3 Shor和Grover算法对密码学的影响
14.1.4 可抵抗量子算法的后量子密码
14.2 基于哈希函数的一次性签名
14.2.1 Lamport一次性签名
14.2.2 具有较小密钥长度的Winternitz一次性签名方案
14.2.3 XMSS和SPHINCS+多次签名
14.3 基于格密码的短密钥和签名方案
14.3.1 格的定义
14.3.2 格密码的基础:LWE问题
14.3.3 基于格的密钥交换算法Kyber
14.3.4 基于格的数字签名算法Dilithium
14.4 有必要恐慌吗
14.5 本章小结
第15章 新一代密码技术
15.1 安全多方计算
15.1.1 隐私集合求交
15.1.2 通用MPC协议
15.1.3 MPC发展现状
15.2 全同态加密及其在云技术中的应用
15.2.1 基于RSA加密方案的同态加密方案示例
15.2.2 不同类型的同态加密
15.2.3 Bootstrapping:全同态加密的关键
15.2.4 一种基于LWE问题的FHE方案
15.2.5 FHE的用武之地
15.3 通用零知识证明
15.3.1 zk-SNARK的工作原理
15.3.2 同态承诺隐藏部分证据
15.3.3 利用双线性对改进同态承诺方案
15.3.4 简洁性的来源
15.3.5 程序转换为多项式
15.3.6 程序转换为算术电路
15.3.7 R1CS运算电路
15.3.8 将R1CS转换为多项式
15.3.9 隐藏在指数中的多项式
15.4 本章小结
第16章 密码技术并非万能
16.1 寻找到正确的密码原语或协议
16.2 如何使用加密原语或协议——文雅标准与形式验证
16.3 哪里能找到出色的密码库
16.4 滥用密码技术:开发者是密码学家的敌手
16.5 可用安全性
16.6 密码学并非一座孤岛
16.7 不要轻易亲自实现密码算法
16.8 本章小结
附录 习题答案
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜