密码学数学基础 - 整数关系
在我们踏上密码学数学基础的冒险之旅后,第一站就是整数关系的世界。这个领域虽然看似简单,但却是构建整个密码学大厦的基石。无论是最基本的整除关系,还是更复杂的同余关系,它们都在为我们揭示数字之间的神秘联系。
本章将带你深入了解整数关系的核心概念,包括整除、素数、最大公约数和最小公倍数等。我们将通过生动的例子和直观的解释,帮助你掌握这些基本工具,为后续的密码学学习打下坚实的基础。
别看我说的很高大上,放轻松,这一章真的非常简单口牙。😁
整除关系与素数 😋
在整数的世界里,整除关系是最基本的关系之一。我们说一个整数 $ a $ 整除另一个整数 $ b $,记作 $ a \mid b $,如果存在一个整数 $ k $ 使得 $ b = ak $。换句话说,$ b $ 可以被 $ a $ 整除,没有余数。例如,$ 3 \mid 12 $ 因为 $ 12 = 3 \times 4 $,但 $ 5 \nmid 12 $ 因为 $ 12 $ 不能被 $ 5 $ 整除。
素数是大于 1 的整数,除了 1 和它本身之外没有其他正整数因数。素数在密码学中扮演着重要的角色,因为许多加密算法都依赖于大素数的性质。例如,RSA 加密算法就是基于两个大素数的乘积来实现安全性的。
最大公约数与最小公倍数 😛
最大公约数(GCD)是指两个或多个整数的公共约数中最大的一个。比如,$ \text{gcd}(12, 15) = 3 $,因为 3 是 12 和 15 的最大公共约数。
最小公倍数(LCM)则是指两个或多个整数的公共倍数中最小的一个。例如,$ \text{lcm}(4, 6) = 12 $,因为 12 是 4 和 6 的最小公共倍数。
如何求解最大公约数与最小公倍数 🤨
计算最大公约数的一种高效方法是辗转相除法(Euclidean Algorithm)。
这个算法基于一个重要的性质①:对于两个整数 $ a $ 和 $ b $,如果 $ a > b $,那么
通过不断地将较大的数替换为较小的数和它们的余数,我们可以快速找到最大公约数。
再根据最大公约数和最小公倍数的性质②:
求出最小公倍数。
裴蜀定理与扩展欧几里得算法 🥰
裴蜀定理(Bézout’s Identity)是整数关系中的一个重要定理,它告诉我们对于任意两个整数 $ a $ 和 $ b $,存在整数 $ x $ 和 $ y $,使得性质③:
扩展欧几里得算法(Extended Euclidean Algorithm)就是基于裴蜀定理的一种算法,它不仅可以计算最大公约数,还可以找到满足裴蜀定理的整数 $ x $ 和 $ y $。
结论①②③证明 🤓👆
由于本章节的定理和算法都比较基础,我们来简单证明一下吧。
结论①证明 😑
带余除法分解
假设 $ a = bq + r $,其中 $ q $ 是商,$ r $ 是余数,且 $ 0 \leq r < b $。我们记$ r $为 $ a \mod b $。
证明$gcd(a,b)$是$b$和$r$的公约数
设 $ d = \text{gcd}(a, b) $,则 $ d \mid a $ 和 $ d \mid b $。
因为 $ d $ 整除 $ a $ 和 $ bq $,$ d $ 也必须整除 $ r = a - bq $,即 $ d \mid r $。
所以,$ d $ 是 $ b $ 和 $ r $ 的公因数,那么一定小于等于最大公因数$ \text{gcd}(b, r) $,故 $ \text{gcd}(a, b) \leq \text{gcd}(b, r) $。
证明$gcd(b,r)$是$a$和$b$的公约数
设 $ d’ = \text{gcd}(b, r) $,则 $ d’ \mid b $ 和 $ d’ \mid r $。
因为 $ d’ $ 整除 $ b $ 和 $ r $,$ d’ $ 也必须整除 $ a = bq + r $,即 $ d’ \mid a $。
所以,$ d’ $ 是 $ a $ 和 $ b $ 的公因数,那么一定小于等于最大公因数$ \text{gcd}(a, b) $,故 $ \text{gcd}(b, r) \leq \text{gcd}(a, b) $。
总结
综上所述,$ \text{gcd}(a, b) = \text{gcd}(b, r) $,证明完毕。
结论②证明 😪
设 $ d = \text{gcd}(a, b) $,则 $ a = da’ $ 和 $ b = db’ $,其中 $ a’ $ 和 $ b’ $ 是互质的整数。
因此,$ \text{lcm}(a, b) = d \times a’ \times b’ = \frac{|da’ \times db’|}{d} = \frac{|a \times b|}{\text{gcd}(a, b)} $,证明完毕。
结论③证明 😨
欧几里得算法(辗转相除法)
设 $ d = \text{gcd}(a, b) $。
用辗转相除法:
不断进行下去,直到余数为 0:
最后余数为 0,说明 $ r_n = d = \text{gcd}(a, b) $。
反向替换求解 $ x $ 和 $ y $
倒数第二步:
再把$r_{n-1}$用上一行表示:
往回带入:
一直往上带入,最终可以表示为:
其中 $ x, y \in \mathbb{Z} $
上一章:密码学数学基础 - 前言 👈
下一章:密码学数学基础 - 同余关系与模运算 👈
回到开始:关于我 👈
相关链接:
密码学算法 - 欧几里得算法 👈











