应用密码学:协议、算法与C源程序

应用密码学:协议、算法与C源程序
作 者: Bruce Schneier 吴世忠
出版社: 机械工业出版社
丛编项: 网络与信息安全技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 密码学
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  BruceSchneierBruceSchneier是CounterpaneSystems公司的总裁,该公司是一个密码学和计算机安全方面的专业咨询公司。并在主要的密码学杂志上发表了数十篇论文,他是《DrDobb'sJournal》责任编辑之一,同时担任《ComputerandcommunicationsSecurityReviews》的编辑,是国际密码研究协会的理事会员、电子隐私信息中心的顾问团成员和新安全范例工作组程序委员会成员。此外他还经常举办密码学、计算机安全和隐私保护方面的学术讲座。>>更多作品

内容简介

本书真实系统地介绍了密码学及该领域全面的参考文献。全书共分四个部分,首先定义了密码学的多个术语,介绍了密码学的发展及背景,描述了密码学从简单到复杂的各种协议,详细讨论了密码技术,并在此基础上列举了如DES、IDEA、RSA、DSA等10多个算法以及多个应用实例,并提供了算法的源代码清单。全书内容广博权威,具有极大的实用价值。自出版以来,得到业内专家的高度赞誉,是致力于密码学研究的专业及非专业人员一本难得的好书。作者简介:BruceSchneier是CounterpaneSystems公司的总裁,该公司是一个密码学和计算机安全方而后专业咨询公司。Bruce还是《E-MailSecurity》(JohnWiley&Sons,1995)和《ProtectYourMacintosh》(PeachpitPress,1994)两书的作者,并在主要的密码学杂志上发表了数十篇论文。他是《Dr.Dobb'sJournal》责任编辑之一,同时担任《ComputerandCommunicationsSecurityReviews》的编辑。Bruce是国际密研究协会的理事会成员、电子隐私的信息中心的顾问成员和新安全范例工作组程序委员会成员。此外,他还经常举办密码学、计算机安全和隐私保护方面的学术讲座。

图书目录

目 录

译者序

W.迪菲序

前言

第1章 基础知识

1.1专业术语

1.1.1发送者和接收者

1.1.2消息和加密

1.1.3鉴别、完整性和抗抵赖

1.1.4算法和密钥

1.1.5对称算法

1.1.6公开密钥算法

1.1.7密码分析

1.1.8算法的安全性

1.1.9过去的术语

1.2隐写术

1.3代替密码和换位密码

1.3.1代替密码

1.3.2换位密码

1.3.3转轮机

1.3.4进一步的读物

1.4简单异或

1.5一次一密乱码本

1.6计算机算法

1.7大数

第一部分 密码协议

第2章 协议结构模块

2.1协议概述

2.1.1协议的目的

2.1.2协议中的角色

2.1.3仲裁协议

2.1.4裁决协议

2.1.5自动执行协议

2.1.6对协议的攻击

2.2使用对称密码学通信

2.3单向函数

2.4单向散列函数

2.5使用公开密钥密码学通信

2.5.1混合密码系统

2.5.2Merkle的难题

2.6数字签名

2.6.1使用对称密码系统和仲裁者对

文件签名

2.6.2数字签名树

2.6.3使用公开密钥密码术对文件签

2.6.4文件签名和时间标记

2.6.5使用公开密钥密码学和单向散列

函数对文件签名

2.6.6算法和术语

2.6.7多重签名

2.6.8抗抵赖和数字签名

2.6.9数字签名的应用

2.7带加密的数字签名

2.7.1重新发送消息作为收据

2.7.2阻止重新发送攻击

2.7.3对公开密钥密码术的攻击

2.8随机和伪随机序列的产生

2.8.1伪随机序列

2.8.2密码学意义上安全的伪随机序

2.8.3真正的随机序列

第3章 基本协议

3.1密钥交换

3.1.1对称密码学的密钥交换

