L06 – EA, EEA, and Chebyshev’s Theorem

Discrete Mathematics2026年3月21日发布 芮和
573 150

Summary of Lecture 5

L05 – Modulo Arithmetic and Square-and-Multiply Algorithm

Complexity of arithmetic operations:

  • a=(ak1a0)2,b=(bk1b0)2a = (a_{k-1} \cdots a_0)_2, b = (b_{k-1} \cdots b_0)_2
    • a+b,aba + b, a – b: O(k)O(k) bit operations
    • abab: O(k2)O(k^2) bit operations
  • a=(ak1a0)2,b=(bl1b0)2,ab,ak1=bl1=1a = (a_{k-1} \cdots a_0)_2, b = (b_{l-1} \cdots b_0)_2, a \ge b, a_{k-1} = b_{l-1} = 1
    • a=bq+ra = bq + r: O((kl+1)l)O((k – l + 1) \cdot l) bit operations

Complexity of arithmetic operations modulo NN

  • a,b{0,1,,N1}a, b \in \{0, 1, \dots, N – 1\}
    • (a±b)modN(a \pm b) \bmod N: O((N))O(\ell(N)) bit operations
    • (ab)modN(ab) \bmod N: O((N)2)O(\ell(N)^2) bit operations

Modular exponentiation: a{0,1,,N1};e=(ek1e0)2a \in \{0, 1, \dots, N – 1\}; e = (e_{k-1} \cdots e_0)_2

  • Square: x0=a;xi=xi12modN,i=1,,k1x_0 = a; x_i = x_{i-1}^2 \bmod N, i = 1, \dots, k – 1
  • Multiply: (aemodN)=(x0e0x1e1xk1ek1modN)(a^e \bmod N) = (x_0^{e_0} \cdot x_1^{e_1} \cdots x_{k-1}^{e_{k-1}} \bmod N)
  • aemodNa^e \bmod N: O(k(N)2)O(k \cdot \ell(N)^2) bit operations

Time-lock puzzle: intrinsically sequential computations

  • The puzzle: (n,t)(n, t)
    // n=pqn = pq is the product of two unequal primes p,qp, q
  • The solution: $at=22tmodna_t = 2^{2^t} \bmod n$
  • The computing process: a0=2modn;ai=ai12modn,i=1,2,,ta_0 = 2 \bmod n; a_i = a_{i-1}^2 \bmod n, i = 1, 2, \dots, t
    • Solved in << 35 years
    • There have been hardware and software advances beyond what I predicted in 1999
    • The resources required to do a single squaring have been reduced by much more
      • underestimated how fast computing technology would become

Encrypting to the future:

  • at=22tmodn,c=m⊕︎ata_t = 2^{2^t} \bmod n, c = m \oplus a_t
  • Given (n,t)(n, t) and cc, find mm

Euclidean Algorithm (EA)

ALGORITHM: compute 𝐄𝐀(a,b)=gcd(a,b)\mathbf{EA}(a,b)=\gcd(a, b)

  • Input:a,ba, b (ab>0a \ge b > 0)
  • Output:d=gcd(a,b)d = \gcd(a, b)
  • Observation: if a=bq+ra=bq+r, then gcd(a,b)=gcd(b,r)\gcd(a,b)=\gcd(b,r)
    • r0=a;r1=b;r_0 = a; r_1 = b;
    • r0=r1q1+r2(0<r2<r1)r_0 = r_1 q_1 + r_2\,(0 < r_2 < r_1)
    • \dots
    • ri1=riqi+ri+1(0<ri+1<ri)r_{i-1} = r_i q_i + r_{i+1} \,(0 < r_{i+1} < r_i)
    • \dots
    • rk2=rk1qk1+rk(0<rk<rk1)r_{k-2} = r_{k-1} q_{k-1} + r_k \,(0 < r_k < r_{k-1})
    • rk1=rkqkr_{k-1} = r_k q_k
    • output rkr_k

Correctness:d=gcd(r0,r1)==gcd(rk1,rk)=rkd = \gcd(r_0, r_1) = \dots = \gcd(r_{k-1}, r_k) = r_k

