应用密码学 协议、算法与C源程序(原书第2版)pdf

图书网 2018年8月27日12:28:20104.2K

应用密码学 协议、算法与C源程序(原书第2版) 内容简介

《计算机科学丛书·应用密码学:协议、算法与C源程序(原书第2版)》共分四个部分,定义了密码学的多个术语,介绍了密码学的发展及背景,描述了密码学从简单到复杂的各种协议,详细讨论了密码技术。并在此基础上列举了如DES、IDEA、RSA、DSA等十多个算法以及多个应用实例,并提供了算法的源代码清单。

《计算机科学丛书·应用密码学:协议、算法与C源程序(原书第2版)》内容广博专业,具有极大的实用价值,是致力于密码学研究的专业及非专业人员一本难得的好书。

应用密码学 协议、算法与C源程序(原书第2版) 目录

第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.2 Merkle的难题

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.3 SKEY

3.2.4 使用公开密钥密码系统鉴别

3.2.5 使用联锁协议互相鉴别

3.2.6 SKID

3.2.7 消息鉴别

3.3 鉴别和密钥交换

3.3.1 Wide-Mouth Frog协议

3.3.2 Yahalom协议

3.3.3 Needham-Schroeder协议

3.3.4 Otway-Rees协议

3.3.5 Kerberos协议

3.3.6 Neuman-Stubblebine协议

3.3.7 DASS协议

3.3.8 Denning-Sacco协议

3.3.9 Woo-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.1 DNA计算法

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.5 X9.17密钥产生

8.1.6 DoD密钥产生

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.4 OFB模式中的序列密码

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 用于存储的加密数据

10.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.3 NP完全问题

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.12 Blum整数

11.3.13 生成元

11.3.14 伽罗瓦域中的计算

11.4 因子分解

11.5 素数的产生

11.5.1 Solovag-Strassen

11.5.2 Lehmann

11.5.3 Rabin-Miller

11.5.4 实际考虑

11.5.5 强素数

11.6 有限域上的离散对数

第12章 数据加密标准

12.1 背景

12.1.1 标准的开发

12.1.2 标准的采用

12.1.3 DES设备的鉴定和认证

12.1.4 1987年的标准

12.1.5 1993年的标准

12.2 DES的描述

12.2.1 算法概要

12.2.2 初始置换

12.2.3 密钥置换

12.2.4 扩展置换

12.2.5 S盒代替

12.2.6 P盒置换

12.2.7 末置换

12.2.8 DES解密

12.2.9 DES的工作模式

12.2.10 DES的硬件和软件实现

12.3 DES的安全性

12.3.1 弱密钥

12.3.2 补密钥

12.3.3 代数结构

12.3.4 密钥的长度

12.3.5 迭代的次数

12.3.6 S盒的设计

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.3 DESX

12.6.4 CRYPT(3)

12.6.5 GDES

12.6.6 更换S盒的DES

12.6.7 RDES

12.6.8 snDES

12.6.9 使用相关密钥S盒的DES

12.7 DES现今的安全性

第13章 其他分组密码算法

13.1 Lucifer算法

13.2 Madryga算法

13.2.1 Madryga的描述

13.2.2 Madryga的密码分析

13.3 NewDES算法

13.4 FEAL算法

13.4.1 FEAL的描述

13.4.2 FEAL的密码分析

13.4.3 专利

13.5 REDOC算法

13.5.1 REDOCⅢ

13.5.2 专利和许可证

13.6 LOKI算法

13.6.1 LOKI91

13.6.2 LOKI91的描述

13.6.3 LOKI91的密码分析

13.6.4 专利和许可证

13.7 Khufu和Khafre算法

13.7.1 Khufu

13.7.2 Khafre

13.7.3 专利

13.8 RC2算法

13.9 IDEA算法

13.9.1 IDEA

13.9.2 IDEA的描述

13.9.3 IDEA的速度

13.9.4 IDEA的密码分析

13.9.5 IDEA的操作方式和变型

13.9.6 敬告使用者

13.9.7 专利和许可证

13.10 MMB算法

13.11 CA-1.1算法

13.12 Skipjack算法

第14章 其他分组密码算法(续)

14.1 GOST算法

14.1.1 GOST的描述

14.1.2 GOST的密码分析

14.2 CAST算法

14.3 Blowfish算法

