基本信息
- 原书名:Cryptography:Theory and Practice,Second Edition
- 原出版社: CRC Press LLC
内容简介
作译者
本书作者douglas r. stinson博士:加拿大waterloo大学教授,“journal of combinatorial design”期刊的主编。研究领域为密码学、网络和分布式系统、算法和计算复杂性、组合结构的构造及在计算机和密码学中的应用。
译者简介
本书译者冯登国博士:中国科学院软件所研究员、博士生导师,信息安全国家重点实验室主任,国家计算机网络入侵防范中心主任,国家信息化专家咨询委员会委员。
目录
1.1 几个简单的密码体制
1.1.1 移位密码
1.1.2 代换密码
1.1.3 仿射密码
1.1.4 维吉尼亚密码
1.1.5 希尔密码
1.1.6 置换密码
1.1.7 流密码
1.2 密码分析
1.2.1 仿射密码的密码分析
1.2.2 代换密码的密码分析
1.2.3 维吉尼亚密码的密码分析
1.2.4 希尔密码的密码分析
1.2.5 基于lfsr流密码的密码分析
1.3 注释与参考文献
练习
第2章 shannon理论
2.1 引言
2.2 概率论基础
译者序
1. 表述清晰。书中的语言描述浅显易懂,如分组密码的差分分析和线性分析本是很难描述
的问题,本书中却表述得非常清楚。
2. 论证严谨。书中对很多密码问题,如惟一解距离、Hash函数的延拓准则等进行了严格的数学证明,具有一种逻辑上的美感。
3. 内容新颖。书中从可证明安全的角度对很多密码学问题特别是公钥密码问题进行了清楚的论述,使用了预言(Oracle)这一术语,通过阅读本书可使读者能够精确掌握这一概念的灵魂。书中顺便对一些密码学领域的最新进展也做了相应的介绍。
4. 选材精良。书中选择了大量典型的、相对成熟的素材,特别适合于教学使用。
5. 习题丰富。通过演练每章后面精心安排的习题,可以迅速并熟练掌握密码学的基本技巧。
要掌握好一门课程,必须选择一两本好书。我认为本书是非常值得精读的一本好书,这也是我花费大量时间翻译本书的初衷。
本书在翻译过程中,得到了一大批博士的协助,他们是徐涛博士、薛锐博士、孙中伟博士、黄寄洪博士、张斌博士、王鹏博士和杨海波博士,特别是徐涛博士协助完成了全书的统稿和审校工作,没有他们的鼎力相助,本书的翻译和审稿工作绝不会如此顺利,在此对他们表示衷心的感谢。
本书的翻译工作得到了国家973项目(编号:G1999035802)和国家杰出青年科学基金(编号:60025205)的支持,在此表示感谢。
冯登国
2003年元旦于北京
序言
下面列举了本书第一版中的一些特色,并在本书中保留了下来。
数学背景知识在需要的时候“及时(just in time)”地提供出来。
·密码体制的描述由更精确的伪代码给出。
·提供例子以说明密码体制的工作过程。
·对算法和密码体制的数学基础做了仔细、严格的解释。
·包含了大量的练习,其中一些很具有挑战性。
本书的第一版包含13章。当两年前开始修订时,我发现有丰富的新材料可以加入到第二版中。为了防止篇幅过于庞大,并能在合理的时间内完成,我决定把第二版的内容更紧密地集中在密码学的核心领域上,这就更像是一门课程里所覆盖的内容。其结果就使得本书包含了对第一版的前7章内容的更新、修改、扩展和重新组织。我计划不久再写一本“姊妹篇”,包含对第一版其余内容的更新,并加入新的内容。
下面对本书的7章内容做一概述:
·第1章对于简单的“经典”密码体制进行了基本的介绍。一些主题被更新或改进,例如,给出了基于Dan Velleman建议的对于维吉尼亚密码的简化的密码分析。
·第2章覆盖了密码学中Shannon理论的主要内容,包括完善保密性的概念以及信息论在密码学中的应用。这些内容并没有显著的改动;然而,相对于第一版,本书包含了对于基础概率论的更细致的阐述。
·第3章是几乎完全重写的。在第一版对应的章节中基本上只讲述了数据加密标准(DES),现在看来已很陈旧。我决定使用代换-置换网络(substitution-permutation networks)作为数学模型来引入现代分组密码设计和分析的许多概念,包括差分分析和线性分析。这里比以前更加强调一般的原则,并讨论了特定的密码体制(DES和新的AES)以说明这些一般原则。
·第4章对第一版的第7章做了较大改动。这一章现在介绍了对于带密钥的Hash函数和不带密钥的Hash函数的统一处理,以及它们在构造消息认证码中的应用。这里强调了数学分析和安全性证明。本章还包含了安全Hash算法(SHA)的描述。
·第5章讨论了RSA密码体制,并给出了相当多的数论背景知识,例如素性检验(primality testing)和因子分解。本章已经被扩展了,包含了几个新的小节,例如Pollard ρ算法、Wiener的低解密
指数攻击和基于RSA的密码体制的语义安全。
·第6章讨论了基于离散对数(Discrete Logarithm)问题的公钥密码体制,例如ElG amal密码体制。这一章也包含了很多新内容,例如Pollard ρ算法、通用算法复杂性更低的下界、椭圆曲线的扩展讨论、离散对数密码体制的语义安全性,以及Diffie-Hellman问题。本章中不再对背包(knapsack)密码体制和McEliece密码体制进行讨论。
·第7章讨论了签名方案问题。像以前一样,介绍了DSA方案,也包含了对特殊类型的签名方案的阐述,例如不可否认签名和fail-stop签名。新材料重点讨论了安全性定义、ElGamal签名方案的变种(例如Schnorr签名方案和椭圆曲线DSA方案),和可证明的安全签名方案,例如全域Hash。
写一本密码学方面的著作的一个最大的困难就是确定应包含多少数学背景知识。密码学是一个涉及广泛的学科,它需要多个数学领域的知识,包括数论、群论、环论、域论、线性代数、概率论以及信息论。同样地,熟悉计算复杂性、算法和NP完全性理论也是很有用的。在我看来,正是需要广泛的数学背景知识导致了学生们在开始学习密码学时感到很困难。我试图假定不需要太多的数学背景,因此在大多数情况下,只有需要时才引入相应的数学工具。当然,如果读者熟悉基本线性代数和模算术是会很有帮助的。另一方面,对于更专门的主题,例如信息论中的熵概念,仅给出了白描似的介绍。
我要对那些不同意在书名中使用“原理与实践”的人说声抱歉。我承认本书中理论多于实践。使用这个词组的含义是指,我试图使选择到本书中的材料既能重理论,又能体现在实践中的重要性。因此,我选用了一些不在实践中出现的密码体制,因为它们或者从数学角度来看是很优雅的,或者说明了一个很重要的概念或技巧。但另一方面,我也提供了在实践中使用的最重要的密码体制,包括几个美国密码学标准。
在我写本书的过程中,很多人给予了鼓励,指出了本书草稿中的书写和排版中的错误,对于怎样选取新材料和如何处理不同的主题也提供了有益的建议。我要在此特别感谢Howard Heys、Alfred Menezes和Edlyn Teske。