iirir_iqiq_i
012345
1123000
2452
3331
4122
591
633
70
a=12345,b=123a=12345,\,b=123

Extended Euclidean Algorithm (EEA)

ALGORITHM:𝐄𝐄𝐀(a,b)\mathbf{EEA}(a,b)

  • Input:a,ba, b (ab>0a \ge b > 0)
  • Output:d=gcd(a,b)d = \gcd(a, b), integers s,ts, t such that d=as+btd = as + bt
    • r0=a;r1=b;(s0t0)=(10);(s1t1)=(01);r_0 = a; r_1 = b; \binom{s_0}{t_0} = \binom{1}{0}; \binom{s_1}{t_1} = \binom{0}{1};
    • r0=r1q1+r2 (0<r2<r1);(s2t2)=(s0t0)q1(s1t1)r_0 = r_1 q_1 + r_2 \ (0 < r_2 < r_1); \binom{s_2}{t_2} = \binom{s_0}{t_0} – q_1 \binom{s_1}{t_1}
    • \dots
    • ri1=riqi+ri+1 (0<ri+1<ri);(si+1ti+1)=(si1ti1)qi(siti)r_{i-1} = r_i q_i + r_{i+1} \ (0 < r_{i+1} < r_i); \binom{s_{i+1}}{t_{i+1}} = \binom{s_{i-1}}{t_{i-1}} – q_i \binom{s_i}{t_i}
    • \dots
    • rk2=rk1qk1+rk (0<rk<rk1);(sktk)=(sk2tk2)qk1(sk1tk1)r_{k-2} = r_{k-1} q_{k-1} + r_k \ (0 < r_k < r_{k-1}); \binom{s_k}{t_k} = \binom{s_{k-2}}{t_{k-2}} – q_{k-1} \binom{s_{k-1}}{t_{k-1}}
    • rk1=rkqkr_{k-1} = r_k q_k
    • output rk,sk,tkr_k, s_k, t_k

EXAMPLE: Execution of the EEA on input a=12345,b=123a = 12345, b = 123

iirir_iqiq_isis_itit_i
01234510
112310001
24521-100
3331-2201
41223-301
591-8803
63311-1104
70
  • r0=a=as0+bt0r_0 = a = as_0 + bt_0
  • r1=b=as1+bt1r_1 = b = as_1 + bt_1
  • r2=r0q1r1=as2+bt2r_2 = r_0 – q_1r_1 = as_2 + bt_2
  • ri=asi+bti,i=0,1,2,,kr_i = as_i + bt_i, i = 0, 1, 2, \dots, k

Correctness: We have that ri=asi+btir_i = as_i + bt_i for i=0,1,2,,ki = 0, 1, 2, …, k

  • r0=a=(a,b)(s0t0); r1=b=(a,b)(s1t1);r_0 = a = (a, b) \binom{s_0}{t_0}; \ r_1 = b = (a, b) \binom{s_1}{t_1};
  • r2=r0q1r1=(a,b)(s0t0)q1(a,b)(s1t1)=(a,b)(s2t2);r_2 = r_0 – q_1 r_1 = (a, b) \binom{s_0}{t_0} – q_1 \cdot (a, b) \binom{s_1}{t_1} = (a, b) \binom{s_2}{t_2};
  • \dots
  • rk=rk2qk1rk1=(a,b)(sk2tk2)qk1(a,b)(sk1tk1)=(a,b)(sktk)r_k = r_{k-2} – q_{k-1} r_{k-1} = (a, b) \binom{s_{k-2}}{t_{k-2}} – q_{k-1} \cdot (a, b) \binom{s_{k-1}}{t_{k-1}} = (a, b) \binom{s_k}{t_k}

Complexity

