Mã hóa và giải mã

Một phần của tài liệu nghiên cứu các mô hình, cấu trúc và các thành phần cơ bản của trung tâm xác thực dựa trên công nghệ PKI (Trang 28 - 29)

Mã hóa

Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên Bob chuyển M thành một số m<n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được thỏa thuận trước.

Lúc này Bob có m và biết n cũng như e do Alice gửi. Bob sẽ tính c là bản mã hóa của m theo công thức:

c = mc mod n

Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo môđun) bằng (thuật toán bình phương và nhân) Cuối cùng Bob gửi c cho Alice.

Giải mã

Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm được m từ c theo công thức sau:

m = cd mod n

Biết m, Alice tìm lại M theo phương pháp đã thỏa thuận trước. Quá trình giải mã hoạt động vì ta có:

cd ≡ (me)dmed(modn) Do ed ≡ 1(mod p-1) và ed ≡ 1(mod q-1), nên: med ≡ m(mod p) và med ≡ 1(mod q)

Mặt khác p,q là 2 số nguyên tố cùng nhau, nên theo định lý số dư Trung Quốc, ta có: med ≡ m (mod pq) hay cd ≡ m (mod n)

Ví dụ:

Giả sử Bob chọn p = 101 và q = 113. Khi đó n = 11413 và φ(n) = 100 x 112 = 11200. Vì 11200 = 26527, nên có thể dùng một số nguyên b như một số mũ hóa khi và chỉ khi b không chia hết cho 2,5 hoặc 7. (Vì thế trong thực tế

Bob sẽ không phân tích φ(n)), anh ta sẽ kiểm tra điều kiện UCLN(φ(n), b) = 1 bằng thuật toán Euclide. Giả sử Bob chọn b = 3533, khi đó theo thuật toán Euclide mở rộng:

b-1 = 6597 mod 11200 Bởi vậy, số mũ mật để giải mã của Bob là a = 6597.

Bob sẽ công bố n = 11413 và b = 3533 trong một danh bạ. Bây giờ, giả sử Alice muốn gửi bản rõ 9726 tới Bob. Cô ta sẽ tính

97263533 mod 11413 = 5761

Rồi gửi bản mã 5761 trên kênh. Khi Bob nhận được bản mã 5761, anh ta sử dụng số mũ a mật để tính:

57616597 mod 11413 = 9726

Độ mật của hàm RSA được dựa trên giả thiết là hàm mã ek(x) = xb mod n là hàm một chiều. Bởi vậy thám mã sẽ không có khả năng về mặt tính toán để giải mã một bản mã. Cửa sập cho phép Bob giải mã được chính là thông tin về phép phân tích thừa số n (n = pq). Vì Bob biết phân tích này, anh ta có thể tính φ(n) = (p -1)(q -1) và rồi tính số mũ giải mã a bằng cách sử dụng thuật toán Euclide mở rộng.

Một phần của tài liệu nghiên cứu các mô hình, cấu trúc và các thành phần cơ bản của trung tâm xác thực dựa trên công nghệ PKI (Trang 28 - 29)