3.1.2公开密钥密码学的密钥交换

3.1.3中间人攻击

3.1.4联锁协议

3.1.5使用数字签名的密钥交换

3.1.6密钥和消息传输

3.1.7密钥和消息广播

3.2鉴别

3.2.1使用单向函数鉴别

3.2.2字典式攻击和salt

3.2.3SKEY

3.2.4使用公开密钥密码术鉴别

3.2.5使用联锁协议互相鉴别

3.2.6SKID

3.2.7消息鉴别

3.3鉴别和密钥交换

3.3.1Wide-MouthFrog 协议

3.3.2Yahalom协议

3.3.3Needham-Schroeder协议

3.3.4Otway-Rees 协议

3.3.5Kerberos协议

3.3.6Neuman-Stubblebine协议

3.3.7DASS协议

3.3.8DEnning-Sacco协议

3.3.9Woo- Lam 协议

3.3.10其他协议

3.3.11学术上的教训

3.4鉴别和密钥交换协议的形式分析

3.5多密钥公开密钥密码学

3.6秘密分割

3.7 秘密共享

3.7.1有骗子的秘密共享

3.7.2没有Trent 的秘密共享

3.7.3不暴露共享的秘密共享

3.7.4可验证的秘密共享

3.7.5带预防的秘密共享

3.7.6带除名的秘密共享

3.8数据库的密码保护

第4章 中级协议

4.1时间标记服务

4.1.1仲裁解决方法

4.1.2改进的仲裁解决方法

4.1.3链接协议

4.1.4分布式协议

4.1.5进一步的工作

4.2 阈下信道

4.2.1阈下信道的应用

4.2.2杜绝阈下的签名

4.3不可抵赖的数字签名

4.4指定的确认人签名

4.5代理签名

4.6团体签名

4.7失败-终止数字签名

4.8加密数据计算

4.9位承诺

4.9.1使用对称密码学的位承诺

4.9.2使用单向函数的位承诺

4.9.3 使用伪随机序列发生器的位承

4.9.4模糊点

4.10公平的硬币抛掷

4.10.1使用单向函数的抛币协议

4.10.2使用公开密钥密码术的抛币

协议

4.10.3抛币入井协议

4.10.4使用抛币产生密钥

4.11智力扑克

4.11.1三方智力扑克

4.11.2对扑克协议的攻击

4.11.3匿名密钥分配

4.12单向累加器

4.13秘密的全或无泄露

4.14密钥托管

第5章 高级协议

5.1零知识证明

5.1.1基本的零知识协议

5.1.2图同构

5.1.3汉密尔顿圈

5.1.4并行零知识证明

5.1.5非交互式零知识证明

5.1.6一般性

5.2身份的零知识证明

5.2.1国际象棋特级大师问题

5.2.2黑手党骗局

5.2.3恐怖分子骗局

5.2.4建议的解决方法

5.2.5多重身份骗局

5.2.6出租护照

5.2.7成员资格证明

5.3盲签名

5.3.1完全盲签名

5.3.2盲签名协议

5.3.3专利

5.4基于身份的公开密钥密码学

5.5不经意传输

5.6不经意签名

5.7 同时签约

5 7.1带有仲裁者的签约

5.7.2无需仲裁者的同时签约:面对

5.7.3无需仲裁者的同时签约:非面

对面

5.7.4无需仲裁者的同时签约:使用

密码术

5.8数字证明邮件

5.9秘密的同时交换

第6章 深奥的协议

6.1保密选举

6.1.1简单投票协议1

6.1.2简单投票协议2

6.1.3使用盲签名投票

6.1.4带有两个中央机构的投票

6.1.5带有单个中央机构的投票

6.1.6改进的带有单个中央机构的投

6.1.7无需中央制表机构的投票

6.1.8其他投票方案

6.2 保密的多方计算

6.2.1协议1

6.2.2协议2

6.2.3协议3

6.2.4协议4

6.2.5无条件多方安全协议

