ทฤษฎีบทของออยเลอร์ (Euler's Theorem)
การขยายของ Fermat's Little Theorem สำหรับ Modulus ที่ไม่ใช่ Prime
ข้อความทฤษฎีบท
ถ้า a และ n เป็นจำนวนเต็มที่ หารร่วมมากได้ 1 (gcd(a,n)=1) แล้ว:
aφ(n) ≡ 1 (mod n)
โดย φ(n) = Euler's Totient Function = จำนวนจำนวนเต็มบวก ≤ n ที่หารร่วมกับ n ได้ 1
การพิสูจน์ (Sketch)
- ให้ R = {x₁, x₂, ..., xφ(n)} = ชุดตัวเลข < n ที่ gcd(xᵢ,n)=1
- คูณทุกตัวด้วย a (mod n): S = {a·x₁, a·x₂, ..., a·xφ(n)} mod n
- เพราะ gcd(a,n)=1 และ gcd(xᵢ,n)=1 → gcd(a·xᵢ,n)=1 → S เป็น Permutation ของ R
- คูณทุกตัว: ∏(a·xᵢ) ≡ ∏xᵢ (mod n)
- aφ(n) · ∏xᵢ ≡ ∏xᵢ (mod n)
- ตัด ∏xᵢ (gcd(∏xᵢ, n)=1) → aφ(n) ≡ 1 (mod n)
Euler's Totient Function φ(n)
กฎการคำนวณ
- φ(1) = 0
- φ(p) = p-1 (p เป็นเฉพาะ)
- φ(m×n) = φ(m) × φ(n) ถ้า gcd(m,n)=1 (Multiplicative)
- φ(pᵉ) = pᵉ - pᵉ⁻¹ = pᵉ⁻¹(p-1) (p เฉพาะ)
สูตรทั่วไป
ถ้า n = p₁ᵉ¹ × p₂ᵉ² × ... × pₖᵉᵏ (Factorization)
φ(n) = (p₁ᵉ¹ - p₁ᵉ¹⁻¹) × (p₂ᵉ² - p₂ᵉ²⁻¹) × ... × (pₖᵉᵏ - pₖᵉᵏ⁻¹)
= n × ∏(1 - 1/pᵢ)
การประยุกต์ใน Cryptography
1. RSA Key Generation
- n = p × q (p,q Primes)
- φ(n) = (p-1)(q-1)
- เลือก e: gcd(e, φ(n)) = 1
- คำนวณ d ≡ e⁻¹ (mod φ(n)) ← ใช้ Extended Euclidean Algorithm
- Public Key: (n, e), Private Key: (n, d) หรือ (p, q, d)
2. การถอดรหัส RSA
Cᵈ ≡ Mᵉᵈ ≡ Mᵏφ⁽ⁿ⁾⁺¹ ≡ M (mod n) (โดย Euler's Theorem)
3. CRT (Chinese Remainder Theorem) Optimization
- คำนวณ M mod p และ M mod q แยกกัน → เร็วขึ้น 4 เท่า
- ต้องการ p, q (เก็บใน Private Key)
ความสำคัญ
Euler's Theorem เป็น พื้นฐานทางคณิตศาสตร์ของ RSA และระบบ Public-Key หลายระบบ ทำให้สามารถคำนวณ Modular Inverse และยกกำลัง Modulo ได้อย่างถูกต้อง