14.3.1 Blowfish的描述

14.3.2 Blowfish的安全性

14.4 SAFER算法

14.4.1 SAFER K-64的描述

14.4.2 SAFER K-128

14.4.3 SAFER K-64的安全性

14.5 3-Way算法

14.6 Crab算法

14.7 SXAL8/MBAL算法

14.8 RC5算法

14.9 其他分组密码算法

14.10 分组密码设计理论

14.10.1 Feistel网络

14.10.2 简单关系

14.10.3 群结构

14.10.4 弱密钥

14.10.5 强的抗差分攻击和线性攻击

14.10.6 S盒的设计

14.10.7 设计分组密码

14.11 使用单向散列函数

14.11.1 Karn

14.11.2 Luby-Rackoff

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.2 ECB+OFB

15.4.3 xDES

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.1 Geffe发生器

16.4.2 推广的Geffe发生器

16.4.3 Jennings发生器

16.4.4 Beth-Piper停走式发生器

16.4.5 交错停走式发生器

16.4.6 双侧停走式发生器

16.4.7 门限发生器

16.4.8 自采样发生器

16.4.9 多倍速率内积式发生器

16.4.10 求和式发生器

16.4.11 DNRSG

16.4.12 Gollmann级联

16.4.13 收缩式发生器

16.4.14 自收缩式发生器

16.5 A5算法

16.6 Hughes XPD/KPD算法

16.7 Nanoteq算法

16.8 Rambutan算法

16.9 附加式发生器

16.9.1 Fish发生器

16.9.2 Pike发生器

16.9.3 Mush发生器

16.10 Gifford算法

16.11 M算法

16.12 PKZIP算法

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

17.1 RC4算法

17.2 SEAL算法

17.2.1 伪随机函数族

17.2.2 SEAL的描述

17.2.3 SEAL的安全性

17.2.4 专利和许可证

17.3 WAKE算法

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

17.5 使用FCSR的序列密码

17.5.1 级联发生器

17.5.2 FCSR组合发生器

17.5.3 LFSR/FCSR加法/奇偶级联

17.5.4 交错停走式发生器

17.5.5 收缩式发生器

17.6 非线性反馈移位寄存器

17.7 其他序列密码

17.7.1 Pless发生器

17.7.2 蜂窝式自动发生器

17.7.3 l/p发生器

17.7.4 crypt(1)

17.7.5 其他方案

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

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

17.9.1 Shamir伪随机数发生器

17.9.2 Blum-Micali发生器

17.9.3 RSA

17.9.4 Blum、Blum和Shub

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

17.10.1 Rip van Winkle密码

17.10.2 Diffie随机序列密码

17.10.3 Maurer随机序列密码

17.11 级联多个序列密码

17.12 选择序列密码

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

17.14 真随机序列发生器

17.14.1 RAND表

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.2 Snefru算法

18.3 N-Hash算法

18.4 MD4算法

18.5 MD5算法

18.5.1 MD5的描述

18.5.2 MD5的安全性

18.6 MD2算法

18.7 安全散列算法

18.7.1 SHA的描述

18.7.2 SHA的安全性

18.8 RIPE-MD算法

18.9 HAVAL算法

18.10 其他单向散列函数

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

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

18.11.2 改进的Davies-Meyer

18.11.3 Preneel-Bosselaers-Govaerts-Vandewalle

18.11.4 Quisquater-Girault

18.11.5 LOKI双分组

18.11.6 并行Davies-Meyer

18.11.7 串联和并联Davies-Meyer

18.11.8 MDC-2和MDC-4

18.11.9 AR散列函数

18.11.10 GOST散列函数

18.11.11 其他方案

18.12 使用公开密钥算法

18.13 选择单向散列函数

18.14 消息鉴别码

18.14.1 CBC-MAC

18.14.2 消息鉴别算法

18.14.3 双向MAC

18.14.4 Jueneman方法

18.14.5 RIPE-MAC

18.14.6 IBC-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.3 RSA算法

19.3.1 RSA的硬件实现

19.3.2 RSA的速度

19.3.3 软件加速

19.3.4 RSA的安全性

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.4 Pohlig-Hellman算法

19.5 Rabin算法

19.6 ElGamal算法

19.6.1 E1Gamal签名

19.6.2 ElGamal加密

19.6.3 速度

19.6.4 专利

