Exercise 1
因为N是质数,所以$gcd(u,N) = 1$,所以u在模N下有乘法逆元$u^{-1}$。
$u^{-1}$在模$N$下唯一,故有$a \equiv u^{-1}v \pmod N$,$(0 \leq a \leq N)$,使得$au \equiv v \pmod N$
Exercise 2
证明
对 $b$ 进行归纳。
$b = 1$时。此时 $a \geq 1$,算法直接计算 $a = q \cdot 1 + 0$,返回 $(0, 1, 1)$,满足 $|0| \leq 1$ 且 $|1| \leq a$。
归纳步骤:假设对所有小于 $b$ 的正整数结论成立。考虑 $b \geq 2$。令 $a = qb + r$,其中 $0 \leq r < b$。
- 若 $r = 0$,则算法返回 $(0, 1, b)$,显然 $|0| \leq b$,$|1| \leq a$。
- 若 $r > 0$,则递归调用 $\text{EXTENDED-EUCLID}(b, r)$,得到 $(x', y', d)$ 满足 $b x' + r y' = d$,且由归纳假设有 $|x'| \leq r$,$|y'| \leq b$。算法返回 $(x, y) = (y', x' - q y')$,于是
因此结论成立。
计算 $\text{EXTENDED-EUCLID}(11, 25)$
- $a = 11, b = 25$,$q = 0, r = 11$,递归 $\text{EXTENDED-EUCLID}(25, 11)$。
- $a = 25, b = 11$,$q = 2, r = 3$,递归 $\text{EXTENDED-EUCLID}(11, 3)$。
- $a = 11, b = 3$,$q = 3, r = 2$,递归 $\text{EXTENDED-EUCLID}(3, 2)$。
- $a = 3, b = 2$,$q = 1, r = 1$,递归 $\text{EXTENDED-EUCLID}(2, 1)$。
- $a = 2, b = 1$,$q = 2, r = 0$,递归 $\text{EXTENDED-EUCLID}(1, 0)$。
- $a = 1, b = 0$,返回 $(1, 0, 1)$。
回溯:
- 步骤5:$(x, y) = (0, 1 - 2 \cdot 0) = (0, 1)$,即 $2 \cdot 0 + 1 \cdot 1 = 1$。
- 步骤4:$(x, y) = (1, 0 - 1 \cdot 1) = (1, -1)$,即 $3 \cdot 1 + 2 \cdot (-1) = 1$。
- 步骤3:$(x, y) = (-1, 1 - 3 \cdot (-1)) = (-1, 4)$,即 $11 \cdot (-1) + 3 \cdot 4 = 1$。
- 步骤2:$(x, y) = (4, -1 - 2 \cdot 4) = (4, -9)$,即 $25 \cdot 4 + 11 \cdot (-9) = 1$。
- 步骤1:$(x, y) = (-9, 4 - 0 \cdot (-9)) = (-9, 4)$,即 $11 \cdot (-9) + 25 \cdot 4 = 1$。
因此,$\text{EXTENDED-EUCLID}(11, 25)$ 的输出为 $(-9, 4, 1)$。
即$-9 \cdot 11 + 4 \cdot 25 = 1$
Exercise 3
(i)
(ii)
扩展欧几里得算法 $O(logN)$,输出 $d$ 个解。 $d$ 很大,输出规模本身即 $Θ(d)$
(iii)
设 $d=gcd(a,N)$。存在解当且仅当 $d∣b$ 且 $d∣b′$,此时解集大小为 d。
因此若$S(a,b,N)≠∅$ 且 $S(a,b′,N)≠∅$,则
Exercise 4
(i)
二分查找需 $O(logN)$ 步,每步计算一次乘法,时间复杂度为 $O((logN)^2)$
(ii)
若 $N=q^k$($k>1,q≥2)$,则 $N≥2^k$,取对数得 $k≤log_2N$。当 $N=1$ 时,可视为平凡情况。
(iii)
循环次数 $O(logN)$,每次二分查找 $O(logN)$ 步,每步计算 $q^k$ 需 $O(logk)$次乘法(快速幂),总时间复杂度为 $O((logN)^3loglogN)$
Exercise 5
已知 $561=3×11×17$ 是卡迈克尔数。
同余式 $a^{560} \equiv 1 \pmod {561}$ 等价于同时满足
对每个素数因子 $p \in \{3,11,17\}$,有 $p−1∣560$。由费马小定理,若 $p∤a$,则 $a^{p-1} \equiv 1 \pmod {p}$,从而 $a^{560} \equiv 1 \pmod {p}$; 若 $p∣a$,则 $a^{560} \equiv 0 \pmod {p}$。
因此条件等价于 $a$ 与 $3,11,17$ 均互素,即 $gcd(a,561)=1$。
在 $1≤a<561$ 中,与 $561$互素的个数为
$φ(561)=φ(3)φ(11)φ(17)=2×10×16=320$.
故满足条件的 $a$ 共有 $320$ 个