THEOREM: Let α=12(1+5)\alpha = \frac{1}{2}(1 + \sqrt{5}). Then klnblnα+1k \le \frac{\ln b}{\ln \alpha} + 1 in EA and EEA.

  • We show that rkiαir_{k-i} \ge \alpha^i for i=0,1,,k1i = 0, 1, …, k-1
  • k=1:r1α0k = 1: r_1 \ge \alpha^0
  • k>1k > 1:
    • i=0:rk1=α0i = 0: r_k \ge 1 = \alpha^0
    • i=1:rk1>rkrk1rk+12α1i = 1: r_{k-1} > r_k \Rightarrow r_{k-1} \ge r_k + 1 \ge 2 \ge \alpha^1
    • Suppose that rkiαir_{k-i} \ge \alpha^i for iji \le j
      • rk(j+1)=rkjqkj+rk(j1)r_{k-(j+1)} = r_{k-j}q_{k-j} + r_{k-(j-1)}
        αj+αj1\ge \alpha^j + \alpha^{j-1}
        =αj1(α+1)= \alpha^{j-1}(\alpha + 1)
        =αj+1= \alpha^{j+1}
  • b=r1αk1b = r_1 \ge \alpha^{k-1}
  • klnb/lnα+1k \le \ln b / \ln \alpha + 1

Complexity of EA and EEA:O((a)(b))O(\ell(a)\ell(b)) bit operations // kk divisions


RSA Implementation

Randomly choose an integer from the interval [2n1,2n1)[2^{n-1}, 2^n – 1) and test if this integer is a prime.

How many primes in [2n1,2n1)[2^{n-1}, 2^n – 1)?


Chebyshev’s Theorem

DEFINITION: For x+x \in \mathbb{R}^+, π(x)=px1\pi(x) = \sum_{p \le x} 1: the number of primes x\le x
// px\sum_{p \le x} sum over primes

  • π(1)=0,π(2)=1,π(3)=2,\pi(1) = 0, \pi(2) = 1, \pi(3) = 2, \dots

Notations: Big O, Big Omega, and Big Theta. For a positive function g(n)g(n), define

  • O(g(n))={f(n):c,n0>0 such that 0f(n)cg(n) for all nn0}O(g(n)) = \{f(n): \exists c, n_0 > 0 \text{ such that } 0 \le f(n) \le cg(n) \text{ for all } n \ge n_0\}
  • Ω(g(n))={f(n):c,n0>0 such that f(n)cg(n) for all nn0}\Omega(g(n)) = \{f(n): \exists c, n_0 > 0 \text{ such that } f(n) \ge cg(n) \text{ for all } n \ge n_0\}
  • Θ(g(n))={f(n):c,d,n0>0 such that cg(n)f(n)dg(n) for all nn0}\Theta(g(n)) = \{f(n): \exists c, d, n_0 > 0 \text{ such that } cg(n) \le f(n) \le dg(n) \text{ for all } n \ge n_0\}

THEOREM (Chebyshev, 1850)π(x)=Θ(xlnx)\pi(x) = \Theta\left(\frac{x}{\ln x}\right).

LEMMA: Suppose that m+m \in \mathbb{Z}^+. Then (2mm)22m2m\binom{2m}{m} \ge \frac{2^{2m}}{2m} and (2m+1m)22m\binom{2m+1}{m} \le 2^{2m}.

  • 22m=(1+1)m=1+(2m1)++(2mm)++(2m2m1)+12^{2m} = (1+1)^m = 1 + \binom{2m}{1} + \dots + \binom{2m}{m} + \dots + \binom{2m}{2m-1} + 1
    2+(2m1)(2mm)\le 2 + (2m-1)\binom{2m}{m}
    2m(2mm)\le 2m\binom{2m}{m}
  • (2m+1m)=(2m+1m+1)\binom{2m+1}{m} = \binom{2m+1}{m+1}
  • (2m+1m)+(2m+1m+1)(1+1)2m+1\binom{2m+1}{m} + \binom{2m+1}{m+1} \le (1+1)^{2m+1}
    22m+1\le 2^{2m+1}

vp(n)v_p(n): the exponent of pp in the prime factorization of nn
// pvp(n)|n,pvp(n)+1np^{v_p(n)} | n, p^{v_p(n)+1} \nmid n, e.g., v2(12)=2v_2(12) = 2

