【书 名】密码学与编码理论(第三版)(英文版)
【作 者】(美)Wade Trappe,Lawrence C.Washington 著
【出版者】电子工业出版社
【索书号】TN918.1/2458(2)
【阅览室】花津校区自然科学阅览室
作者简介
Wade Trappe 美国罗格斯大学无线信息网络实验室及电子与计算机工程系教授。
Lawrence C. Washington马里兰大学数学系教授。
内容简介
本书是密码学领域的经典著作,是作者多年教学经验的总结。本书概念清晰,表述简洁,数学证明过程详细易懂。本书内容全面,包括数论、数据加密标准(DES)、高级加密标准Rijndael、RSA算法、离散对数、散列函数、信息论、格方法、纠错码以及量子密码等,其中许多内容都反映了业内的新进展。第三版增加了RC4、一次一密的多次使用、完全保密、散列函数的应用、比特币和密码货币、基于对的密码系统等章节。本书配有大量实例,习题以及用Mathematica、Maple、MATLAB和Sage编写的上机练习,详细说明了密码算法和协议的执行过程。
前言
本书是密码学课程的教材 ,从1997年开始就将其用于在美国马里兰大学向高年级本科生和一年级研究生讲授密码学,并从2003年开始在美国罗格斯大学用于教学。在设计这门课程时,我们考虑了以下要求:
●课程内容应该是的,并且从数学的观点看它应该涵盖了密码学中的大部分主要专题。
●课程内容应该能让不熟悉数论和计算机编程但是已选修过本科数学基础课的学生也易于接受。
●课程内容应该包含足够多的实例,用于展示各种密码算法实际上是怎样运行的。
我们不想把注意力只放在RSA和离散对数上,因为这样会让这门课程变成一门主要关于数论的课。我们也不想把注意力集中在各种协议和如何入侵别人的计算机上,那样会让这门课程的数学性不够强。
密码学中有很多专题可以在一门导论性的课程中介绍。我们尽量把大多数专题包括在本课程内。这些章节在很大程度上代表了我们在不同学期所授课程涉及的主题。当然,这里的材料比大多数一学期的课程都要多。前13章是本书的核心部分,其余章节的选取取决于学生的水平和教师的目标。
除与全书内容都有关联的第3章(数论)外,其余各章内容彼此独立,因此可以按任何合理顺序进行安排。由于学生掌握数论的程度各不相同,我们把基本的数论知识集中放在第3章以便参考,但还是建议按照课程的进度逐步介绍学生所需的数论概念。
信息论、椭圆曲线、格方法、纠错码和量子密码这几章内容比其他章的数学知识更多。纠错码一章是基于几位审稿人的建议而放入本书中的,因为在一门课程中同时介绍密码学和编码理论的做法是非常普遍的。
上机实例
假如你想给出一个RSA算法的例子,可以选择使用两个1位数的素数,模拟使用50位的素数进行运算,或者用你习惯的软件包来实现一个有大素数的实例。或许你正在使用移位密码,试图通过一一尝试密文的26种移位而对一个消息进行解密。不过这个工作应该由计算机来完成。
此外,书末的附录里给出了分别用Mathematica、Maple、MATLAB和Sage等软件编写的上机实例。之所以选择这些软件是因为它们界面友好且不需要有编程经验。虽然密码学课程在不使用计算机的情况下也可以正常授课,但这些上机实例仍然是本书不可分割的一部分,因此应该深入学习。书中不仅包含了关于怎样进行某些计算的数值方面的例子,还阐述了其中的重要思想和相关的问题。
基于上述软件的课后作业(即各章后的上机练习)学生可以独自完成并实现这些实例。当然,有更多编程背景的学生可以自己编写相应的程序。
第三版中新增的内容
密码学是一个迅速发展的领域。本书在第三版中有如下几个方面的变化:
●重新组织了第二版中的两章(第4章和第5章)内容,并把它们拆分为流密码(包括RC4)、分组密码、DES和AES(分别对应第5章至第8章)。其中,RC4的内容是新增的。
●散列函数(第二版的第11章)被分成了两章内容:第11章(散列函数)新增了SHA-2和SHA-3的内容,第12章(散列函数:攻击与应用)新增了消息认证码、口令协议和区块链的内容。
●第二版中与“一次一密”相关的内容被扩展成第4章,新增了一次一密的多次使用、完全保密和密文不可区分性的内容。
●新增了第14章(会出什么问题),主要讲述了当密码算法被错误使用或设计时会导致什么样的问题。
●第16章(数字现金)为第二版第11章的扩展,新增了比特币和密码货币的内容。
●新增的第22章给出了基于对的密码系统的介绍。
●对全书的注释内容进行了更新,体现了相关领域的进展。
●附录新增了针对各章相关内容采用Mathematica、Maple、MATLAB和Sage语言编写的上机实例。
●新增了一些习题。
●本书后新增了大部分奇数编号习题的参考答案或提示。
致谢
本书在准备过程中得到了许多人的帮助与支持。首先,我们要感谢我们的学生,他们的热情、洞察力和建议都对本书贡献极大。我们特别感谢许多提供修改意见和其他信息的人,尤其是Bill Gasarch,Jeff Adams,Jonathan Rosenberg和Tim Strobell。我们还要感谢Wenyuan Xu,Qing Li和Pandurang Kamat,他们为本书制作了一些图表,并且在第二版的基础上提供了新的反馈意见。我们很愉快地与Pearson的员工们一起工作,尤其是编辑Jeff Weidenaar和Tara Corpuz。
我们要特别感谢本书的审稿人,他们在内容表述和内容组织方面的建议极大地改善了本书的终面貌。下列标注“*”符号的是指第三版的审稿人。
* Anurag Agarwal, Rochester Institute of Technology
* Pradeep Atrey, University at Albany
Eric Bach, University of Wisconsin
James W. Brewer, Florida Atlantic University
Thomas P. Cahill, NYU
Agnes Chan, Northeastern University
* Nathan Chenette, Rose-Hulman Institute of Technology
* Claude Crépeau, McGill University
* Reza Curtmola, New Jersey Institute of Technology
* Ahmed Desoky, University of Louisville
Anthony Ephremides, University of Maryland, College Park
* David J. Fawcett, Lawrence Tech University
* Jason Gibson, Eastern Kentucky University
* K. Gopalakrishnan, East Carolina University
David Grant, University of Colorado, Boulder
Jugal K. Kalita, University of Colorado, Colorado Springs
* Saroja Kanchi, Kettering University
* Andrew Klapper, University of Kentucky
* Amanda Knecht, Villanova University
Edmund Lamagna, University of Rhode Island
* Aihua Li, Montclair State University
* Spyros S. Magliveras, Florida Atlantic University
* Nathan McNew, Towson University
* Nick Novotny, IUPUI
David M. Pozar, University of Massachusetts, Amherst
* Emma Previato, Boston University
* Hamzeh Roumani, York University
* Bonnie Saunders, University of Illinois, Chicago
* Ravi Shankar, University of Oklahoma
* Ernie Stitzinger, North Carolina State
* Armin Straub, University of South Alabama
J. Felipe Voloch, University of Texas, Austin
Daniel F. Warren, Naval Postgraduate School
* Simon Whitehouse, Alfred State College
Siman , University of Massachusetts, Amherst
* Huapeng Wu, University of Windsor
本书的作者要感谢Nisha Gilra提供的鼓励和建议;感谢Sheilagh O’Hare 引导他进入密码学领域;感谢K. J. Ray Liu给予的支持。
本书的第二作者要感谢Susan Zengerle和Patrick Washington在他编写本书时所给予的耐心、帮助和鼓励。
当然,我们欢迎任何的建议和指正,我们的联系方式分别为
Wade Trappe trappe@winlab.rutgers.edu
Lawrence C. Washington lcw@math.umd.edu