19.7 McEliece算法

19.8 椭圆曲线密码系统

19.9 LUC算法

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

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

20.1 数字签名算法

20.1.1 对通告的反应

20.1.2 DSA的描述

20.1.3 快速预计算

20.1.4 DSA的素数产生

20.1.5 使用DSA的ElGamal加密

20.1.6 使用DSA的RSA加密

20.1.7 DSA的安全性

20.1.8 攻击k

20.1.9 公共模数的危险

20.1.10 DSA中的阈下信道

20.1.11 专利

20.2 DSA的变型

20.3 GOST数字签名算法

20.4 离散对数签名方案

20.5 Ong-Schnorr-Shamir签名方案

20.6 ESIGN签名方案

20.6.1 ESIGN的安全性

20.6.2 专利

20.7 细胞自动机

20.8 其他公开密钥算法

第21章 鉴别方案

21.1 Feige-Fiat-Shamir算法

21.1.1 简化的Feige-Fiat-Shamir身份鉴别方案

21.1.2 Feige-Fiat-Shamir身份鉴别方案

21.1.3 例子

21.1.4 加强方案

21.1.5 Fiat-Shamir签名方案

21.1.6 改进的Fiat-Shamir签名方案

21.1.7 其他加强方案

21.1.8 Ohta-Okamoto身份鉴别方案

21.1.9 专利

21.2 Guillou-Quisquater算法

21.2.1 Guillou-Quisquater身份鉴别方案

21.2.2 Guillou-Quisquater数字签名方案

21.2.3 多重签名

21.3 Schnorr算法

21.3.1 鉴别协议

21.3.2 数字签名协议

21.3.3 专利

21.4 将身份鉴别方案转为数字签名方案

第22章 密钥交换算法

22.1 Diffie-Hellman算法

22.1.1 三方或多方Diffie-Hellman

22.1.2 扩展Diffie-Hellman

22.1.3 Hughes

22.1.4 不用交换密钥的密钥交换

22.1.5 专利

22.2 站间协议

22.3 Shamir的三次传递协议

22.4 COMSET协议

22.5 加密密钥交换

22.5.1 基本EKE协议

22.5.2 用RSA实现EKE

22.5.3 用ElGamal实现EKE

22.5.4 用Diffie-Hellman实现EKE

22.5.5 加强的EKE

22.5.6 扩充的EKE

22.5.7 EKE的应用

22.6 加强的密钥协商

22.7 会议密钥分发和秘密广播

22.7.1 会议密钥分发

22.7.2 Tatebayashi-Matsuzaki-Newman

第23章 协议的专用算法

23.1 多重密钥的公开密钥密码系统

23.2 秘密共享算法

23.2.1 LaGrange插值多项式方案

23.2.2 矢量方案

23.2.3 Asmuth-Bloom

23.2.4 Kami-Greene-Hellman

23.2.5 高级门限方案

23.2.6 有骗子情况下的秘密共享

23.3 阈下信道

23.3.1 Ong-Schnorr-Shamir

23.3.2 ElGamal

23.3.3 ESIGN

23.3.4 DSA

23.3.5 挫败DSA阈下信道

23.3.6 其他方案

23.4 不可抵赖的数字签名

23.5 指定的确认者签名

23.6 用加密数据计算

23.7 公平的硬币抛掷

23.7.1 利用平方根的硬币抛掷

23.7.2 利用模p指数运算的硬币抛掷

23.7.3 利用Blum整数的硬币抛掷

23.8 单向累加器

23.9 秘密的全或无泄露

23.10 公正和故障保险密码系统

23.10.1 公正的Diffie-Hellman

23.10.2 故障保险的Diffie-Hellman

23.11 知识的零知识证明

23.11.1 离散对数的零知识证明

23.11.2 破译RSA能力的零知识证明

23.11.3 n是一个Blum整数的零知识证明

23.12 盲签名

23.13 不经意传输

23.14 保密的多方计算

23.15 概率加密

23.16 量子密码学

第四部分 真实世界

第24章 实现方案实例

24.1 IBM秘密密钥管理协议

24.2 MITRENET

24.3 ISDN

24.3.1 密钥

24.3.2 呼叫

24.4 STU-Ⅲ

24.5 Kerberos

24.5.1 Kerberos模型

24.5.2 Kerberos工作原理

