前言
第1章 引言
1.1 多精度算术
1.1.1 什么是多精度算术
1.1.2 为什么需要多精度算术
1.1.3 多精度算术的优势
1.2 本书目的
1.3 讨论和表示法
1.3.1 表示法
1.3.2 精度表示法
1.3.3 算法输入和输出
1.3.4 数学表达式
1.3.5 算法的效率
1.4 练习
1.5 LiblbmMath简介
1.5.1 什么是LibTomMath
1.5.2 LibT0mMath的目标
1.6 为什么选择LibTomMath
1.6.1 代码基
1.6.2 API简单易懂
1.6.3 优化
1.6.4 可移植性和稳定性
1.6.5 选择
第2章 入门
2.1 库的基本知识
2.2 什么是多精度整数
2.3 参数传递
2.4 返回值
2.5 初始化和清除
2.5.1 初始化mp_int
2.5.2 清除mp_int
2.6 维护算法
2.6.1 增加mp_int的精度
2.6.2 初始化可变精度的mp_ints
2.6.3 多个整数的初始化和清除
2.6.4 压缩多余位
练习
第3章 基本操作
3.1 简介
3.2 为mp_int结构赋值
3.2.1 拷贝一个mp_int
3.2.2 克隆
3.3 将整数清零
3.4 符号操作
3.4.1 绝对值
3.4.2 整数取反
3.5 小常量
3.5.1 设置小常量
3.5.2 设置大常量
3.6 比较
3.6.1 无符号数比较
3.6.2 有符号数比较
练习
第4章 基本算法
4.1 简介
4.2 加法和减法
4.2.1 低级加法
4.2.2 低级减法
4.2.3 高级加法
4.2.4 高级减法
4.3 比特和数字移位
4.3.1 乘以2
4.3.2 除以2
4.4 多项式基运算
4.4.1 乘以x
4.4.2 除以x
4.5 2的幂
4.5.1 乘以2的幂
4.5.2 除以2的幂
4.5.3 除以2的幂的余数
练习
第5章 乘法与平方
5.1 乘法器
5.2 乘法
5.2.1 基线乘法
5.2.2 使用Comba方法的快速乘法
5.2.3 更快的乘法
5.2.4 多项式基乘法
5.2.5 Karatsuba乘法
5.2.6 Toom.Cook 3-Way乘法
5.2.7 有符号乘法
5.3 平方
5.3.1 基线平方算法
5.3.2 使用Comba方法的更快速平方
5.3.3 更快的平方
5.3.4 多项式基平方
5.3.5 Karatsuba平方
5.3.6 Toom-Cook平方
5.3.7 高级平方
练习
第6章 模缩减
6.1 模缩减的基础知识
6.2 Barrett缩减
6.2.1 定点算法
6.2.2 选择小数点
6.2.3 对商进行缩减
6.2.4 对余数进行缩减
6.2.5 Barrett算法
6.2.6 Barrett设置算法
6.3 Montgomery缩减
6.3.1 基于数位的Montgomery缩减
6.3.2 基线Montgomery缩减
6.3.3 较快的“Comba”Montgomery缩减
6.3.4 Montgomery设置
6.4 缩减基算法
6.4.1 选择模数
6.4.2 k的选择
6.4.3 受限的缩减基缩减
6.4.4 未受限的缩减基缩减
6.5 算法比较
练习
第7章 幂乘
7.1 幂乘基础
7.2 k-ary幂乘
7.2.1 k的最优值
7.2.2 滑动窗幂乘
7.3 模幂乘
7.4 快速计算2的幂
练习
第8章 较高级算法
8.1 有余数的整数除法
8.1.1 商估计
8.1.2 归一化整数
8.1.3 以β为基的带余数的除法
8.2 单数位帮助算法
8.2.1 单数位加法和减法
8.2.2 单数位乘法
8.2.3 单数位除法
8.2.4 单数位求根
8.3 随机数生成
8.4 格式化表示形式
8.4.1 读取以n为基的输入
8.4.2 生成以n为基的输出
第9章 数论算法
9.1 最大公约数
9.2 最小公倍数
9.3 Jacobi符号计算
9.4 模逆
9.5 素性测试
9.5.1 试除法
9.5.2 Fermat测试
9.5.3 Miller.Rabin测试
练习
参考文献