LEMMA: Suppose that pp is a prime and n+n \in \mathbb{Z}^+. Then vp(n!)=k1n/pkv_p(n!) = \sum_{k \ge 1} \lfloor n/p^k \rfloor

  • proof: see hw1, question 3 (2)
  • Example: v2(5!)=52+522+523+=3v_2(5!) = \lfloor \frac{5}{2} \rfloor + \lfloor \frac{5}{2^2} \rfloor + \lfloor \frac{5}{2^3} \rfloor + \dots = 3
    // 5!=120=23×3×55! = 120 = 2^3 \times 3 \times 5

THEOREM: Let n+n \in \mathbb{Z}^+ and n2n \ge 2. Then $π(n)ln22nlnn\pi(n) \ge \frac{\ln 2}{2} \cdot \frac{n}{\ln n}$.

  • n=2mn = 2m: consider the number t=(2mm)=(2m)!m!m!t = \binom{2m}{m} = \frac{(2m)!}{m! \cdot m!}
    • vp(t)=k12mpkk12mpkv_p(t) = \sum_{k \ge 1} \lfloor \frac{2m}{p^k} \rfloor – \sum_{k \ge 1} 2 \lfloor \frac{m}{p^k} \rfloor
      =k1(2mpk2mpk)= \sum_{k \ge 1} \left( \lfloor \frac{2m}{p^k} \rfloor – 2 \lfloor \frac{m}{p^k} \rfloor \right)// 0,1
      logp2m\le \log_p 2m// there are kk terms: pk2mp^k \le 2m
      =ln2mlnp= \frac{\ln 2m}{\ln p}
  • π(n)lnn=p2mln2m\pi(n) \ln n = \sum_{p \le 2m} \ln 2m
    =p2mln2mlnplnp= \sum_{p \le 2m} \frac{\ln 2m}{\ln p} \cdot \ln p
    p2mvp(t)lnp\ge \sum_{p \le 2m} v_p(t) \cdot \ln p
    =lnt= \ln t
    2mln2ln2m\ge 2m \ln 2 – \ln 2m
    mln2=ln22n\ge m \ln 2 = \frac{\ln 2}{2} n
  • n=2m13n = 2m – 1 \ge 3:
    • π(n)=π(2m)\pi(n) = \pi(2m)
      ln222mln2m\ge \frac{\ln 2}{2} \cdot \frac{2m}{\ln 2m}
      ln222m1ln(2m1)\ge \frac{\ln 2}{2} \cdot \frac{2m-1}{\ln(2m-1)}
      =ln22nlnn= \frac{\ln 2}{2} \cdot \frac{n}{\ln n}

xlnx\frac{x}{\ln x} is increasing when x3x \ge 3

© 版权声明

相关文章

15 条评论

  • 噬魂之刃
    噬魂之刃 读者

    这个算法例子里的数字有点大

    中国广东
    回复
  • 哪吒闹海
    哪吒闹海 读者

    模运算复杂度这块没太懂,有人能讲讲吗

    韩国
    回复
  • 凛音晴美
    凛音晴美 读者

    时间锁谜题这概念有点酷啊

    中国福建
    回复
  • 流云漂泊
    流云漂泊 读者

    切比雪夫定理证明部分看晕了

    中国广东
    回复
  • 安静的烟火
    安静的烟火 读者

    欧几里得算法例子讲得还行。

    中国青海
    回复
  • 飞鸟与远行
    飞鸟与远行 读者

    复杂度分析这块还是有点抽象

    马来西亚
    回复
  • 疯狂的牙刷
    疯狂的牙刷 读者

    EEA的例子表格列得蛮清楚

    中国安徽
    回复
  • 喧者之音
    喧者之音 读者

    这个欧几里得算法例子举得挺直观的

    中国浙江
    回复
  • 诗歌创作人
    诗歌创作人 读者

    时间锁谜题这概念挺酷的

    中国广东
    回复
    • 害羞的考拉妹
      害羞的考拉妹 读者

      我也觉得这个概念很酷

      中国上海@ 诗歌创作人
      回复
  • Violet Mirage
    Violet Mirage 读者

    切比雪夫定理这块有点懵,回头再看一遍。

    中国辽宁
    回复
  • 夜梦游
    夜梦游 游客

    欧几里得算法这个复杂度推导太绕了,看了三遍才懂😵

    中国河北
    回复