24.5.3 凭证

24.5.4 Kerberos第5版消息

24.5.5 最初票据的获取

24.5.6 服务器票据的获取

24.5.7 服务请求

24.5.8 Kerberos第4版

24.5.9 Kerberos的安全性

24.5.10 许可证

24.6 KryptoKnight

24.7 SESAME

24.8 IBM通用密码体系

24.9 ISO鉴别框架

24.9.1 证书

24.9.2 鉴别协议

24.10 保密性增强邮件

24.10.1 PEM的有关文件

24.10.2 证书

24.10.3 PEM的消息

24.10.4 PEM的安全性

24.10.5 TIS/PEM

24.10.6 RIPEM

24.11 消息安全协议

24.12 Pretty Good Privacy

24.13 智能卡

24.14 公开密钥密码学标准

24.15 通用电子支付系统

24.16 Clipper

24.17 Capstone

24.18 AT&T 3600型电话保密设备

第25章 政治

25.1 国家安全局

25.2 国家计算机安全中心

25.3 国家标准技术所

25.4 RSA数据安全有限公司

25.5 公开密钥合作商

25.6 国际密码研究协会

25.7 RACE完整性基本评估

25.8 对欧洲的有条件访问

25.9 ISO/IEC 9979

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

25.10.1 电子秘密信息中心

25.10.2 电子战线基金会

25.10.3 计算机协会

25.10.4 电气和电子工程师学会

25.10.5软件出版商协会

25.11 sci.crypt

25.12 Cvpherpunks

25.13 专利

25.14 美国出口法规

25.15 其他国家的密码进出口

25.16 合法性问题

附录A 源代码

参考文献

Matt Blaze跋

应用密码学 协议、算法与C源程序(原书第2版) 精彩文摘

世界上有两种密码:一种是防止小孩偷看你的文件;另一种是防止当局阅读你的文件。本书写的是后一种情况。

如果把一封信锁在保险柜中,把保险柜藏在纽约的某个地方,然后告诉你去看这封信,这并不是安全,而是隐藏。相反,如果把一封信锁在保险柜中,然后把保险柜及其设计规范和许多同样的保险柜给你,以便你和世界上最好的开保险柜的专家能够研究锁的装置,而你还是无法打开保险柜去读这封信,这才是安全的概念。

许多年来,密码学是军队专有的领域。NSA和苏联、英国、法国、以色列以及其他国家的安全机构已将大量的财力投入到加密自己的通信,同时又千方百计地破译别人的通信的残酷游戏中。面对这些政府,个人既无专业知识又无足够财力保护自己的秘密。

在过去的20年里,公开的密码学研究爆炸性地增长。从第二次世界大战以来,当普通公民还在长期使用经典密码时,计算机密码学已成为世界军事专有的领域。今天,最新的计算机密码学已应用到军事机构外,现在就连非专业人员都可以利用密码技术去阻止最强大的敌人,包括军方的安全机构。

普通百姓真的需要这种保密性吗?是的,他们可能正在策划一次政治运动,讨论税收或正干一件非法的事情;也可能正设计一件新产品,讨论一种市场策略,或计划接管竞争对手的生意;或者可能生活在一个不尊重个人隐私权的国家,也可能做一些他们自己认为并非违法实际却是非法的事情。不管理由是什么,他的数据和通信都是私人的、秘密的,与他人无关。

本书正好在混乱的年代出版。1994年,克林顿当局核准了托管加密标准(包括Clipper芯片和Fortezza卡),并将数字电话法案签署成为法律。这两个行政令企图确保政府实施电子监控的能力。

一些危险的Orwellian假设在作祟:政府有权侦听私人通信,个人对政府保守秘密是错误的。如果可能,法律总有能力强制实施法院授权的监控,但是,这是公民第一次被迫采取“积极措施”,以使他们自己能被监控。这两个行政令并不是政府在某个模糊范围内的简单倡议,而是一种先发制人的单方面尝试,旨在侵占以前属于公民的权力。

Clipper和数字电话不保护隐私,它强迫个人无条件地相信政府将尊重他们的隐私。非法窃听小马丁·路德·金电话的执法机构,同样也能容易地窃听用Clipper保护的电话。最近,地方警察机关在不少管区都有因非法窃听而被控有罪或被提出民事诉讼的事件,这些地方包括马里兰、康涅狄格、佛蒙特、佐治亚、密苏里和内华达。为了随时方便警察局的工作而配置这种技术是很糟糕的想法。

