严肃的密码学:实用现代加密术pdf下载pdf下载

严肃的密码学:实用现代加密术百度网盘pdf下载

作者:
简介:本篇主要提供严肃的密码学:实用现代加密术pdf下载
出版社:电子工业出版社
出版时间:2021-06
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

这本面向实践的现代密码学指南原理性内容扎实,将密码学中的核心数学概念各个击破。您将在此了解有关验证加密、安全随机性、哈希函数、分组密码以及诸如RSA和椭圆曲线等公钥密码技术。从本书中您还将学到:

 密码学中的关键概念,例如,计算安全性、攻击者模型和前向保密性

 HTTPS安全地址背后的TLS协议的优点和局限性

 量子计算和后量子密码学

 通过大量代码示例和应用实例来了解各种漏洞

 如何选择最佳算法或协议,向供应商问出正确的问题

每章都以实例展示常见的应用误区,并详解可能出错的地方以及如何避免它们。无论你是经验丰富的从业者,还是该领域的初学者,本书都能提供有关现代密码学及其应用的完整评述。

内容简介

本书是著名密码算法BLAKE2、SipHash和NORX的创造者、当代应用密码学大师Jean-Philippe Aumasson的重磅力作的中文译本。正如其名,本书并非浅尝辄止的领域概述,而是全面深入地讨论了密码工程的理论、技术以及前沿进展。

本书面向密码学研究及从业人员,从本书中您不仅能学到密码算法的工作原理,还将学习如何在实际的系统中使用它们。

作者简介

Jean-Philippe Aumasson是总部位于瑞士的国际网络安全公司Kudelski Security的首席研究工程师,他在密码学和密码分析领域发表文章40余篇。他设计了广为人知的哈希函数BLAKE2和SipHash,也是Black Hat、DEF CON、Troopers和Infiltrate等信息安全会议上的常客。


译者介绍:

陈华瑾,信息工程大学网络空间安全学院副教授,2013年获得密码学博士学位。长期从事密码学教学与科研工作,研究方向是对称密码设计与分析。

俞少华,公安部第三研究所信息网络安全公安部重点实验室网络安全专家,2007年硕士毕业于浙江大学数学系,一直从事网络安全工作,在网络攻击与防御、网络安全事件取证溯源和密码学领域有着深入研究。


精彩书评

“关于密码工程深入且前沿讨论,旨在帮助想在这个领域做得更好的从业者。”

——Matthew D. Green,约翰斯·霍普金斯大学信息安全研究所教授

目录

第1章 加密

古典密码

凯撒密码

维吉尼亚密码

密码是如何工作的:置换|操作模式

完美的加密:一次一密体制

加密安全性

非对称加密

加密之外的密码学

认证加密|格式保持加密|全同态加密|可搜索加密|可调加密

意外如何发生:弱密码|错误模型


第2章 随机性

作为概率分布的随机性

熵:不确定性的度量指标

随机数发生器和伪随机数发生器

现实世界中的PRNG

在基于UNIX的系统中生成随机比特

Windows中的CryptGenRandom()函数

基于硬件的PRNG:英特尔微处理器中的RDRAND

意外如何发生:熵源不理想|启动时熵不足|非加密PRNG|对强随机性的采样漏洞

第3章 密码学中的安全性

理论上安全:信息安全性|实际安全:计算安全性

以比特度量安全性|全攻击成本|选择和评估安全强度

安全实现:可证明安全性|启发式安全性

生成对称密钥|生成非对称密钥|保护密钥

意外如何发生:不正确的安全性证明|支持遗留系统的短密钥

第4章 分组密码

安全目标|分组大小|码本攻击

如何构造分组密码:分组密码的轮数|滑动攻击和子密钥|替换-置换网络|Feistel结构

高级加密标准(AES):AES内核|使用AES

实现AES:基于查询表实现|原生指令集

电码本模式(ECB)|密码分组链接(CBC)模式|如何在CBC模式中加密消息|计数(CTR)模式

意外如何发生:中间相遇攻击|Padding Oracle攻击

第5章 序列密码

基于状态转移的和基于计数器的序列密码

面向硬件的序列密码:反馈移位寄存器|Grain-128a算法|A5/1算法

