flowchart LR
A["Alice chọn p, q nguyên tố\nTính n = p×q\nTính φ(n) = (p-1)(q-1)\nChọn e: gcd(e, φ(n))=1\nTính d = e⁻¹ mod φ(n)"] --> B["Public Key PU = {e, n}\nPrivate Key PR = {d, n}"]
B --> C["Bob mã hóa:\nC = Mᵉ mod n"]
C --> D["Alice giải mã:\nM = Cᵈ mod n"]
2.2 Tại sao giải mã đúng?
Cần chứng minh: $C^d \mod n = M$
$$C^d = (M^e)^d = M^{ed} \mod n$$
Ta cần $ed \equiv 1 \pmod{\lambda(n)}$, trong đó:
Định lý Fermat nhỏ (với p nguyên tố): $a^{p-1} \equiv 1 \pmod{p}$
Định lý Carmichael: $\lambda(n) = \text{lcm}(p-1, q-1)$
2.3 Tối ưu hóa giải mã RSA bằng CRT
Thay vì tính $M = C^d \mod n$ trực tiếp (tốn kém với d lớn), ta dùng Chinese Remainder Theorem (CRT):
$$d_p = d \mod (p-1), \quad d_q = d \mod (q-1), \quad q_{inv} = q^{-1} \mod p$$
m₁ = C^(dp) mod p
m₂ = C^(dq) mod q
h = q_inv × (m₁ - m₂) mod p
m = m₂ + h × q
3. Mật mã ElGamal & Diffie-Hellman
3.1 ElGamal Cipher
Thiết lập: Chọn số nguyên tố $p$, generator $g$, khóa bí mật $x$, khóa công khai $h = g^x \mod p$.
Mã hóa thông điệp $m < p-1$:
Chọn số ngẫu nhiên $r \in_R [1, p-1]$
Tính $C_1 = g^r \mod p$
Tính $C_2 = m \cdot h^r \mod p = m \cdot g^{xr} \mod p$
sequenceDiagram
participant Alice
participant Bob
Note over Alice,Bob: Công khai: p, g
Alice->>Bob: gᵃ mod p (a bí mật)
Bob->>Alice: gᵇ mod p (b bí mật)
Note over Alice: K = (gᵇ)ᵃ = gᵃᵇ mod p
Note over Bob: K = (gᵃ)ᵇ = gᵃᵇ mod p
3.3 Các bài toán khó nền tảng
Bài toán
Mô tả
Ứng dụng
IFP (Integer Factorization)
Cho $n = p \cdot q$, tìm $p, q$
RSA
DLP (Discrete Log)
Cho $g, p, y = g^x \mod p$, tìm $x$
ElGamal, DHE
DHP (Diffie-Hellman)
Cho $g^a \mod p$, $g^b \mod p$, tính $g^{ab} \mod p$
DHE
3.4 Tấn công Man-in-the-Middle vào DHE
4. Nền tảng Toán học cho ECC
4.1 Cấu trúc đại số
graph LR
G["Group (G, +)\n+ và −"] --> R["Ring (R, +, ×)\n+, −, ×"]
R --> F["Field (F, +, ×)\n+, −, ×, ÷"]
F --> EC["Elliptic Curve Group (E, ⊕)\ndựa trên Field K"]
sequenceDiagram
participant Alice
participant Bob
Note over Bob: SK = b, PK_B = bG
Note over Alice: Muốn gửi M ∈ E/K
Alice->>Alice: Chọn ngẫu nhiên k ∈ [1,n-1]
Alice->>Alice: R = kG
Alice->>Alice: C = M + k·PK_B
Alice->>Bob: (R, C)
Bob->>Bob: Giải mã: C - b·R
Note over Bob: C - bR = M + k·bG - b·kG = M ✓
8.3 ECDHE — Trao đổi khóa Diffie-Hellman trên đường cong
sequenceDiagram
participant Alice as Alice (bí mật: a)
participant Bob as Bob (bí mật: b)
Note over Alice,Bob: Công khai: E/K, G
Alice->>Bob: Q_A = a·G
Bob->>Alice: Q_B = b·G
Note over Alice: K_A = a·Q_B = ab·G
Note over Bob: K_B = b·Q_A = ba·G
Note over Alice,Bob: K_A = K_B = abG ✓ (khóa phiên chung)