关于读者
这里列出了一些我认为可以从本书中受益的读者。
学生
如果你正在学习计算机科学、信息安全或密码学,并且想了解现实世界中使用的密码学技术(因为你的目标要么是在工业界工作,要么是在学术界从事应用学科研究),那么本书适合作为你的教科书。正如序言中说的那样,我曾经和你一样,也是一名在校的学生,因此我编写了一本自己曾经希望拥有的书。
信息安全从业者
在教授应用密码学时,我发现大部分学生都是渗透测试工程师、安全顾问、安全工程师、安全架构师和其他安全从业者。因此,当我试图向非密码学从业者解释复杂的密码学概念时,我收到了许多问题,从而改进了相关材料。作为一名安全从业者,在为大公司审核密码应用的过程中,我了解和发现了许多漏洞,这些经历对本书的编写也有着不小的影响。
直接或者间接使用密码学的开发人员
与客户和同事之间的多次讨论也对我编写本书产生了影响,而他们大都不是安全从业者或密码学家。现今,在不涉及密码学的情况下编写代码变得越来越难,因此,开发人员需要了解自己正在使用的密码学工具。本书包含不同编程语言的代码示例,有利于读者理解这些密码学工具的使用方法。如果读者对此感兴趣的话,还可以进一步参考与本书配套的示例代码。
对其他领域感兴趣的密码学家
本书主要介绍的是应用密码学,对于像我这样的应用密码从业者来说,本书很有价值。本书是对我过去所从事工作的总结。如果我能将本书写好,理论密码学家应该能够快速了解应用密码学世界的现状;对称加密研究者通过阅读相关章节能够快速了解口令认证密钥交换协议的本质;密码协议使用者能够快速理解量子密码学的原理;等等。
想了解更多密码技术的工程师和产品经理
本书还试图回答一些我认为面向安全产品方面的问题:某种算法在安全性与效率之间做出了何种平衡?使用某种算法可能面对何种安全威胁?某种算法是符合规定的吗?我需要按照规定使用某种算法并且与政府合作吗?
对现实世界的密码学感兴趣的人
实际上,即便你不是上述的几类读者,只要对现实世界中的密码学感到好奇,你就可以阅读本书。但请记住,我不会介绍与密码学有关的历史,也不会讲解任何计算机科学方面的基础知识。因此,在阅读本书之前,读者应该具备一定的密码学背景知识。