6.2.6保密电路计算

6.3匿名消息广播

6.4 数字现金

6.4.1协议1

6.4.2协议2

6.4.3协议3

6.4.4协议4

6.4.5数字现金和高明的犯罪

6.4.6实用化的数字现金

6.4.7其他数字现金协议

6.4.8匿名信用卡

第二部分 密码技术

第7章 密钥长度

7.1对称密钥长度

7.1.1穷举攻击所需时间和金钱

估计

7.1.2软件破译机

7.1.3神经网络

7.1.4病毒

7.1.5中国式抽彩法

7.1.6生物工程技术

7.1.7热力学的局限性

7.2公开密钥长度

7.2.1DNA计算法

7.2.2量子计算法

7.3对称密钥和公开密钥长度的比较

7.4对单向散列函数的生日攻击

7.5密钥应该多长

7.6小结

第8章 密钥管理

8.1产生密钥

8.1.1减少的密钥空间

8.1.2弱密钥选择

8.1.3随机密钥

8.1.4通行短语

8.1.5X9.17密钥产生

8.1.6DoD密钥产生

8.2非线性密钥空间

8.3传输密钥

8.4验证密钥

8.4.1密钥传输中的错误检测

8.4.2解密过程中的错误检测

8.5使用密钥

8.6更新密钥

8.7存储密钥

8.8备份密钥

8.9泄露密钥

8.10密钥有效期

8.11销毁密钥

8.12公开密钥的密钥管理

8.12.1公开密钥证书

8.12.2分布式密钥管理

第9章 算法类型和模式

9.1电子密码本模式

9.2分组重放

9.3密码分组链接模式

9.3.1初始向量

9.3.2填充

9.3.3错误扩散

9.3.4安全问题

9.4序列密码算法

9.5自同步序列密码

9.6密码反馈模式

9.6.1初始化向量

9.6.2错误扩散

9.7同步序列密码

9.8输出反馈模式

9.8.1初始化向量

9.8.2错误扩散

9.8.3安全问题

9.8.4OFB模式中的序列密码

9.9计数器模式

9.10其他分组密码模式

9.10.1分组链接模式

9.10.2扩散密码分组链接模式

9.10.3带校验和的密码分组链接

9.10.4带非线性函数的输出反馈

9.10.5其他模式

9.11选择密码模式

9.12交错

9.13分组密码与序列密码

第10章 使用算法

10.1选择算法

10.2公开密钥密码学与对称密码学

10.3通信信道加密

10.3.1链-链加密

10.3.2端-端加密

10.3.3两者的结合

10.4用于存储的加密数据

1 0.4.1非关联密钥

10.4.2驱动器级与文件级加密

10.4.3提供加密驱动器的随机

存取

10.5硬件加密与软件加密

10.5.1硬件

10.5.2 软件

10.6压缩,编码及加密

10.7检测加密

10.8密文中隐藏密文

10.9销毁信息

第三部分 密码算法

第11章 数学背景

11.1信息论

11.1.1熵和不确定性

11.1.2语言信息率

11.1.3密码系统的安全性

11.1.4唯一解距离

11.1.5信息论的运用

11.1.6混乱和扩散

11.2复杂性理论

11.2.1算法的复杂性

11.2.2问题的复杂性

11.2.3NP完全问题

11.3数论

11.3.1模运算

11.3.2素数

11.3.3最大公因子

11.3.4求模逆元

11.3.5求系数

11.3.6费尔马小定理

11.3.7欧拉φ函数

11.3.8中国剩余定理

11.3.9二次剩余

11.3.10勒让德符号

11.3.11雅可比符号

11.3.12Blum整数

11.3.13生成元

11.3.14伽罗瓦域中的计算

11.4 因子分解

11.5 素数的产生

11.5.1Solovag- Strassen

11.5.2Lehmann

11.5.3Rabin-Miller

11.5.4实际考虑

11.5.5强素数

