内容简介
《现代密码学(第2版)》系统介绍了密码学的基本知识,包括古典密码、流密码、分组密码、Hash函数、公钥密码、数字签名、密码协议、可证明安全性理论、基于身份的密码体制、无证书密码体制和密码学的新方向。
《现代密码学(第2版)》内容全面、概念准确、语言精练,力求使用简单的语言来描述复杂的密码学算法和安全性分析问题。《现代密码学(第2版)》既可作为信息安全、计算机、通信工程等专业本科生和研究生的教材,也可以作为密码学和信息安全领域的教师、科研人员与工程技术人员的参考书。
内页插图
目录
第1章 引言
1.1 密码学的发展历史
1.2 密码学基本概念
1.2.1 保密通信系统
1.2.2 密码体制分类
1.2.3 密码攻击
习题
第2章 数学基础
2.1 数论基础
2.1.1 整除与同余
2.1.2 欧几里得除法
2.1.3 一次同余式与中国剩余定理
2.1.4 二次剩余
2.2 近世代数基础
2.2.1 群
2.2.2 环和域
2.2.3 指数与原根
2.3 计算复杂性理论
2.3.1 图灵机
2.3.2 问题的计算复杂性分类
习题
第3章 古典密码
3.1 置换密码
3.2 代替密码
3.2.1 单表代替密码
3.2.2 多表代换密码
习题
第4章 流密码
4.1 基本概念
4.1.1 一次一密与流密码
4.1.2 流密码的思想
4.1.3 流密码结构
4.2 序列的随机性
4.3 密钥流生成器
4.4 线性反馈移位寄存器
4.5 两个流密码算法
4.5.1 流密码算法RC4
4.5.2 流密码算法A5
习题
第5章 分组密码
5.1 分组密码的基本原理
5.2 分组密码的工作模式
5.3 数据加密标准
5.3.1 DES的历史
5.3.2 DES算法
5.3.3 DES的安全性
5.3.4 多重DES
5.4 高级加密标准
5.4.1 AES的基本运算单位
5.4.2 AES算法
5.4.3 AES的安全性
5.5 SMS4
5.5.1 术语说明
5.5.2 轮函数F
5.5.3 SMS4算法
5.5.4 密钥扩展算法
5.6 IDEA
5.6.1 IDEA算法
5.6.2 IDEA的安全性
习题
第6章 Hash函数
6.1 Hash函数的概念
6.1.1 Hash函数的性质
6.1.2 迭代型Hash函数的一般结构
6.1.3 Hash函数的应用
6.2 MD5
6.2.1 算法描述
6.2.2 MD5的压缩函数
6.3 SHA
6.3.1 SHA��1
6.3.2 SHA��2
6.4 基于分组密码的Hash函数
6.5 Hash函数的分析方法
习题
第7章 公钥密码
7.1 公钥密码的基本概念
7.1.1 公钥密码体制的原理
7.1.2 公钥密码体制的要求
7.2 RSA公钥密码
7.2.1 算法描述
7.2.2 RSA的安全性
7.3 ElGamal公钥密码
7.3.1 算法描述
7.3.2 ElGamal的安全性
7.4 Rabin公钥密码
7.5 椭圆曲线公钥密码
7.5.1 实数域上的椭圆曲线
7.5.2 有限域上的椭圆曲线
7.5.3 椭圆曲线密码体制
习题
第8章 数字签名
8.1 数字签名的基本概念
8.2 RSA数字签名
8.3 ElGamal数字签名
8.4 数字签名标准
8.5 其他数字签名
8.5.1 基于离散对数问题的数字签名
8.5.2 基于大整数分解问题的数字签名
8.5.3 具有特殊用途的数字签名
习题
第9章 密码协议
9.1 密钥分配
9.1.1 Needham�睸chroeder协议
9.1.2 Kerberos
9.2 密钥协商
9.2.1 Diffie�睭ellman密钥交换协议
9.2.2 端到端协议
9.3 秘密共享
9.3.1 Shamir门限方案
9.3.2 可验证秘密共享
9.3.3 无可信中心的秘密共享
9.4 身份识别
9.4.1 身份识别的概念
9.4.2 Guillou�睶uisquater身份识别方案
9.5 零知识证明
9.6 签密
习题
第10章 可证明安全性理论
10.1 可证明安全性理论的基本概念
10.1.1 公钥加密体制的安全性
10.1.2 数字签名体制的安全性
10.1.3 随机预言模型与标准模型
10.2 可证明安全的公钥加密体制
10.2.1 实际加密算法的安全性
10.2.2 RSA�睴AEP
10.2.3 将CPA体制变成CCA2体制
10.3 可证明安全的数字签名体制
10.3.1 实际签名算法的安全性
10.3.2 RSA�睵SS
习题
第11章 基于身份的密码体制
11.1 公钥认证方法
11.2 基于身份的加密体制
11.2.1 双线性配对
11.2.2 形式化模型
11.2.3 BF方案
11.3 基于身份的签名体制
11.3.1 形式化模型
11.3.2 Hess方案
11.3.3 CC方案
11.4 基于身份的密钥协商协议
11.4.1 Smart协议
11.4.2 Shim协议
11.5 基于身份的签密体制
习题
第12章 无证书密码体制
第13章 密码学的新方向
参考文献
好的,这是一份基于您提供的书名《现代密码学(第2版)》而创作的,不涉及该书具体内容的,关于另一本假想的、专注于特定技术领域的专业图书的详细简介。 --- 图书名称:《分布式系统架构与弹性设计:面向高可用性的下一代基础设施构建指南》 导言:复杂性时代的基石 在当今的数字经济浪潮中,任何面向用户的核心服务都必须具备近乎完美的可用性、极高的可扩展性和卓越的韧性。传统的集中式架构已无法应对PB级数据洪流与毫秒级延迟要求。本书《分布式系统架构与弹性设计》正是为应对这一时代挑战而生的工程手册。它并非停留在理论概念的探讨,而是深入到工程实践的每一个细节,旨在为资深工程师、架构师和技术管理者提供一套系统化、可落地的构建高弹性、自愈合分布式系统的蓝图。 本书的核心目标是阐明如何从底层硬件选型到上层应用逻辑,构建一个能够优雅地应对故障、负载突增乃至灾难性事件的复杂生态系统。我们聚焦于“弹性”(Resilience)而非仅仅是“冗余”(Redundancy),强调系统应具备的自适应、自修复和自优化能力。 --- 第一部分:分布式系统的基石与挑战(Foundations and Fundamental Trade-offs) 本部分首先为读者打下坚实的理论基础,并剖析了现代分布式系统面临的根本性难题。 第一章:超越 CAP 定理的视角:一致性模型在工程实践中的权衡 本章将深入探讨分布式一致性的复杂性。我们不再局限于教科书式的 CAP 解释,而是详细分析了诸如 Paxos、Raft 算法的实际部署障碍、性能瓶颈及其在不同业务场景下的适用性。重点讨论了向量时钟、Merkle 树在解决最终一致性冲突中的应用,并引入了基于冲突原语(CRDTs)的无协调复制模型,为操作性最终一致性提供详尽的实现案例。 第二章:时间、同步与时钟漂移的隐形杀手 在分布式环境中,时间是稀缺资源。本章详细剖析了物理时钟、逻辑时钟(Lamport Timestamps, Vector Clocks)的局限性。我们将引入 Google 的 TrueTime 概念,讨论如何利用原子钟和高精度网络延迟测量来构建可界定延迟的系统,这对于金融交易和实时协作应用的正确性至关重要。同时,对 NTP/PTP 协议在企业级环境下的部署精度进行压力测试分析。 第三章:网络层面的不可靠性建模与缓解策略 TCP/IP 协议栈在面对大规模集群环境时,其“可靠性保证”往往成为延迟的瓶颈。本章专注于数据包丢失、乱序、分区(Network Partitions)在应用层的表现。我们将对比 QUIC 协议在优化多路复用和拥塞控制方面的优势,并探讨如何设计应用层心跳和健康检查机制,以更细粒度地感知网络拓扑的变化,并据此动态调整路由和数据副本的写入策略。 --- 第二部分:构建高可用性的核心组件(Core Resilient Components) 本部分聚焦于分布式系统的关键数据存储和计算服务的具体设计模式。 第四章:键值存储的极限扩展:一致性哈希与数据布局策略 从 Dynamo 到 Cassandra 的演进揭示了去中心化存储的魅力与陷阱。本章详细拆解了虚拟节点(Virtual Nodes)如何平滑扩缩容,并对比了基于范围分区(Range-based Partitioning)和基于一致性哈希(Consistent Hashing)的优缺点。重点演示如何设计热点数据迁移算法,确保在自动负载均衡过程中不触发下游服务的雪崩效应。 第五章:消息队列:从缓冲到分布式事务的桥梁 现代消息系统已远超简单的异步缓冲。本章将消息队列视为分布式系统中的关键协调点。详细分析了 Kafka、RabbitMQ 在持久性、顺序保证和高吞吐量下的架构差异。更重要的是,我们深入探讨了事务性发布/订阅的实现,包括使用两阶段提交(2PC)的替代方案,例如 Saga 模式和 Outbox 模式,确保数据写入与消息发送的原子性。 第六章:分布式锁服务的稳健设计与陷阱规避 分布式锁是保障共享资源安全的核心,但其实现难度极高。本章基于 ZooKeeper/etcd 的租约机制,分析了 Redlock 算法的争议与局限。我们提供了基于多租约的、带羊群效应(Thundering Herd)缓解机制的轻量级锁服务实现指南,强调在锁释放失败时的优雅降级方案。 --- 第三部分:弹性与故障注入的工程艺术(Resilience Engineering and Chaos Practicum) 本部分是本书的精华,专注于如何主动测试、量化和增强系统的弹性能力。 第七章:服务网格(Service Mesh)下的流量控制与故障注入 随着微服务普及,Sidecar 代理(如 Envoy)成为弹性控制的入口。本章详细讲解了服务网格如何实现请求级别的熔断(Circuit Breaking)、超时设置和重试策略。我们将通过实际配置案例,展示如何动态调整限流阈值,并介绍错误注入(Fault Injection)在 CI/CD 流程中的集成,实现“在生产环境中发现问题”到“在集成测试中发现问题”的范式转变。 第八章:混沌工程(Chaos Engineering)的科学方法论 混沌工程不再是黑客行为,而是成熟工程的标志。本章提供了一套完整的混沌实验设计框架,涵盖假设构建、稳健性指标(Steady State)定义、实验执行与结果分析。我们将详细拆解针对延迟抖动、网络分区和依赖服务资源耗尽的三种核心实验场景,并讨论如何量化系统对特定类型故障的恢复时间目标(RTO)。 第九章:自愈合系统的设计:状态机与决策引擎 真正的弹性系统应该能够自我修复。本章探讨了如何利用有限状态机(FSM)来建模复杂服务的生命周期和降级路径。重点介绍基于度量和异常检测的自动化决策引擎,该引擎能够根据实时负载和错误率,自动触发预定义的恢复动作,例如:削减非核心功能、激活备用数据中心,或动态调整服务优先级,从而实现无人工干预的灾难响应。 --- 第四部分:跨区域与灾难恢复的部署实践(Multi-Region Deployment and DR Strategy) 本部分面向需要构建全球化服务的企业。 第十章:主动-主动(Active-Active)多活架构的挑战与收益 构建跨越地理距离的主动-主动架构需要解决数据同步的延迟和冲突回滚问题。本章深入分析了全球分布式事务(Global Transactions)的解决方案,包括基于时间戳的冲突检测和应用层的幂等性设计。我们将对比基于 DNS 的全局负载均衡与基于延迟感知的智能路由策略。 第十一章:备份与恢复的工程化:RPO 与 RTO 的极限压缩 恢复点目标(RPO)和恢复时间目标(RTO)是衡量灾难恢复能力的关键指标。本章不谈备份,而谈恢复。详细介绍了冷备、温备、热备架构下的恢复流程自动化脚本和验证机制。尤其关注数据不可变性(Immutability)在抵御勒索软件攻击方面的架构价值,以及如何设计快速、可验证的恢复演练平台。 --- 结语:面向未来的架构思维 《分布式系统架构与弹性设计》旨在培养读者一种积极应对失败的架构思维。构建一个坚不可摧的系统,其关键不在于消除所有故障,而在于深刻理解故障的本质,并提前为这些不可避免的事件设计好优雅的出口和自动的重生路径。本书提供的工具和方法论,将帮助您的团队构建出能够在任何压力下持续提供核心价值的下一代数字基础设施。
我一直对数学和计算机科学的结合领域很感兴趣,而密码学正是这样一个迷人的交叉学科。我曾经尝试过阅读一些更偏向数学理论的密码学书籍,但往往因为过于抽象而难以深入。我希望这本书能够提供一个更加易于理解的视角,它不仅能够阐述密码学的理论基础,更能展现它在现实世界中的广泛应用。我期待能够从中了解到,现代密码学是如何解决现实世界中的各种安全挑战的,比如如何保护通信的机密性、完整性和真实性。我尤其感兴趣的是,书中是否会探讨一些关于后量子密码学(PQC)的最新进展,因为这对于应对未来可能出现的量子计算威胁至关重要。同时,我也希望这本书能够引导我思考,在设计安全系统时,应该从哪些角度去考虑,以及如何评估不同加密方案的安全性。