面向软件的序列密码:RC4|Salsa20

意外如何发生:nonce的重复使用|破解RC4|硬件烧制时的弱密码

第6章 哈希函数

哈希函数的安全性:不可预测性|原像攻击抗性|抗碰撞性|查找碰撞

基于压缩的哈希函数:Merkle–Damgård结构

基于置换的哈希函数:海绵函数

哈希函数SHA系列:SHA-1|SHA-2|SHA-3竞赛|Keccak(SHA-3)

BLAKE2哈希函数

意外如何发生:长度扩展攻击|欺骗存储证明协议

第7章 带密钥的哈希

安全通信中的消息认证码|伪造和选择消息攻击|重放攻击

伪随机函数:PRF的安全性|为什么PRF比MAC更安全

加秘密前缀的构造方法|带秘密后缀的构造方法

HMAC的构造方法|针对基于哈希的MAC的一般攻击

由分组密码构造的带密钥哈希:CMAC:破解CBC-MAC|修改CBC-MAC

专用设计:Poly1305|SipHash

意外如何发生:针对MAC认证的计时攻击|当海绵结构泄露

第8章 认证加密

使用MAC的认证加密

使用关联数据的认证加密|使用nonce来避免可预测性

怎样才是一个好的认证加密算法

AES-GCM:认证加密算法标准

OCB: 比GCM更快的认证加密算法

SIV是最安全的认证算法吗

基于置换的AEAD

意外如何发生:AES-GCM和弱哈希密钥|AES-GCM和短标签

第9章 困难问题

计算困难性:测量运行时间|多项式时间vs超多项式时间

复杂度的分类:非确定多项式时间|NP完全问题|P问题vs NP问题

因数分解问题:实践中的分解大数算法|分解算法是NP完全的吗

离散对数问题

意外如何发生:小规模的困难问题并不困难

第10章 RSA

RSA背后的数学概念

RSA陷门置换

RSA的密钥生成和安全性

利用教科书式RSA加密的扩展性进行攻击|加强版RSA加密:OAEP

针对教科书式RSA签名的攻击|PSS签名标准|全域哈希签名

RSA的实现:快速求幂算法:平方乘|用于更快公钥操作的小指数|中国剩余定理

意外如何发生:针对RSA-CRT的Bellcore攻击|共享秘密指数或共享模数

第11章 Diffie-Hellman

Diffie-Hellman函数

Diffie-Hellman问题

非DH密钥协商协议示例|密钥协商协议的攻击模型

匿名Diffie-Hellman协议|含身份验证的Diffie-Hellman协议|Menezes–Qu–Vanstone(MQV)协议

意外如何发生:不哈希共享秘密|TLS中Diffie–Hellman的历史遗留问题|不安全的群参数

第12章 椭圆曲线

整数上的椭圆曲线|加法点和乘法点|椭圆曲线群

ECDLP问题

椭圆曲线上的Diffie–Hellman密钥协商

NIST曲线|曲线25519

意外如何发生:随机性差的ECDSA|用另一条曲线破解ECDH

第13章 TLS

TLS协议套件:TLS和SSL协议家族的简单历史

TLS握手协议|TLS 1.3的密码算法

TLS 1.3对TLS 1.2的改进:降级保护|单次往返握手|会话恢复

TLS安全性的优势:认证|前向保密性

意外如何发生:不安全的证书颁发机构|不安全的服务器|不安全的客户端|实现中的缺陷

第14章 量子和后量子时代的密码学

量子计算机的工作原理:量子比特|量子门

量子加速:指数加速和Simon问题|Shor算法的威胁

Shor算法解决因数分解问题|Shor算法和离散对数问题|Grover算法

为什么制造量子计算机如此困难

后量子密码算法:基于编码的密码|基于格的密码|基于多变量的密码|基于哈希的密码

意外如何发生:不明晰的安全水平|快进:如果太晚会发生什么|实现问题


前言/序言

如果您对有关计算机安全的书有所涉猎,那么很可能见过密码学领域中常见的一个观点:“密码学是安全链中最牢固的一环。”如此说法诚然是一种赞美,但也有些盲目自大——如果密码技术已经牢不可破了,为什么还要花时间改进它,而不去投资那些安全系统中更值得改进的部分呢?


