Skip to content

06_Cryptography

一、 整除与同余基础 (Divisibility and Modular Arithmetic)

1. 整除定义与性质

  • 定义:对于整数 \(a \neq 0\) 和 \(b\),若存在整数 \(c\) 使得 \(b = ac\),则称 \(a\) 整除 \(b\),记作 \(a \mid b\)。

  • 核心性质:

    • 若 \(a \mid b\) 且 \(a \mid c\),则 \(a \mid (b + c)\)。

    • 若 \(a \mid b\),则对于任意整数 \(c\) 有 \(a \mid bc\)。

    • 传递性:若 \(a \mid b\) 且 \(b \mid c\),则 \(a \mid c\)。

    • 线性组合:若 \(a \mid b\) 且 \(a \mid c\),则 \(a\) 整除它们的任意线性组合 \(a \mid (mb + nc)\)。

2. 除法算法 (The Division Algorithm)

  • 若 \(a\) 为整数,\(d\) 为正整数,则存在唯一的商 \(q\) 和余数 \(r\)(\(0 \leq r < d\)),使得 \(a = dq + r\)。

  • 数学表示为:\(q = a \text{ div } d\),\(r = a \bmod d\)。

3. 同余关系 (Congruence)

  • 定义:若 \(m \mid (a - b)\),则称 \(a\) 和 \(b\) 模 \(m\) 同余,记作 \(a \equiv b \pmod{m}\)。

  • 等价条件:\(a \equiv b \pmod{m}\) 当且仅当存在整数 \(k\) 使得 \(a = b + km\),或等价于 \(a \bmod m = b \bmod m\)。

  • 运算规则:同余关系下的加法和乘法保持有效(\(a+c \equiv b+d \pmod{m}\) 且 \(ac \equiv bd \pmod{m}\)),但除法不一定有效。

  • \(\mathbb{Z}_m\) 集合:包含 \(\{0, 1, \dots, m-1\}\)。其模 \(m\) 加法和乘法满足封闭性、结合律、交换律和分配律。每个非零元素 \(a\) 都有加法逆元 \((m - a)\),但乘法逆元不一定存在。


二、 整数表示与运算算法 (Integer Representations and Algorithms)

  • \(b\) 进制表示:任意正整数 \(n\) 可唯一表示为 \(n = a_kb^k + a_{k-1}b^{k-1} + \dots + a_1b + a_0\),其中 \(0 \le a_i < b\) 且 \(a_k \neq 0\)。计算机中常用二进制 (Base 2)、八进制 (Base 8) 和十六进制 (Base 16)。

  • 基础运算复杂度:两个 \(n\) 位整数的二进制加法时间复杂度为 \(O(n)\),二进制乘法为 \(O(n^2)\)。

  • 快速模幂算法 (Binary Modular Exponentiation):用于高效计算 \(b^n \bmod m\)。通过将指数 \(n\) 展开为二进制并连续平方,其位运算时间复杂度降至 \(O((\log m)^2 \log n)\),是密码学的核心支撑。


三、 素数与最大公约数 (Primes and GCD)

1. 素数定理与生成

  • 算术基本定理:每个大于 1 的正整数都可以唯一地分解为素数的乘积(不计次序)。

  • 埃拉托斯特尼筛法 (Sieve of Eratosthenes):通过剔除素数的倍数来寻找素数,优化后只需筛至 \(\sqrt{n}\)。

  • 素数定理 (Prime Number Theorem):不超过 \(x\) 的素数个数 \(\pi(x)\) 渐近于 \(x / \ln(x)\)。

2. 最大公约数 (GCD) 与最小公倍数 (LCM)

  • 互质 (Relatively Prime):若 \(\gcd(a, b) = 1\),则 \(a\) 和 \(b\) 互质。

  • 核心定理:\(ab = \gcd(a, b) \cdot \text{lcm}(a, b)\)。

  • 欧几里得算法 (Euclidean Algorithm):基于引理 \(a = bq + r \implies \gcd(a, b) = \gcd(b, r)\),通过连续相除取余,最后一个非零余数即为 GCD。时间复杂度为 \(O(\log b)\)。