这给我们的教训是采用法律手段并不能充分保护我们自己,还需要用数学来保护自己。加密太重要了,不能让给政府独享。

本书为你提供了一些可用来保护自己隐私的工具。提供密码产品可能被宣布为非法,但提供有关的信息绝不会犯法。

怎样阅读本书

我写本书的目的是为了在真实地介绍密码学的同时给出全面的参考文献。我尽量在不损失正确性的情况下保持本书的可读性,我不想使本书成为一本数学书。虽然我无意给出任何错误信息,但匆忙中理论难免有失严谨。对形式方法感兴趣的人,可以参考大量的学术文献。

第1章介绍密码学,定义许多术语,简要讨论计算机出现前密码学的情况。

第一部分(第2~6章)描述密码学的各种协议:人们能用密码学做什么。协议范围从简单(一人向另一人发送加密消息)到复杂(在电话上抛掷硬币)再到深奥(秘密的和匿名的数字货币交易)。这些协议中有些一目了然,有些却十分奇异。密码学能够解决大多数人绝没有认识到的许多问题。

第二部分(第7~10章)讨论密码技术。对密码学的大多数基本应用来说,这一部分的4章都很重要。第7章和第8章讨论密钥:密钥应选多长才能保密,怎样产生、存储密钥,怎样处理密钥等。密钥管理是密码学最困难的部分,经常是保密系统的一个致命弱点。第9章讨论使用密码算法的不同方法。第10章给出与算法有关的细节:怎样选择、实现和使用算法。

第三部分(第11~23章)列出多个算法。第11章提供数学背景,如果你对公开密钥算法感兴趣,那么这一章你一定要了解。如果你只想实现DES(或类似的东西),则可以跳过这一章。第12章讨论DES:DES算法、它的历史、安全性和一些变型。第13~15章讨论其他的分组算法:如果你需要比DES更保密的算法,请阅读IDEA和三重DES算法这节;如果你想知道一系列比DES算法更安全的算法,就请读完整章。第16章和第17章讨论序列密码算法。第18章集中讨论单向散列函数,虽然讨论了多种单向散列函数,但MD5和SHA是最通用的。第19章讨论公开密钥加密算法。第20章讨论公开密钥数字签名算法。第21章讨论公开密钥鉴别算法。第22章讨论公开密钥交换算法。几种重要的公开密钥算法分别是 RSA、DSA、Fiat-Shamir和Diffie-Hellman。第23章讨论更深奥的公开密钥算法和协议,这一章的数学知识非常复杂,请你做好思想准备。

第四部分(第24~25章)转向密码学的真实世界。第24章讨论这些算法和协议的一些实际实现;第25章涉及围绕密码学的一些政治问题。这些章节并不全面。

此外,本书还包括在第三部分讨论的10个算法的源代码清单,由于篇幅的限制,不可能给出所有的源代码,况且密码的源代码不能出口(非常奇怪的是,国务院允许本书的第1版和源代码出口,但不允许含有同样源代码的计算机磁盘出口)。配套的源代码盘中包括的源代码比本书中列出的要多得多,这也许是除军事机构以外最大的密码源代码集。我只能给住在美国和加拿大的公民发送源代码盘,但我希望有一天这种情况会改变。

图书网:应用密码学 协议、算法与C源程序(原书第2版)pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:10   其中:访客  11   博主  0
    • 937451072
      937451072 0

      谢谢

        • 加油加油再加油
          加油加油再加油 1

          @ 937451072 请问怎么下载?我提交评论了还是不能下载

        • furtherli
          furtherli 9

          谢谢

          • 人生若只如初见
            人生若只如初见 9

            挺好的

            • huaiyazi
              huaiyazi 9

              老师推荐的书

              • 12138
                12138 9

                密码算法的具体应用

                • 入 聿
                  入 聿 9

                  谢谢

                  • 神奇
                    神奇 9

                    看看

                    • 加油加油再加油
                      加油加油再加油 1

                      最近在上这门课,但是没有书,博主的这本书真的是帮了大忙,希望能下载下来帮助学习!

                      • 加油加油再加油
                        加油加油再加油 1

                        回复

                        • zzz
                          zzz 0

                          谢谢