Nguyên tắc thực hiện của RSA

Một phần của tài liệu an toàn bảo mật thông tin (Trang 65)

Để thực hiện mã hóa và giải mã, RSA dùng phép lũy thừa modulo của lý thuyết số. Các bước thực hiện như sau:

1) Chọn hai số nguyên tố lớn pq và tính N = pq. Cần chọn pq sao cho:

M < 2i-1< N <2i . Với i = 1024 thì N là một số nguyên dài khoảng 309 chữ số. 2) Tính n = (p − 1)(q −1)

3) Tìm một số e sao cho e nguyên tố cùng nhau với n

4) Tìm một số d sao cho =. 1 ≡ 1 /01 R (d là nghịch đảo của e trong phép modulo n) 5) Hủy bỏ n, pq. Chọn khóa công khai KU là cặp (e, N), khóa riêng KR là cặp

(d, N)

6) Việc mã hóa thực hiện theo công thức:

• Theo phương án 1, mã hóa bảo mật: ? = X(l, m) = ln /01 o

• Theo phương án 2, mã hóa không thoái thác: ? = X(l, p) = lq /01 o 7) Việc giải mã thực hiện theo công thức:

• Theo phương án 1, mã hóa bảo mật: lr = Y(?, p) = ?q /01 o

• Theo phương án 2, mã hóa không thoái thác: lr = Y(?, m) = ?n /01 o Bản rõ M có kích thước i-1 bít, bản mã C có kích thước i bít.

Để đảm bảo rằng RSA thực hiện đúng theo nguyên tắc của mã hóa khóa công khai, ta phải chứng minh hai điều sau:

a) Bản giải mã chính là bản rõ ban đầu: lr = l , xét phương án 1: Từ bước 4 ta suy ra:

=1 = *R + 1 với k là một số nguyên nào đó Vậy: lr = ?q /01 o

= lnq /01 o

= ls4t( /01 o

= ls(f5()(u5()t( /01 o

Trước tiên ta chứng minh: ls(f5()(u5()t( ≡ l /01 +. Xét hai trường hợp của M:

66

M không chia hết cho p, vì p là số nguyên tố nên suy ra M nguyên tố cùng nhau với p. Vậy:

ls(f5()(u5()t( /01 + = l. (lf5()s(u5() /01 +

= l. 1s(u5() /01 + (theo định lý Fermat) = l /01 +

Vậy: ls(f5()(u5()t(− l ≡ 0 /01 + với mọi M. Hay nói cách khác

ls(f5()(u5()t(− l chia hết cho p. Chứng minh tương tự ta có ls(f5()(u5()t(− l chia hết cho q. p, q là hai số nguyên tố nên suy ra ls(f5()(u5()t(− l chia hết cho N = pq. Tóm lại:

ls(f5()(u5()t( ≡ l /01 o

⇒ lr = ls(f5()(u5()t( /01 o = l (do M<N) (đpcm). Vì ed đối xứng nên có thể thấy trong phương án 2, ta cũng có lr = l. b) Không thể suy ra KR từ KU, nghĩa là tìm cặp (d, N) từ cặp (e, N):

eN, muốn tìm d, ta phải dựa vào công thức: =. 1 ≡ 1 /01 R . Do đó phải tính được n. Vì R = (+ − 1)(y − 1) nên suy ra phải tính được pq. Vì N = pq

nên ta chỉ có thể tính được pq từ N. Tuy nhiên điều này là bất khả thi vì N = pq là hàm một chiềụ Vậy không thể tính được KR từ KU.

Một phần của tài liệu an toàn bảo mật thông tin (Trang 65)

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

(181 trang)