《大数运算:加密多精度算法的理论与实现》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)TOM ST DENIS编著;尹浩琼等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2008
  • ISBN:9787508450223
  • 页数:231 页
图书介绍:大数运算是加密和安全领域必不可少的一部分,要想实现它,既需要相应的数学理论知识,又需要一定的编程技巧。对于每一个初学者,要想掌握它,必定要花费大量时间查阅数学书本和C语言教程(也可能是别的语言)。本书作者为了方便初学者学习及业内人士使用,开发了一个免费的大数运算库,即LibTomMath项目。本书结合LibTomMath库,由浅入深,对各种大数运算的算法进行了阐述。对每一种运算,一般都列出多种算法,并对其性能进行比较。本书适合于对算法、IT安全、加密领域感兴趣的读者阅读。

第1章 引言 1

1.1 多精度算术 1

1.1.1 什么是多精度算术 1

1.1.2 为什么需要多精度算术 1

1.1.3 多精度算术的优势 2

1.2 本书目的 3

1.3 讨论和表示法 4

1.3.1 表示法 4

1.3.2 精度表示法 4

1.3.3 算法输入和输出 5

1.3.4 数学表达式 5

1.3.5 算法的效率 5

1.4 练习 6

1.5 LibTomMath简介 7

1.5.1 什么是LibTomMath 7

1.5.2 LibTomMath的目标 7

1.6 为什么选择LibTomMath 8

1.6.1 代码基 8

1.6.2 API简单易懂 8

1.6.3 优化 9

1.6.4 可移植性和稳定性 9

1.6.5 选择 10

第2章 入门 11

2.1 库的基本知识 11

2.2 什么是多精度整数 12

2.3 参数传递 13

2.4 返回值 14

2.5 初始化和清除 15

2.5.1 初始化mp_int 15

2.5.2 清除mp_int 17

2.6 维护算法 19

2.6.1 增加mp_int的精度 19

2.6.2 初始化可变精度的mp_ints 21

2.6.3 多个整数的初始化和清除 23

2.6.4 压缩多余位 24

练习 26

第3章 基本操作 27

3.1 简介 27

3.2 为mp_int结构赋值 27

3.2.1 拷贝一个mp_int 27

3.2.2 克隆 30

3.3 将整数清零 31

3.4 符号操作 32

3.4.1 绝对值 32

3.4.2 整数取反 33

3.5 小常量 34

3.5.1 设置小常量 34

3.5.2 设置大常量 35

3.6 比较 37

3.6.1 无符号数比较 37

3.6.2 有符号数比较 39

练习 40

第4章 基本算法 41

4.1 简介 41

4.2 加法和减法 41

4.2.1 低级加法 42

4.2.2 低级减法 45

4.2.3 高级加法 49

4.2.4 高级减法 51

4.3 比特和数字移位 53

4.3.1 乘以2 54

4.3.2 除以2 56

4.4 多项式基运算 58

4.4.1 乘以x 59

4.4.2 除以x 61

4.5 2的幂 63

4.5.1 乘以2的幂 63

4.5.2 除以2的幂 66

4.5.3 除以2的幂的余数 68

练习 70

第5章 乘法与平方 72

5.1 乘法器 72

5.2 乘法 72

5.2.1 基线乘法 72

5.2.2 使用Comba方法的快速乘法 77

5.2.3 更快的乘法 82

5.2.4 多项式基乘法 84

5.2.5 Karatsuba乘法 86

5.2.6 Toom-Cook 3-Way乘法 92

5.2.7 有符号乘法 100

5.3 平方 102

5.3.1 基线平方算法 102

5.3.2 使用Comba方法的更快速平方 105

5.3.3 更快的平方 109

5.3.4 多项式基平方 109

5.3.5 Karatsuba平方 109

5.3.6 Toom-Cook平方 114

5.3.7 高级平方 114

练习 116

第6章 模缩减 117

6.1 模缩减的基础知识 117

6.2 Barrett缩减 117

6.2.1 定点算法 118

6.2.2 选择小数点 119

6.2.3 对商进行缩减 120

6.2.4 对余数进行缩减 120

6.2.5 Barrett算法 121

6.2.6 Barrett设置算法 124

6.3 Montgomery缩减 125

6.3.1 基于数位的Montgomery缩减 127

6.3.2 基线Montgomery缩减 128

6.3.3 较快的“Comba”Montgomery缩减 132

6.3.4 Montgomery设置 137

6.4 缩减基算法 139

6.4.1 选择模数 141

6.4.2 k的选择 141

6.4.3 受限的缩减基缩减 141

6.4.4 未受限的缩减基缩减 146

6.5 算法比较 150

练习 151

第7章 幂乘 152

7.1 幂乘基础 152

7.2 k-ary幂乘 155

7.2.1 k的最优值 156

7.2.2 滑动窗幂乘 156

7.3 模幂乘 158

7.4 快速计算2的幂 170

练习 171

第8章 较高级算法 172

8.1 有余数的整数除法 172

8.1.1 商估计 173

8.1.2 归一化整数 174

8.1.3 以β为基的带余数的除法 174

8.2 单数位帮助算法 183

8.2.1 单数位加法和减法 183

8.2.2 单数位乘法 186

8.2.3 单数位除法 188

8.2.4 单数位求根 191

8.3 随机数生成 195

8.4 格式化表示形式 197

8.4.1 读取以n为基的输入 197

8.4.2 生成以n为基的输出 200

第9章 数论算法 203

9.1 最大公约数 203

9.2 最小公倍数 208

9.3 Jacobi符号计算 210

9.4 模逆 216

9.5 素性测试 221

9.5.1 试除法 222

9.5.2 Fermat测试 225

9.5.3 Miller-Rabin测试 226

练习 229

参考文献 230