密码学数论基础
本文最后更新于 2023年3月3日 下午
密码学中需要知道的一些数论的知识备忘
密码学数论基础
整除性和带余除法
整除
- 整除 、因子、真因子
- 传递性、同乘、线性组合
整数
- 带余除法(欧几里得除法 )
- 进制表示
最大公因子
- 求法:辗转相除法(Euclid算法)
- 计算量
- 多个数的最大公因子求法:从原数组选取两个数,得到其最大公因子后加入到原数组中。重复操作直至数组中仅一个元素。
整数的唯一分解定理
- 素数、合数、互素
- 唯一分解定理:整数可唯一表示为若干素数的乘积
- 最小公倍数
- 求法:
素数
- 素数有无穷多个
- 特殊的素数
- Mersenne 素数:形如 的素数
- Fermat 素数:形如 的素数
- 就不是素数
- 寻找素数:
- Eratosthenes 筛法
- 素性测试
同余式
同余
中国剩余定理
- 求解同余方程组:中国剩余定理
- 求解方程组:
- 计算:,
- 则该方程有且仅有一个小于 的解
- 求解方程组:
剩余类环
-
剩余类:根据模 的余数进行划分集合
- 完全剩余系:对剩余类的每个集合选取一个代表元
-
Euler 函数:与 互素的剩余类个数,记为
- Euler 定理:若 ,则
- Fermat 小定理:若 为素数,则对所有整数 有
- 缩系:对剩余类的每个集合选取一个与 互素的代表元
-
快速模幂算法:“平方-乘”算法
同余方程
- 一次方程: 有解
- 高次方程:不规则,但是若模数 可以素数分解为同余方程组
- Wilson 定理:若 为素数,则
原根
- 阶:满足 的最小正整数 ,记作
- 原根:满足 的
- 素数的原根总是存在,但是其他情况未必(原根存在定理)
- 寻找原根:枚举原根并检验其正确性
二次剩余
Legendre 符号及 Euler 判别法
- 二次剩余:,若 有解,则 称为模 的二次剩余。否则称为二次非剩余
- Legendre 符号及 Euler 判别法:设 为奇素数,,则
( 时取得 0 )
- 推论:
二次互反律
- 设 为奇素数,,则
Jacobi 符号和二次剩余问题
- Jacobi 符号:对 Legendre 符号的扩充—— 不仅限于奇素数,
- 对 的求法与 Legendre 符号相同,二次互反律同样适用
- 二次剩余假设:若不知道 的因子分解,判断 是否为模 的二次剩余是一个困难问题
- 因为上述假设具有陷门(当 的因子分解为已知是,存在多项式时间复杂度为 的算法判断是否为二次剩余)。所以可以根据此构造一个公钥密码
密码学数论基础
https://justloseit.top/密码学数论基础/