Sơ đồ của hệ mật mã RSA

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Phân tích hệ mật mã RSA và các biến thế của nó (Trang 21 - 25)

CHƯƠNG 2: PHÂN TÍCH TỔNG QUAN HỆ MẬT MÃ RSA

2.1. Phân tích tổng quan RSA

2.1.2. Sơ đồ của hệ mật mã RSA

Hệ mật mã RSA là hệ mật mã khóa công khai được biết đến đầu tiên.

Như định nghĩa của hệ mật mã khóa công khai, hệ mật mã RSA gồm một bộ 5 (P, C, K, E, D) được xác định như sau:

Cho N=pq (p và q là hai số nguyên tố lớn), thì:

P = C = ZN, và định nghĩa không gian khóa như sau:

K={N, p, q, e, d) : e < (N) và nguyên tố với (N) ; ed ≡1(mod (N))}

( (N)= (p-1) (q-1) là hàm phi-Euler)

(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no

Nguyễn Thị Ngọc Anh – K16 – HTTT1

Mã hóa theo hệ mật mã RSA có hai khóa:

Khóa công khai (e, N) N – là modulus;

e – số mũ công khai (còn gọi là số mũ mã hóa).

Khóa bí mật (d, p, q)

d – là số mũ bí mật (còn gọi là số mũ giải mã ).

Với Bản rõ m P và khóa k K, Bản mã c C, định nghĩa:

- Hàm Mã hoá: Mã hóa theo hàm encK: ZN → ZN, được xác định bằng:

c = encK(m) = me mod N

- Hàm Giải mã: Mã hóa theo hàm decK: ZN → ZN được xác định bằng m = decK(c)= cd mod N

Chứng minh sự đúng đắn của hàm mã hóa và giải mã:

Để chứng minh sự đúng đắn, ta phải chứng minh với mọi khóa:

K = (N, p, q, e, d) : e, d ZN , ed 1 (mod (N)) và mọi m P, thì:

decK(encK(m)) = m.

Đúng vậy: do e.d 1 (mod (N))  e.d = 1 + k (N) (k là một số nguyên).

- Nếu m nguyên tố với N, theo định lý Euler ta có:

cd mod N (me)d (mod N) med (mod N) m1+k (N) (mod N) m(m (N))k (mod N) m (mod N)

m

- Nếu m không nguyên tố với N, thì do N=p.q, hoặc m chia hết cho p và nguyên tố với q, hoặc m chia hết cho q và nguyên tố với p, và (N) = (p-1)(q-1), suy ra:

m1+k (N) (mod N) m (m (p) k (q) ) (mod p) = m (mod p) = m, m1+k (N) (mod N) m (m (q) k (p) ) (mod q) = m (mod q) = m,

Chú ý:

RSA ban đầu, định nghĩa số mũ bí mật và công khai là nghịch đảo theo modulo (N), đây là một điều kiện đủ (nhưng không cần thiết) cho quá trình giải mã. Một điều kiện cần là các số mũ bí mật và công khai là nghịch đảo của nhau theo modulo hàm λ(N) của Carmichael [8]. Vì hàm λ(N) đã định nghĩa số m nhỏ nhất để: am 1 (mod N) (a là số nguyên tố cùng nhau với N). Do đó, nó đủ để định nghĩa các số mũ bí mật và công khai là nghịch đảo theo modulo bội số của λ(N). Cho một modulus N=pq của RSA. Hàm λ(N) được xác định bằng:

λ(N) = lcm (p-1, q-1).

(N) là một bội của λ(N) vì:

(N) = (p-1)(q-1) = gcd(p-1, q-1) lcm(p-1, q-1) = gcd(p-1, q-1) λ(N)

Theo đó, ta sử dụng (N) hoặc λ(N) trong thuật toán tạo khóa.

Các thuật toán tạo khóa, mã hóa và giải mã của RSA:

(1) Thuật toán Tạo khóa:

- Input: n tham số

- Output: khóa công khai (e, N) và khóa bí mật (d, p, q) - Thuật toán:

Tạo ra cặp khóa gồm khóa công khai và khóa bí mật theo các bước sau:

1. Chọn bí mật 2 số nguyên tố lớn p và q , với p≠ q, lựa chọn ngẫu nhiên và độc lập. Đặt P = C = ZN

2. Tính: N = pq, là một modulus n-bit . Công khai N 3. Tính bí mật giá trị (N) = (p-1)(q-1) .

4. Chọn một mũ công khai e sao cho 1 < e < (N), và là số nguyên tố cùng nhau với (N) .

5. Tính d là nghịch đảo của số mũ công khai theo modulo (N) (hoặc modulo λ(N)): de ≡ 1(mod (N))

6. Không gian khóa K được định nghĩa như sau:

K = (N, p, q, e, d) : e, d ZN , e*d 1 (mod (N)) . (2) Thuật toán mã hóa

- Input: Một khóa công khai (e, N) và một thông điệp bản rõ m ZN

- Output: Một bản mã c = me mod N (3) Thuật toán giải mã

(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no(LUAN.VAN.THAC.SI).Phan.tich.he.mat.ma.RSA.va.cac.bien.the.cua.no

Nguyễn Thị Ngọc Anh – K16 – HTTT1

- Input: Một khóa bí mật (d, p, q) và một bản mã c ZN - Output: Một bản rõ m = cd mod N

 Ví dụ: Thực hiện mã hóa dãy số: 7 13 17 24

(Trong ví dụ này, luận văn sử dụng những số nhỏ để tiện tính toán, còn trong thực tế phải dùng các số có giá trị đủ lớn)

(1)Tạo khóa:

- Chọn: p = 3, q = 11, ta có:

+ N = pq = 33

+ λ= lcm (p-1, q-1) = lcm (2,10) = 10

- Chọn e = 7 (gcd ( e, λ ) =1 : e nguyên tố cùng nhau với λ (λ =10) ) Từ e*d mod 10 = 1. Tính được d = 3

Vậy ta được:

Khóa công khai: (e, N) = (7, 33) Khóa bí mật: (d, p, q) = (3, 3,11)

(2) Mã hóa: thực hiện mã hóa bản rõ m = 7 13 17 24 7 -> 77 mod 33 = 28

13 -> 137 mod 33 = 7 17 -> 177 mod 33 = 8 24 -> 247 mod 33 = 18 '7 13 17 24' => '28 7 8 18' (3) Giải mã: Thực hiện giải mã bản mã c = 28 7 8 18

28 -> 283 mod 33 = 7 7 -> 73 mod 33 = 13 8 -> 83 mod 33 = 17 18 -> 183 mod 33 = 24

Trong luận văn này, sẽ xem xét các trường hợp của RSA với số mũ bí mật và số mũ công khai đôi khi được xác định là nghịch đảo theo modulo λ(N), đôi khi được định nghĩa là nghịch đảo theo modulo (N). Thêm vào đó, chỉ xét các trường hợp của RSA với các số nguyên tố cân bằng, điều này có nghĩa là hai số nguyên tố của RSA có kích thước xấp xỉ nhau. Đặc biệt, với một modulus N=pq (p, q là các số nguyên tố cân bằng) của RSA được giả định là:

, 2 2

4 1N1/2 p N1/2 q N1/2 và p < q< 2p.

Theo đó, khi các số nguyên tố RSA được xác định, hàm phi-Euler thỏa mãn:

|N- (N)| = |N- (p -1)(q -1)|

= |N- (N- p- q+ 1)|

= |p+ q -1| < 3N1/2

Do (N) < N < 2 (N), suy ra N- (N) = p + q – 1 < 3N1/2. Đặt s = N- (N), suy ra: s < 3N1/2.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Phân tích hệ mật mã RSA và các biến thế của nó (Trang 21 - 25)

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

(67 trang)