11.6有限域上的离散对数

第12章 数据加密标准

12.1背景

12.1.1标准的开发

12.1.2标准的采用

12.1.3DES设备的鉴定和认证

12.1.41987年的标准

12.1.51993 年的标准

12.2DES的描述

12.2.1算法概要

12.2.2初始置换

12.2.3密钥置换

12.2.4扩展置换

12.2.5S-盒代替

12.2.6P-盒置换

12.2.7末置换

12.2.8DES解密

12.2.9DES的工作模式

12.2.10 DES的硬件和软件实现

12.3DES的安全性

12.3.1弱密钥

12.3.2补密钥

12.3.3代数结构

12.3.4密钥的长度

12.3.5迭代的次数

12.3.6S-盒的设计

12.3.7其他结论

12.4差分及线性分析

12.4.1差分密码分析

12.4.2相关密钥密码分析

12.4.3线性密码分析

12.4.4 未来的方向

12.5实际设计的准则

12.6 DES的各种变型

12.6.1多重DES

12.6.2 使用独立子密钥的DES

12.6.3DESX

12.6.4 CRYPT(3)

12.6.5GDES

12.6.6更换S-盒的DES

12.6.7RDES

12.6.8snDES

12.6.9使用相关密钥S-盒的DES

12.7DES现今的安全性如何

第13章 其他分组密码算法

13.1Lucifer算法

13.2Mad ryga 算法

13.2.1Mad ryga 的描述

13.2.2Madryga 的密码分析

13.3NewDES算法

13.4FEAL算法

13.4.1FEAL的描述

13.4.2FEAL的密码分析

13.4.3专利

13.5REDOC算法

13.5.1ReDOCⅢ

13.5.2 专利和许可证

13.6LOKI算 法

13.6.1LOKI91

13.6.2LOK191的描述

13.6.3LOKI91的密码分析

13.6.4专利和许可证

13.7Khufu和Khafre算法

13.7.1Khufu

13.7.2Khafre

13.7.3专利

13.8 RC2算法

13.9IDEA算法

13.9.1IDEA

13.9.2IDEA的描述

13.9.3IDEA的速度

13.9.4IDEA的密码分析

13.9.5IDEA的操作方式和变型

13.9.6敬告使用者

13.9.7专利和许可证

13.10 MMB 算法

13.11CA-1.1算法

13.12Skipjack算法

第14章 其他分组密码算法

(续)

14.1GOST算法

14.1.1GOST的描述

14.1.2GOST的密码分析

14.2 CAST算法

14.3Blowfish算法

14.3.1Blowfish的描述

14.3.2Blowfish的安全性

14.4SAFER算法

14.4.1SAFERK-64的描述

14.4.2SAFERK-128

14.4.3SAFERK-64的安全性

14.53-WAY算法

14.6Crab算法

14.7SXAL8/MBAL算法

14.8RC5算法

14.9其他分组密码算法

14.10分组密码设计理论

14.10.1Feistel网络

14.10.2简单关系

14.10.3群结构

14.10.4弱密钥

14.10.5强的抗差分攻击和线性

攻击

14.10.6S-盒的设计

14.10.7设计分组密码

14.11使用单向散列函数

14.11.1Kam

14.11.2Luby-Rac koff

14.11.3消息摘要密码

14.11.4基于单向散列函数的密码安

全性

14.12分组密码算法的选择

第15章 组合分组密码

15.1双重加密

15.2三重加密

15.2.1用两个密钥进行三重加密

15.2.2用三个密钥进行三重加密

15.2.3用最小密钥进行三重加密

15.2.4三重加密模式

15.2.5 三重加密的变型

15.3加倍分组长度

15.4其他多重加密方案

15.4.1双重OFB/计数器

15.4.2ECB+OFB

15.4.3xDES

15.4.4五重加密

15.5缩短CDMF密钥

15.6白化

15.7级联多重加密算法

15.8组合多重分组算法

