都2024年了,你哪些觉得比较好的计算机书籍?

发布时间:
2024-08-12 03:55
阅读量:
23

大概说几个密码学方向的,也是我现在正在看的书。这篇参考了几位大佬 @刘巍然-学酥 @玄星 写的谈(公钥)密码学入门材料,也加入了一些我这一年读过的(虽然基本都没读完)的书。

数学基础:

《Discrete Mathematics and Its Applications, Eighth Edition》 Kenneth H. Rosen. 非常好的离散数学教材,讲解的非常详细,配的例子也非常多,提供了大量习题和解答,低年级本科生可以轻松看懂。我记得我大一的时候上离散数学学的就是这一本的第六版,那是我本科阶段上的最好的一门数学课。

《A Friendly Introduction to Number Theory, Fourth Edition》 Joseph H. Silverman 也是一本非常新手友好的入门级教材,在学完第一本后看这个不会有什么障碍,基本包括了密码学需要用到的所有数论内容,语言非常生动,学习曲线平缓。

《Algebra, Second Edition》 Michael Artin. 现代密码学,尤其是公钥密码学的数学基础基本集中于抽象代数,这本经典教材包含了一点线性代数的内容,可以作为一个复习材料,后续对群、环、域做了非常详细的介绍。这本书是我现在学校数学系本科生抽象代数课程的教材,对于学习密码学的学生来说,一直用到PhD阶段都已经足够了。

《Algebra》 Hungerford. 这是一本进阶版的抽象代数教材,是我现在学校数学系研究生抽象代数课程的教材,明显比上一本更加抽象,也深入得多。由于我们学校PhD不能选本科生的课,我下个学期选了这门课,希望不要被虐的太惨。

计算复杂度:

《Computational Complexity A Modern Approach》Sanjeev Arora and Boaz Barak. 密码学对于方案和协议计算复杂度的评估,安全性的分析都要大量用到计算复杂度的知识。在零知识证明中会大量用到PPT(probabilistic polynomial time)算法,以及对NP、IP、PSPACE、P/poly等复杂度概念的使用,这本教材中都做了非常详细的介绍。这本书的门槛稍高些,我认为适合研究生阶段的计算机学生。

编程基础:

Python编程(第3版) : 从入门到实践》 Eric Matthes. 现在,python可以说是每一个计算机学生必须会的编程语言,这本书也基本是每一个回答都会推荐的教材,确实好。

《Programming Rust, 2nd Edition》Jim Blandy, JasonOrendorff & Leonora F. S. Tindall. 由于我主要的研究方向是零知识证明,通用的第三方开源库基本都是用Rust写的。Rust的优点在于有着和C++类似的性能优势,对于内存管理非常安全,非常适合系统级编程。但是对新手的学习曲线非常陡峭,不过一旦学好,对于高性能、高可靠的系统编程非常有用。

密码学:

《Introduction to Modern Cryptography, third Edition》 Jonathan Katz and Yehuda Lindell. 基本上每一个密码学问题的回答,第一个提到的就是这本书。书中的内容更新的非常快,在2021年出版的最新版中,加入了对椭圆曲线密码学和后量子(post-quantum)密码学的介绍。书中的论述非常到位,对于安全性证明的讲解也非常细致。可以说是目前最好的密码学导论之一,我认为每个学习密码学的学生都应该非常细致地读完这本书。

《Proofs, Arguments, and Zero-Knowledge》 Justin Thaler. 一本非常新的(2023)零知识证明教材,弥补了零知识证明这一密码学分支领域教材的空白。Thaler教授作为目前该领域最炙手可热的学者之一,对零知识证明的理解非常透彻,书中对交互证明,非交互论证,SNARK等密码学概念都做了非常详细的介绍,对于想要系统学习零知识证明的学生非常有帮助。

《Foundations of Distributed Consensus and Blockchains》 Elaine Shi. 我老板的老板的书,现在还是draft版本,是她在CMU的区块链课程CS6432 Distributed Consensus and Blockchains的教材。作为为数不多的区块链课程,这本书从拜占庭将军问题开始,一步步降到了比特币和区块链协议。我还没有读完这本书,但是从前面几章来看,写的非常好。

《A Pragmatic Introduction to Secure Multi-Party Computation》 David Evans, Vladimir Kolesnikov and Mike Rosulek. 我目前正在读的书。对于多方安全计算非常好的介绍材料。这本书没有给出非常严格的证明,但是给出了对各种MPC协议非常直观的介绍。对于通用的集中MPC协议、用到的技术和常用的安全模型都做了很好的介绍,对MPC的入门非常有帮助。目前已有中文版《实用安全多方计算导论》,由 @刘巍然-学酥 大佬翻译。

PhD:

《THE PH.D. GRIND》 Philip J. Guo. 每一个想要读PhD和正在读PhD的学生都应该看一遍,甚至反复看的书。会对要不要读PhD,怎么读PhD,读了PhD会怎么样这几个问题产生颠覆性的理解。

END