如果您只能从本书中学到一件事,那么我希望它是——以上这种对密码学的观点太过理想化,甚至很大程度上是一个神话。理论上,密码学很强大,但在实践中,在经验不足或者粗心大意的情况下进行的密码应用,和安全系统的其他方面一样很容易发生问题,而现有的许多密码系统就确实如此。而且情况正变得更糟:当密码应用失效时,它们往往也“失效得各有千秋”。

那么,您为什么应该关心这些,又为什么需要这本书呢?

当我在二十年前从事应用密码学领域的工作时,软件开发人员可用的信息往往是零碎而过时的。密码学专家开发了算法和协议,密码学工程师实现了这些算法和协议,并面向其他专家建立了不透明且文档记录很少的密码学库。这就造成了理解密码算法的人与使用密码算法(或无视密码算法)的人之间存在巨大的鸿沟。市面上确实有些不错的理论教材,但真正为开发实践者提供有用工具的书却很少。

现实中的情况并不理想,诸如人们对“CVE(通用漏洞披露)”和“威胁度:高”等报警的忽视和妥协,其中有些甚至是“TOP SECRET”级别的攻击。您可能会更熟悉一些较著名的攻击案例,因为它们影响了您所依赖的系统。之所以会出现许多此类问题,除了因为密码学本身是精妙且优雅的,还因为密码学专家未能与实际编写该软件的工程师分享他们的知识。

值得庆幸的是,这种情况已经开始改变,而本书就是这种改变的一部分。

Serious Cryptography(本书的英文书名)是由应用密码学领域最著名的一位专家撰写的,并且本书不是面向其他专家的。同样,本书也不打算作为该领域的概述,而是包含对密码工程深入且最新的讨论,旨在帮助想在这个领域做得更好的从业者。在本书中,您不仅能学习到密码算法的工作原理,而且还将学习如何在实际系统中使用它们。

本书首先探讨了许多关键的密码学原语,包括分组密码、公钥加密体制、哈希函数和随机数发生器等基本算法。每章都提供了有关算法如何工作,以及您应该或不应该做什么的工作示例。最后几章介绍了TLS等高级主题,以及密码学的未来——在量子计算机到来后我们该怎么做。

虽然一本书不能解决所有的问题,但是学一点知识也定将有所裨益。这本书包含很多这样的知识,也许足以将现实中已部署的一些密码系统改进到人们期望的程度。

祝您阅读愉快。

Matthew D. Green

约翰斯·霍普金斯大学信息安全研究所教授


前言

写一本“我初学密码学时想要读的那本书”是我创作本书的动机。2005年,我在巴黎附近攻读硕士学位,并在即将到来的学期中满怀热情地选了密码学课程。不幸的是,由于选课的学生太少,这门课竟被取消了。学生们总抱怨“密码学实在太难了”,然后就都去选了计算机图形学和数据库课程。

从那以后,我听到“密码学很难”有十多次。但是密码学真的那么难吗?演奏乐器,掌握编程语言,或将任何引人入胜的领域的应用付诸实践,确实需要学习一些概念和符号,但它们还不至于难到需要一个博士学位。我认为要想成为一名合格的密码学家,这个道理也同样适用。我还认为,密码学之所以被说很难,是因为密码学家没有很好地讲授密码学。

我觉得需要本书的另一个原因是,密码学不再只是单纯地研究密码,它已经扩展到了多学科领域。要进行与密码学相关的工作,还需要对密码学相关的概念有所了解,例如,网络和计算机如何工作,用户和系统需要什么,以及攻击者如何利用算法及其实现。换句话说,我们需要与现实联系,把理论落地。

本书的方法论

本书原本的标题是Crypto for Real,以强调我打算讲述的是面向实践的、真实世界的知识,而非那些没有实际意义的方法论。我不想通过简化来使加密变得容易实现,而是将其与实际应用结合在一起。我在本书中提供了源代码示例,并描述了实践中肯定会出现的问题及其灾难性的后果。