第16章 伪随机序列发生器和序列

密码

16.1线性同余发生器

16.2线性反馈移位寄存器

16.3序列密码的设计与分析

16.3.1线性复杂性

16.3.2相关免疫性

16.3.3其他攻击

16.4使用LFSR的序列密码

16.4.1Geffe发生器

16.4.2推广的Geffe发生器

16.4.3Jennings发生器

16.4.4Beth-Piper停走式发生器

16.4.5交替停走式发生器

16.4.6双侧停走式发生器

16.4.7门限发生器

16.4.8自采样发生器

16.4.9多倍速率内积式发生器

16.4.10求和式发生器

16.4.11DNRSG

16.4.12Gollmann级联

16.4.13收缩式发生器

16.4.14自收缩式发生器

16.5A5算法

16.6HughesXPD/KPD算法

16.7Nanoteq算法

16.8Rambutan算法

16.9附加式发生器

16.9.1Fish发生器

16.9.2Pike发生器

16.9.3Mush发生器

16.10Gifford算法

16.11M算法

16.12PKZIP算法

第17章 其他序列密码和真随机序

列发生器

17.1RC4算法

17.2SEAL算法

17.2.1伪随机函数族

17.2.2SEAL的描述

17.2.3SEAL的安全性

17.2.4专利和许可证

17.3WAKE算法

17.4带进位的反馈移位寄存器

17.5使用FCSR的序列密码

17.5.1级联发生器

17.5.2FCSR组合发生器

17.5.3CFSR/FCSR加法/奇偶级联

17.5.4交替停走式发生器

17.5.5收缩式发生器

17.6非线性反馈移位寄存器

17.7其他序列密码

17.7.1Pless发生器

17.7.2蜂窝式自动发生器

17.7.31/p发生器

17.7.4crypt(1)

17.7.5其他方案

17.8序列密码设计的系统理论方法

17.9序列密码设计的复杂性理论

方法

17.9.1Shamir伪随机数发生器

17.9.2Blum-Micali发生器

17.9.3RSA

17.9.4Blum ,Blum和Shub

17.10序列密码设计的其他方法

17.10.1RipvanWinkle密码

17.10.2Diffie随机序列密码

17.10.3Maurer随机序列密码

17.11级联多个序列密码

17.12选择序列密码

17.13从单个伪随机序列发生器产生多

个序列

17.14真随机序列发生器

17.14.1RAND表

17.14.2使用随机噪声

17.14.3使用计算机时钟

17.14.4测量键盘反应时间

17.14.5偏差和相关性

17.14.6提取随机性

第18章 单向散列函数

18.1背景

18.1.1单向散列函数的长度

18.1.2单向散列函数综述

18.2Snefru算法

18.3N-Hash算法

18.4MD4算法

18.5MD5算法

18.5.1MD5的描述

18.5.2MD5的安全性

18.6MD2算法

18.7安全散列算法

18.7.1SHA的描述

18.7.2SHA的安全性

18.8RIPE-MD算法

18.9HAVAL算法

18.10其他单向散列函数

18.11使用对称分组算法的单向散列函

18.11.1散列长度等于分组长度的方

18.11.2改进的Davies-Meyer

18.11.3Preneel-Bosselaers-Govaerts-

Vandewalle

18.11.4Quisqater-Girault

18.11.5LOKI双分组

18.11.6并行Davies-Meyer

18.11.7串联和并联Davies-Meyer

18.11.8MDC-2和MDC-4

18.11.9AR散列函数

18.11.10COST散列函数

18.11.11其他方案

18.12使用公开密钥算法

18.13选择单向散列函数

18.14消息鉴别码

18.14.1CBC-MAC

18.14.2 信息鉴别算法

18.14.3双向MAC

18.14.4Juenenan方法

18.14.5RIPE- MAC

18.14.6IBC-Hash

18.14.7单向散列函数MAC

18.14.8序列密码MAC

第19章 公开密钥算法

