Tính đúng của quá trình giải mã

Một phần của tài liệu Nghiên cứu vấn đề bảo mật thông tin và đề xuất giải pháp bảo mật cho hệ thống thông tin trường Cao đẳng Kinh tế Kỹ thuật Vĩnh Phúc (Trang 51 - 53)

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".

Một phần của tài liệu Nghiên cứu vấn đề bảo mật thông tin và đề xuất giải pháp bảo mật cho hệ thống thông tin trường Cao đẳng Kinh tế Kỹ thuật Vĩnh Phúc (Trang 51 - 53)

Tải bản đầy đủ (PDF)

(107 trang)