Lý thuyết mã bảo mật RSA

Một phần của tài liệu (Luận văn thạc sĩ) kỹ thuật bảo mật trong thông tin di động (Trang 36 - 38)

Cho 𝒑 và 𝒒 là hai số nguyên tố lớn, ngẫu nhiên và phân biệt. Mô đun 𝒏 là tích của hai số nguyên tố này: 𝒏 = 𝒑. 𝒒. Hàm phi Euler (Euler's totient function) của n được xác định bởi:

∅(𝒏) = (𝒒 − 𝟏)(𝒑 − 𝟏)

Chọn số 𝒆 sao cho ước chung lớn nhất của 𝒆 và ∅(𝒏) bằng 1: 𝐠𝐜𝐝⁡(𝒆, ∅(𝒏)) = 𝟏

hay 𝒆 nguyên tố cùng nhau với ∅(𝒏)

Chọn số 𝒅 sao cho: 𝒅 = 𝒆−𝟏⁡𝒎𝒐𝒅⁡∅(𝒏).

Cặp khóa công khai là (𝒆, 𝒏) và cặp khóa bí mật là (𝒅, 𝒏).

Sử dụng thuật toán Euclidean mở rộng. Ở đây, 𝒆 là số mũ công khai (public exponent) và 𝒅 là số mũ bí mật (private exponent). Thông thường người ta chọn số mũ công khai nhỏ, ví dụ 𝒆 = 𝟐𝟏𝟔+ 𝟏.

Mô đun 𝒏 và số mũ công khai 𝒆 được công bố. Giá trị 𝒅, các số nguyên tố 𝒑 và

𝒒 được giữ bí mật.

Mã hóa được thực hiện bằng cách tính: 𝑪 = 𝑴𝒆⁡𝒎𝒐𝒅⁡𝒏

M là bản rõ (Plaintext) sao cho 𝟎 ≤ 𝑴 < 𝒏. Số C là bản mã (ciphertext) tương ứng với bản rõ M, được tính bằng cách sử dụng 𝑴⁡ = ⁡ 𝑪𝒅⁡𝒎𝒐𝒅⁡𝒏. [1]

Tính đúng đắn của thuật toán RSA được chứng minh bằng định lý Euler như sau: Cho 𝒏 và 𝒂 là hai số nguyên dương nguyên tố cùng nhau. Khi đó:

𝒂∅(𝒏) = 𝟏(𝒎𝒐𝒅⁡𝒏)

Do 𝒅𝒆⁡ = ⁡𝟏⁡𝒎𝒐𝒅⁡∅(𝒏) nên tồn tại một số nguyên K sao cho 𝒅𝒆⁡ = ⁡𝟏⁡ + ⁡𝑲∅(𝒏). Do đó ta có thể viết:

𝑪𝒅 = (𝑴𝒆)𝒅⁡𝒎𝒐𝒅⁡𝒏 = 𝑴𝒆𝒅⁡𝒎𝒐𝒅⁡𝒏 = ⁡ 𝑴𝟏+𝑲∅(𝒏)⁡𝒎𝒐𝒅⁡𝒏 = 𝑴(𝑴∅(𝒏))𝑲⁡𝒎𝒐𝒅⁡𝒏

Vì 𝒈𝒄𝒅(𝑴, 𝒏) ⁡ = ⁡𝟏, suy ra: 𝑪𝒅 = 𝑴. 𝟏⁡𝒎𝒐𝒅⁡𝒏⁡

Ngoại lệ 𝒈𝒄𝒅(𝑴, 𝒏) ⁡ > ⁡𝟏 có thể được giải quyết như sau. Theo định lý Carmichael 𝑴𝝀(𝒏) = 𝟏⁡𝒎𝒐𝒅⁡𝒏⁡với 𝝀(𝒏) là hàm Carmichael có dạng đơn giản là 𝒏⁡ = ⁡𝒑𝒒, cụ thể:

𝝀(𝒑𝒒) = ⁡ (𝒑 − 𝟏)(𝒒 − 𝟏) 𝐠𝐜𝐝⁡(𝒑 − 𝟏, 𝒒 − 𝟏)

𝝀(𝒏) luôn là ước thật sự (proper divisor) của 𝝓(𝒏) khi 𝒏 là tích của các số nguyên tố lẻ phân biệt; trong trường hợp này, 𝝀(𝒏) nhỏ hơn 𝝓(𝒏). Giờ đây, quan hệ giữa 𝒆 và 𝒅 cho bởi 𝑴𝒆𝒅 = 𝑴⁡𝒎𝒐𝒅⁡𝒏 nếu 𝒆𝒅 = 𝟏⁡𝒎𝒐𝒅⁡𝝀(𝒏).

Do 𝒏 là tích của các số nguyên tố phân biệt nên điều trên đúng với mọi M, do đó nó giúp đối phó với ngoại lệ 𝒈𝒄𝒅(𝑴, 𝒏) ⁡ > ⁡𝟏 nêu trên trong định lý Euler. [1]

Hình 3.1: Sơ đồ mã và giải mã RSA

Nhận xét:

- Kiểu mã trên là mã không đối xứng, khóa công khai khác khóa bí mật, khóa công khai có thể gửi qua mạng.

- Cho dù biết khóa công khai cũng khó dò nhanh ra khóa bí mật d vì liên quan đến việc dò tìm số nguyên tố là ước của n, nếu n là 1 số lớn.

- Mã hóa bảo mật lại thay đổi liên tục (qua việc chọn cặp số nguyên tố khác và lại gửi khóa công cộng khác) qua từng cuộc gọi hay sau khoảng thời gian nhất định nên việc giải mã không theo kịp.

Một phần của tài liệu (Luận văn thạc sĩ) kỹ thuật bảo mật trong thông tin di động (Trang 36 - 38)