Từ: ed ≡ 1mod φ(N) ⇒ φ(N) | (ed - 1). ⇔ φ(pq)| (ed - 1)
⇔ φ(p) * φ(q) | (ed - 1) (do p, q là các số nguyên tố)
⇔ φ(p) | (ed - 1) (1)
và φ(q) | (ed - 1) (2)
Từ (1) ⇒ ∃ k ∈ Z: ed -1= k φ(p) = k (p-1) (p là số nguyên tố) (3)
Xét trƣờng hợp tổng quát với mọi số M ∈ Zn , khi nâng lũy thừa ed ta có:
Med ≡ M(ed -1) + 1 (mod p)
⇔ Med ≡ (M(ed-1))*M(mod p) (4) Từ (3) & (4) ⇒ Med ≡ (Mk(p - 1)) * M (mod p) (5) Vì p là số nguyên tố, vậy bất kỳ số M ∈ Zn có hai trƣờng hợp: M nguyên tố cùng nhau với p (nghĩa là gcd(M, p) = 1)
hoặc M là bội số của p (nghĩa là gcd(M, p) = p). • Trƣờng hợp 1: gcd (M, p) = 1
Vậy ⇒ Mp-1 ≡ 1 (mod p) (theo định lý Fermat) Từ: (5) ⇒ Med ≡ (1)k M (mod p)
⇒ Med ≡ M (mod p) (6)
• Trƣờng hợp 2: Nếu gcd(M, p) = p ⇒ M ≡ 0 (mod p). Đồng thời lũy thừa số M lên một số nguyên bất kỳ, thì cũng chia hết cho p. Nghĩa là Med ≡ 0 (mod p). Vậy trƣờng hợp 2 cũng thỏa mãn phƣơng trình (6)
Với cách tính tƣơng tự với q, từ (2) ⇒ Med ≡ M (mod q)(7) Từ (6) & (7) ⇒ Med ≡ M (mod pq) ≡ M (mod N).
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ví dụ 2.1: Minh họa của hệ mật mã RSA a) Tạo khóa:
Chọn p và q là những số nguyên tố nhỏ với mục đích minh họa • Chọn hai số nguyên tố p = 13, q = 17;
• Tính N = 13 * 17 = 221 và φ(N) = (13- 1) * (17-1) = 192 • Chọn e = 5 thỏa mãn gcd(e, φ(N)) = gcd(192, 5) = 1;
• Tím phần tử nghịch đảo d = 77 (dùng thuật toán Euclid mở rộng) ; • Công bố khóa công khai là cặp số ( e = 5, N = 221), số (d = 77, N = 221) đƣợc giữ làm khóa riêng.
b) Mã hóa: Giả sử nội dung cần mã hoá là M= “VINH PHUC ” • Biến đổi các kƣ tự của thông điệp thành các số tƣơng ứng nhƣ sau:
V I N H ⎵ P H U C
22 09 14 08 00 16 08 21 03
• Chia thông điệp thành 9 khối, mỗi khối gồm 2 chữ số biểu diễn một số nguyên Mi < N, với Mi∈ {22;09;14;08;00;16;08;21;03}.
• Mã hóa lần lƣợt từng số Mi: Ci = Mi 5
( mod 221) Mã hóa số đầu tiên M1 = 22 theo cách tính (8) ta có: C1 = M15 mod 221 ≡ 225 mod 221 = 133.
Tiếp tục tính các số C2 ,...,C9 từ các số M2 ,..., M9 theo (8). Ta có đƣợc kết quả ở cột Ci là bản mã để gửi đến ngƣời nhận:
Khối 1 2 3 4 5 6 7 8 9 Mi 22 09 14 08 00 16 08 21 03 Ci=E(Mi) 133 42 131 60 0 152 60 21 22 c) Giải mã: • Thực hiện giải mã lần lƣợt từng số ở cột Ci (1≤ i ≤ 9) Mi = Ci77 ( mod 221) (9)
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Giải mã số đầu tiên C1 = 133 theo cách tính (9) ta có: M1 = C177 mod 221 = 13377 mod 221 = 22
Tiếp tục tính các số M2,..., M9 từ các số C2,...,C9 theo (9) ta có bảng minh họa các số Mi đƣợc giải mã từ các số Ci nhƣ sau:
Khối 1 2 3 4 5 6 7 8 9
Ci=E(Mi) 133 42 131 60 0 152 60 21 22
Mi 22 09 14 08 00 16 08 21 03
• Thực hiện phép biến đổi ngƣợc từ các số Mi thành các chuỗi ký tự tƣơng ứng để khôi phục lại thông điệp gốc ban đầu M = "VINH PHUC".