3. 裴蜀定理 (Bézout's Theorem)

  • 若 \(a, b\) 为正整数,则必定存在整数 \(s, t\) 使得 \(\gcd(a, b) = sa + tb\)。可通过反向推导欧几里得算法求得 \(s\) 和 \(t\)。

  • 重要推论 (同余除法):若 \(ac \equiv bc \pmod{m}\) 且 \(\gcd(c, m) = 1\)(即 \(c\) 与模数互质),则可以安全地消除 \(c\),得出 \(a \equiv b \pmod{m}\)。


四、 求解同余方程 (Solving Congruences)

1. 线性同余与逆元

  • 乘法逆元:对于 \(ax \equiv b \pmod{m}\),若 \(\gcd(a, m) = 1\),则存在唯一的逆元 \(\bar{a}\) 使得 \(\bar{a}a \equiv 1 \pmod{m}\)。

  • 求解方法:利用扩展欧几里得算法求出裴蜀系数,该系数即为逆元,方程两边同乘逆元即可解出 \(x\)。

2. 中国剩余定理 (CRT)

  • 用于求解模数两两互质的同余方程组(如 \(x \equiv a_i \pmod{m_i}\))。

  • 方程组在模 \(m = m_1 m_2 \dots m_n\) 下有唯一解。

  • 公式法:\(x = \sum a_i M_i y_i\),其中 \(M_i = m / m_i\),\(y_i\) 是 \(M_i\) 模 \(m_i\) 的逆元。也可以通过逐个代入的回代法求解。

3. 费马小定理与欧拉定理

  • 费马小定理:若 \(p\) 为素数且 \(p \nmid a\),则 \(a^{p-1} \equiv 1 \pmod{p}\)。对于任意 \(a\) 均有 \(a^p \equiv a \pmod{p}\)。

  • 欧拉定理 (推广):若 \(\gcd(a, n) = 1\),则 \(a^{\varphi(n)} \equiv 1 \pmod{n}\),其中 \(\varphi(n)\) 为欧拉函数。

  • 伪素数与卡迈克尔数:满足 \(b^{n-1} \equiv 1 \pmod{n}\) 的合数 \(n\) 称为伪素数;若对所有与 \(n\) 互质的 \(b\) 均成立,则称为卡迈克尔数 (Carmichael Numbers,如 561)。

4. 原根与离散对数

  • 原根 (Primitive Root):若素数 \(p\) 的某个元素 \(r\) 的幂可以生成 \(\mathbb{Z}_p\) 中的所有非零元素,则 \(r\) 为原根。

  • 离散对数 (Discrete Logarithm):求解方程 \(r^e \bmod p = a\) 中的指数 \(e\),记作 \(\log_r a = e\)。计算离散对数具有极高的计算难度(无已知多项式时间算法),这是非对称密码学的重要数学基础。


五、 同余的实际应用 (Applications of Congruences)

1. 数据结构与校验

  • 哈希函数:\(h(k) = k \bmod m\)。常使用线性探测法 \(h(k, i) = (h(k) + i) \bmod m\) 解决哈希冲突 (Collisions)。

  • 伪随机数生成:线性同余法 \(x_{n+1} = (ax_n + c) \bmod m\)。

  • 校验码 (Check Digits):例如 UPC (模 10 校验) 和 ISBN-10 (模 11 校验),用于检测输入错误。

2. RSA 公钥密码体制

基于大整数分解的计算不可行性。

  • 密钥生成:选择两大素数 \(p, q\),计算 \(n = p \cdot q\)。选择与 \((p-1)(q-1)\) 互质的公钥指数 \(e\)。求 \(e\) 模 \((p-1)(q-1)\) 的逆元得到私钥 \(d\)。公钥为 \((n, e)\),私钥为 \(d\)。

  • 加密:\(C = M^e \bmod n\)。

  • 解密:\(M = C^d \bmod n\)。

3. 密码学协议

  • Diffie-Hellman 密钥交换:允许双方在不安全的信道上建立共享密钥。双方利用公共素数 \(p\) 和原根 \(a\) 及各自的私密数字 \(k_1, k_2\),最终计算出共享密钥 \((a^{k_2})^{k_1} \bmod p\)。安全性依赖于离散对数难题。

  • 数字签名 (Digital Signatures):发送方用自己的私钥加密消息 (\(y = x^d \bmod n\)),接收方用发送方的公钥解密验证 (\(x = y^e \bmod n\)),确保消息未被伪造且不可抵赖。可与公钥加密结合,同时实现身份认证和机密性。