Elementary Number Theory
Table of Contents
1. 素数和最大公因子
1.1. 素数
定义:素数是大于
1.2. 算术基本定理(The Fundamental Theorem of Arithmetic)
算术基本定理是一个重要的结果,它说明素数是整数的乘法构成单元。
定理(算术基本定理):每个大于
有时算术基本定理被扩展应用到整数 1, 即 1 被看作是唯一地被写成素数的空乘积,
例题:一些正整数的分解如下:
整数分解中把素因子组合成幂的形式被称为素幂分解(prime-power factorization)。
1.3. 最大公因子
定义(最大公因子):两个不同时为零的整数
定义(互素):如果两个整数
1.4. 欧几里得算法
欧几里得算法(Euclidean Algorithm)是一种快速寻找最大公因子的算法。
定理(欧几里得算法):整数
从定理中我们看到通过带余除法,在每一步中被除数和除数被更小的数代替,这些更小的数实际上是每一步中的除数和余数,运算直到余数为零时终止,这一系列的运算产生了一系列的等式,而最大公因子就是最后一个非零的余数。
例题:求
0 | 252 | 198 | 1 | 54 |
1 | 198 | 54 | 3 | 36 |
2 | 54 | 36 | 1 | 18 |
3 | 36 | 18 | 2 | 0 |
最后一个非零余数(在最后一列倒数第二行的那个数)就是 252 和 198 的最大公因子,因此
1.5. 线性丢番图方程
考虑下面的问题:一个人想购买 510 美元的旅游支票,支票只有 20 美元和 50 美元两种,那么每一种应该买多少?如果我们令
类似的问题有,当一个妇女想邮寄一个包裹。邮局的职员测定邮寄这个包裹的费用是 83 美分,但是只有 6 美分和 15 美分的邮票,那么是否有这两种邮票的组合后的面值恰好可以来邮寄这个包裹呢?为了回答这个问题,我们先令
当我们需要求解特定方程的整数解的时候,那么就得到了一个丢番图方程,这些方程是根据古希腊数学家丢番图(Diophantus)而命名的,他写下了一些方程并将解限定在有理数域上。 方程
定理:设
例题:求线性丢番图方程
例题:求线性丢番图方程
2. Congruences
2.1. 同余定义
定义: 若
例题:因为
2.2. 同余相关定理
定理:设
- 自反性(Reflexive Property)。若
是整数,则 ; - 对称性(Symmetric Property)。若
和 是整数,且 ,则 ; - 传递性(Transitive Property)。若
和 是整数,且 和 ,则 。
由上面的定理可知,整数的集合被分成
例题:求模
这 4 个同余类可分别记为
定理:若
上面定理表明,一个同余式两边同时加、减、乘上同一个整数,其同余关系不变。那么除法呢?也就是说一个同余式两边除以一个整数,同余关系还会保持吗?答案是不一定。我们看个例子:显然
定理: 若
例题:因为
推论:若
定理:若
2.3. 线性同余方程
设
首先注意到,若
定理:设
推论:若
例题:找出
2.4. 中国剩余定理
中国剩余定理:设
例题:求解《孙子算经》有个“物不知数”问题:
有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
也就是说,一个整数除以三余二,除以五余三,除以七余二,求这个整数。
这里的线性同余方程组为:
3. 特殊的同余式
3.1. Wilson's Theorem
威尔逊定理给出了判定一个自然数是否为素数充要条件。即
表 1 是
2 | 1 | 0 |
3 | 2 | 0 |
4 | 6 | 3 |
5 | 24 | 0 |
6 | 120 | 1 |
7 | 720 | 0 |
8 | 5040 | 1 |
9 | 40320 | 1 |
10 | 362880 | 1 |
11 | 3628800 | 0 |
12 | 39916800 | 1 |
13 | 479001600 | 0 |
14 | 6227020800 | 1 |
15 | 87178291200 | 1 |
16 | 1307674368000 | 1 |
17 | 20922789888000 | 0 |
18 | 355687428096000 | 1 |
19 | 6402373705728000 | 0 |
20 | 121645100408832000 | 1 |
一般把威尔逊定理描述为同余式的形式,即: 如果
威尔逊定理的逆也成立,即:
3.2. Fermat's Little Theorem
费马小定理:如果
比如,
3.3. Euler's Theorem
欧拉定理:如果
我们知道,如果
4. 乘性函数
定义(算术函数):定义在所有正整数上的函数称为算术函数。
定义(乘性函数): 算术函数
例题:对所有
定理:如果
证明:我们将基于整数
假设定理对素数幂分解中出现
4.1. 欧拉 函数
定义:在数论中,对正整数
4.1.1. 欧拉 函数相关定理 I
定理:如果
证明:如果
定理:设
证明:所有不超过
例题:计算
定理: 欧拉
4.1.2. 欧拉 函数计算公式
设
例题:求
例题:求
4.1.3. 欧拉 函数相关定理 II
定理:设
定理:设
我们使用
4.2. 因子和函数、因子个数函数
定义:因子和函数
定义:因子个数函数
因子和函数、因子个数函数都是乘性函数。
5. Primitive Roots
5.1. 整数的阶
由欧拉定理可知,如果
定义:设
例题:求解
例题:求解
5.1.1. 整数的阶相关定理
定理:如果
证明:如果
例题:请问
推论: 如果
我们在计算整数的阶时,可以利用上面推论作为一种简便方法。下面的例子示范了相应的步骤。
例题:求解
5.2. 原根定义
在节 5.1.1 中提到了:如果
定义(原根):如果
例题:前面已证明
表 2 展示了
primitive roots modulo |
||
---|---|---|
1 | 0 | 1 |
2 | 1 | 1 |
3 | 2 | 2 |
4 | 3 | 2 |
5 | 2, 3 | 4 |
6 | 5 | 2 |
7 | 3, 5 | 6 |
8 | 4 | |
9 | 2, 5 | 6 |
10 | 3, 7 | 4 |
11 | 2, 6, 7, 8 | 10 |
12 | 4 | |
13 | 2, 6, 7, 11 | 12 |
14 | 3, 5 | 6 |
15 | 8 | |
16 | 8 | |
17 | 3, 5, 6, 7, 10, 11, 12, 14 | 16 |
18 | 5, 11 | 6 |
19 | 2, 3, 10, 13, 14, 15 | 18 |
20 | 8 | |
21 | 12 | |
22 | 7, 13, 17, 19 | 10 |
23 | 5, 7, 10, 11, 14, 15, 17, 19, 20, 21 | 22 |
24 | 8 | |
25 | 2, 3, 8, 12, 13, 17, 22, 23 | 20 |
26 | 7, 11, 15, 19 | 12 |
27 | 2, 5, 11, 14, 20, 23 | 18 |
28 | 12 | |
29 | 2, 3, 8, 10, 11, 14, 15, 18, 19, 21, 26, 27 | 28 |
30 | 8 | |
31 | 3, 11, 12, 13, 17, 21, 22, 24 | 30 |
从表中可以发现,
5.3. 原根的存在性
并非所有整数都有原根。 比如模
在前
定理:正整数
如果模
5.4. 原根性质
5.5. 指数算术(离散对数)
由上一节的结论可知。 假设
例题:设
例题:设
5.5.1. 和对数相似的性质
定理:假设
,其中 是正整数。
从上面定理可知,模
下面通过例子来介绍一下这个定理。设
- 对于定理第 1 条,
显然是成立的,因为 成立。 - 对于定理第 2 条,假设
,式子 也显然成立,因为左边 ,而右边 。 - 对于定理第 3 条,假设
,式子 也会成立。因为左边 (式子中从 到 是一个模 的运算),而右边 。
5.5.2. 寻找离散对数的困难
给定一个素数
5.6. 原根的应用:ElGamal 密码系统
ElGamal 密码系统是 Taher Elgamal 在 1985 年发明的。其安全性依赖于求模大素数的离散对数的困难性。
下面以 Bob 通过 ElGamal 密码系统给 Alice 发送消息为例,介绍一下 ElGamal 密码系统。
Key Generation 过程如下:
- Alice 选取一个大素数
,找到模 的一个原根 ; - Alice 在
中随机选择一个数 ,它就是私钥,只有 Alice 知道; - Alice 计算出
;公钥就是三元组 ,公钥发送给 Bob。
Bob 加密消息
- Bob 在
中随机选择一个 ,计算 ; - Bob 计算
; - Bob 发送密文二元组
给 Alice。
Alice 解密密文
- Alice 使用公式
计算 对应的明文。
下面推导一下为什么使用
5.6.1. ElGamal 实例
表 3 中通过实例介绍了 ElGamal 密码系统 Key Generation/加密/解密的详细步骤。
Alice | on public network | Bob |
---|---|---|
选择素数 |
||
寻找模 |
||
在 |
||
计算 |
||
发送公钥 |
收到公钥 | |
设待加密的明文 |
||
在 |
||
计算 |
||
计算 |
||
收到密文 | <-- |
发送密文 |
计算明文 |
6. Quadratic Residues
二次剩余(Quadratic Residues)是数论中的一个重要概念。
6.1. 二次剩余定义
6.2. 二次剩余相关定理
定理:如果
上一节例子中介绍了
定理:设
前面介绍过,
6.3. Legendre Symbol
设
例题:给出
6.4. 二次剩余的判定(欧拉判别法)
我们现在给出判定一个整数是否为某个素数的二次剩余的准则。这个准则在证明勒让德符号的性质时很有用。
欧拉判别法:设
例题:问
6.4.1. 二次剩余判定问题(QRP)
前面介绍了,当
但是,如果
公钥密码体制 Goldwasser–Micali Cryptosystem 的安全性基于二次剩余判定问题。
6.5. Jacobi Symbol(Legendre Symbol 的推广)
设
如果
注:勒让德符号仅当
例题:求
6.5.1. 雅可比符号的性质
定理:设
- 若
,则
雅可比符号的互反律:设
7. Modular Square Roots
本节介绍如何计算模一个整数的平方根。即已知
例:求
例:求
7.1. 求模为素数时的平方根
7.1.1. 模为特殊情况
当模数
例:求
7.1.2. 模为特殊情况
当模数
7.1.3. 求模为一般素数时的平方根
如果模
7.2. 求模为合数时的平方根
7.2.1. 已知合数分解
如果模
Figure 1: 模
7.2.2. 未知合数分解
如果我们不知道模
8. 参考
本文主要摘自书籍:《初等数论及其应用(Elementary Number Theory and Its Applications)》和《现代密码学理论与实践(Modern Cryptography Theory and Practice)》