除了与现实的明确联系,本书的其他两个出发点是简捷性和现代性。我更着重于形式上的简捷性:不是通过枯燥的数学形式主义提出概念,而是着眼于加深对密码学核心思想的理解,这比记住一堆方程式更重要。为了确保本书的现代性,我介绍了加密技术的最新发展和应用,例如,TLS 1.3和后量子加密技术。我不会花费大量笔墨去讨论DES或MD5等过时或不安全的算法的细节,不过RC4是一个例外,但也仅包括说明它的弱点并显示此类序列密码的工作原理。

本书既不是加密软件的指南,也不是技术规范文档,毕竟您可以在网上轻松找到这些内容。本书的首要目标是让您对加密技术充满热情,并一路向您传达其引人入胜的概念。

本书面向的读者

在写作时,我常把读者想象成一个曾经接触过密码学,但在尝试阅读大量的教科书和研究论文后仍然感到无所适从的开发人员。开发人员经常需要并且想要更好地掌握密码学,以避免错误的设计选择,我希望这本书在这方面会对他们有所帮助。

但是,如果您不是开发人员也不要担心!本书不需要任何编程技能,任何了解计算机科学和具有大学数学(概率论、模算术等)基础的人都可以使用。

尽管它具有相对较低的入门门槛,但是本书还是有一些挑战性的,仍需要读者付出一些努力才能做到深入理解。我喜欢用登山作为类比:作者为您规划了道路,为您提供了绳索和冰镐,但还需要您自己进行攀登。学习本书中的概念可能会很费力,但最后一定会有所收获。

本书的结构

本书共有14章,大致分为4个部分。除第9章为后续的3章奠定基础之外,各章大多彼此独立。但我还是建议您先阅读前3章。

基础部分

 第1章:介绍了安全加密的概念,从较弱的笔纸密码到强大的随机加密。

 第2章:描述了伪随机数发生器的工作原理,如何保证其安全性以及如何安全地使用它。

 第3章:讨论了安全性的理论和实践概念,并对可证明的安全性与概率安全性进行了比较。

对称密码部分

 第4章:介绍了以分组为单位处理消息的密码,重点介绍了著名的AES,即高级加密标准。

 第5章:介绍了一种看起来是随机比特流的密码——序列密码,要想解密需要将其与密文进行异或运算。

 第6章:介绍了哈希函数,其是唯一不需要密钥的密码算法,而事实证明这也是最普遍使用的密码体制基本模块。

 第7章:介绍了密钥哈希,其解释了将哈希函数与密钥结合使用会发生什么,以及它如何用于验证消息。

 第8章:通过例子介绍了一些同时对消息进行加密和身份验证的算法(例如,标准AES-GCM)。

非对称加密部分

 第9章:使用计算复杂度的概念介绍了公用密钥加密背后的基本概念。

 第10章:介绍了RSA,其利用大整数分解难题,以简单的算术运算构建安全的加密和签名方案。

 第11章:介绍了Diffie-Hellman协议将非对称密码扩展到密钥协商的概念,其中,通信双方通过非秘密值来建立共同的秘密值。

 第12章:对椭圆曲线密码学进行了简要介绍,椭圆曲线密码学是速度最快的一种非对称密码学。

应用部分

 第13章:介绍了传输层安全性,可以说它是网络安全中最重要的协议。

 第14章:介绍了量子计算和新型密码学的概念,以这些科幻的未来密码作为结尾。

致谢

我要感谢Jan、Annie和其他No Starch的员工,他们为本书做出了巨大贡献。尤其是Bill,他从一开始就信任这个项目,感谢他耐心地解决棘手的问题,把粗糙的手稿变成正式的书稿。我还要感谢Laurel,她使得这本书的外观变得如此精美,并处理了我的许多修改请求。

在技术方面,如果没有以下人员的帮助,本书将包含更多错误和不准确之处:Jon Callas、Bill Cox、Niels Ferguson、Philipp Jovanovic、Samuel Neves、David Reid、Phillip Rogaway、Erik Tews,以及所有对早期版本提供错误报告的读者。最后,感谢Matthew Green为本书撰写了序言。

我还要感谢我的雇主Kudelski Security,其让我有时间写这本书。最后,我对Alexandra和Melina的支持和耐心表示最诚挚的感谢。