19.1背景

19.2背包算法

19.2.1超递增背包

19.2.2由私人密钥产生公开密钥

19.2.3加密

19.2.4解密

19.2.5实际实现方案

19.2.6背包的安全性

19.2.7背包变型

19.2.8专利

19.3RSA算法

19.3.1RSA的硬件实现

19.3.2RSA的速度

19.3.3软件加速

19.3.4RSA的安全性

19.3.5对RSA的选择密文攻击

19.3.6对RSA的公共模数攻击

19.3.7对RSA的低加密指数攻击

19.3.8对RSA的低解密指数攻击

19.3.9经验

19.3.10对RSA的加密和签名的攻

19.3.11标准

19.3.12专利

19.4Pohl ig-Hellman 算法

19.5Rabin算法

19.6ElGamal算法

19.6.1ElGamal签名

19.6.2ElGamal加密

19.6.3速度

19.6.4专利

19.7McEliece 算法

19.8椭圆曲线密码系统

19.9LUC算法

19.10有限自动机公开密钥密码系统

第20章 公开密钥数字签名算法

20.1数字签名算法

20.1.1对通告的反应

20.1.2DSA的描述

20.1.3快速预计算

20.1.4DSA的素数产生

20.1.5使用DSA的ElGama1加密

20.1.6使用DSA的RSA加密

20.1.7DSA的安全性

20.1.8攻击k

20.1.9公共模数的危险

20.1.10颤切中的顺下信道

20.1.11专利

20.2 DSA的变型

20.3 GOST签名算法

20.4 离散对数签名方案

20.5 One-Schnorr-Shamir签名方案

20.6 ESIGN签名方案

20.6.1 ESIGN的安全性

20.6.2 专利

20.7 细胞自动机

第21章 鉴别方案

第22章 密钥交换算法

第23章 协议的专用算法

第四部分 真实世界

第24章 实现方案实例

24.1IBM秘密密钥管理协议

24.2MITRENET

24.3ISDN

24.3.1密钥

24.3.2呼叫

24.4STU-Ⅲ

24.5Kerberos

24.5.1Kerbeeros模型

24.5.2Kerberos工作原理

24.5.3凭证

24.5.4Kerberos第5版消息

25.5.5最初票据的获取

24.5.6服务器票据的获取

24.5.7服务请求

24.5.8Kerberos第4版

24.5.9Kerberos的安全性

24.5.10 许可证

24.6KryptoKnight

24.7SESAME

24.8IBM通用密码体系

24.9ISO鉴别框架

24.9.1证书

24.9.2鉴别协议

24.10保密性增强邮件

24.10.1PEM的有关文件

24.10.2证书

24.10.3PEM的消息

24.10.4PEM的安全性

24.10.5TIS/PEM

24.10.6RIPEM

24.11消息安全协议

24.12Pret tyGood Privacy

24.13智能卡

24.14公开密钥密码学标准

24.15通用电子支付系统

26.16Clipper

24.17Capstone

24.18AT&T3600型电话保密设备

第25章 政治

25.1国家安全局

25.2国家计算机安全中心

25.3国家标准技术所

25.4RSA数据安全有限公司

25.5公开密钥合作商

25.6国际密码研究协会

25.7RACE完整性基本评估

25.8对欧洲的有条件访问

25.9ISO/IEC9979

25.10专业人员、公民自由和工业组织

25.10.1电子秘密信息中心

25.10.2电子战线基金会

25.10.3计算机协会

25.10.4电气和电子工程师学会

25.10.5软件出版商协会

25.11Scicrypt

25.12Cypherpunks

25.13专利

25.14美国出口法规

25.15其他国家的密码进出口

25.16合法性问题

附录A 源代码

A.1DES

A.2LOL191

A.31IDEA

A.4GOST

A.5BLOWFISH

A.63-Way

A.7RC5

A.8A5

A.9SEAL

参考文献

MattBlaze跋