基本信息
- 作者: (美)尼尔斯·弗格森
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111574354
- 上架时间:2018-1-23
- 出版日期:2017 年7月
- 开本:16
- 版次:1-1
- 所属分类:计算机 > 计算机科学理论与基础知识 > 密码学
教材

内容简介
作译者
BruceSchneier是国际知名的安全技术专家,被《经济学人》杂志称为“安全教父”。他是14本书的作者,其中包括畅销书《超过恐惧:在一个不确定的世界中明智地思考安全》《秘密和谎言》和《应用密码学》,并发表了数百篇文章和学术论文。他的很有影响力的通讯“Crypto-Gram”和博客“SchneieronSecurity”有超过25万读者。他是电视和广播电台的常客,并且他关于安全和隐私问题的言论经常被报纸引用。他曾多次在国会作证,并且曾在多个政府技术委员会任职。他是BT(原英国电信)的首席安全技术官。
TadayoshiKohno(Yoshi)是华盛顿大学计算机科学与工程系教授。他的研究兴趣是提高当前和未来技术的安全性和隐私性。他在2003年对DieboldAccuVote-TS电子投票机的源代码进行了初步安全分析,并从此将研究领域转向了从无线植入式起搏器和除颤器到云计算的新兴安全技术。他获得了国家科学基金会CAREER奖和AlfredP.Sloan研究奖学金。2007年,鉴于他对应用密码学的贡献,入选《麻省理工学院科技评论》全球青年科技创新人才榜(TR35),是35岁以下的世界创新者之一。他在加州大学圣迭戈分校获得计算机科学博士学位。
Niels、Bruce和Yoshi是Skein散列函数设计团队的成员,该团队是NIST的SHA-3竞赛的参与者之一。
目录
Cryptography Engineering: Design Principles and Practical Applications
出版者的话
译者序
前言
《实用密码学》前言
关于作者
第一部分 概述
第1章 密码学研究范围 2
1.1 密码学的作用 2
1.2 木桶原理 3
1.3 对手设定 4
1.4 专业偏执狂 5
1.4.1 更广泛的好处 5
1.4.2 攻击 5
1.5 威胁模型 6
1.6 密码学不是唯一解决方案 7
1.7 密码学是非常难的 8
1.8 密码学是简单的部分 8
1.9 通用攻击 9
前言
要知道如何使用密码,人们必须学会像密码学家一样思考。本书旨在帮助你实现这一目标。我们通过深入的讨论做到这一点——对明确具体的协议进行深入的设计和分析,而不是对密码学中的所有协议进行泛泛的探讨。我们手把手地教你设计密码协议,分享我们做出某些设计决策的原因,并指出其中可能存在的陷阱。
通过学习如何像密码学家一样思考,你还将学习如何成为更聪明的密码使用者。你将能够查看现有的加密工具包,理解其核心功能,并了解如何使用它们。你还将更好地理解加密技术所涉及的挑战,以及如何克服这些挑战。
本书也是学习计算机安全的一本指导书。在许多方面,计算机安全是密码学的超集。计算机安全和密码学都是关于设计和评价以某些方式表现的对象(系统或算法)的,甚至在有对手的情况下。在本书中,你将学习如何在加密技术的背景下思考对手的行为。一旦知道如何像对手一样思考,你就可以将这种思维方式扩展到一般的计算机系统安全上。
历史这本书基于Niels Ferguson和Bruce Schneier编著的《实用密码学》(Practical Cryptography),并由Tadayoshi Kohno(Yoshi)增补内容修改而成。Yoshi是华盛顿大学计算机科学与工程系教授,也是Niels和Bruce之前的同事。Yoshi以《实用密码学》作为基础,将其修改为适合课堂使用和自学,同时保持了Niels和Bruce的原书主旨。
教学大纲本书可以用作应用密码工程的自学指南,也可以用作教材。可以在关于计算机安全的一季度或一学期的课程中使用本书,例如作为6周或10周的密码学课程的基础教材,如果时间允许,还可以增加高级材料。为了方便课堂使用,我们提供以下几种可能的教学大纲。
下面的教学大纲适合于6周的课程。对于这一课程,假设第1章的内容在一般的计算机安全的更广泛背景下单独讨论,此处不考虑。
第1周:第2~4章;第2周:第5~7章;第3周:第8~10章;第4周:第11~13章;第5周:第14~17章;第6周:第18~21章。
以下大纲是针对10周的密码学课程。
第1周:第1和2章;第2周:第3和4章;第3周:第5和6章;第4周:第7和8章;第5周:第9和10章;第6周:第11和12章;第7周:第13和14章;第8周:第15~17章;第9周:第18~20章;第10周:第21章。
以下大纲适用于12周的课程,可以增加密码学或计算机安全的高级材料。
第1周:第1和2章;第2周:第3和4章;第3周:第5和6章;第4周:第7章;第5周:第8和9章;第6周:第9(续)和10章;第7周:第11和12章;第8周:第13和14章;第9周:第15和16章;第10周:第17和18章;第11周:第19和20章;第12周:第21章。
本书有几种类型的练习,建议你尽可能多地完成这些练习。其中包括传统的练习,旨在测试你对加密技术的理解。但是,由于我们的目标是帮助你学习如何在真实系统中考虑加密,所以还引入了一组非传统练习(参见1.12节)。密码学不是孤立存在的,而是由其他硬件和软件系统、人、经济、伦理、文化差异、政治、法律等组成的更大生态系统的一部分。非传统练习是明确设计的,以促使你在真实系统和周边生态系统的上下文中考虑加密。这些练习提供了将本书的内容直接应用到真实系统中的机会。此外,通过这些练习,随着学习的推进,你将看到自己的知识不断增加。
其他信息虽然我们努力使本书没有错误,但是无疑错误不可避免。我们为本书维护了在线勘误表,使用此勘误表的方法如下。
阅读本书之前,请访问http://www.schneier.com/ce.html并下载当前的更正列表。
如果你在书中发现错误,请检查其是否已在列表中。如果它不在列表中,请发邮件到cryptographyengineering@schneier.com。我们将把错误添加到在线列表中。
希望你有一个学习密码学的美好旅程。密码学是一个奇妙和迷人的主题,希望你从本书中学到很多东西,并且像我们一样享受密码工程。
致谢非常感谢密码学和安全社区,如果没有他们在推进这一领域研究上所做的努力,本书是不可能出现的。本书还反映了我们作为密码学家的知识和经验,非常感谢我们的同行和导师帮助我们形成对密码学的理解。
感谢Jon Callas、Ben Greenstein、Gordon Goetz、Alex Halderman、John Kelsey、Karl Koscher、Jack Lloyd、Gabriel Maganis、Theresa Portzer、Jesse Walker、Doug Whiting、Zooko Wilcox-O’Hearn和Hussein Yapit,他们对本书的早期版本给出了非常有价值的反馈意见。
本书的部分内容是在华盛顿大学的本科生计算机安全课程教学中得到发展和完善的,感谢所有学生和助教。特别感谢Josh
书摘
无论何时使用种子文件来更新种子,都要在用户请求随机数据之前更新种子文件,而且必须要保证磁盘上的数据也进行了更新。在一些文件系统中,对文件数据和文件管理信息的操作是分开进行的,所以更新种子文件时文件管理信息和实际的文件信息不符,如果此时机器断电了,种子文件就会损坏甚至丢失,这样的文件系统对安全系统来说是不适用的。
一些文件系统使用日志来解决部分问题。日志技术最初是在大型数据库系统中提出来的,而日志就是对文件系统的所有更新操作的列表。如果恰当地使用日志,能够保证在进行更新操作时,文件管理信息和文件信息也是一致的。从可靠性的角度看,使用了日志的文件系统更适用,遗憾的是常见的文件系统只是将日志用于文件管理信息,并不能完全达到我们的要求。
如果硬件和操作系统不能保证文件更新的原子性和永久性,就不能安全地使用种子文件。在实际应用中,可以根据具体的工作平台来尽量可靠地更新种子文件。
……