hệ mật mã merkle

16
pg. 1

Upload: thanh-pho-da-lat

Post on 25-Jan-2017

135 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Hệ mật mã merkle

pg. 1

Page 2: Hệ mật mã merkle

Hệ mật mã Merkle-HellmanNội dung chính:I Lịch sửII Một số định nghĩaIII Ý tưởng của hệ mật mãVI Quá trình mã hóa và giải mã của hệV Ưu điểm, nhược điểm và ứng dụngVI Quá trình phá mãVII Quản lý trao đổi khóa

Chi TiếtI Lịch sử:Năm 1976 Diffie và Hellman đưa ra phương pháp trao đổi thông tin bằng mật mã mã hóa khóa bất đối xứng.Từ ý tưởng đó năm 1978 Merkle và Hellman đã lập ra hệ mật mã ba lô (knapsack) Merkle-Hellman.Năm 1982 Adi Shamir đã phá giải được thuật toán của hệ mật mã Merkle-Hellman.

II Định nghĩa phương pháp mã hóa khóa công khai:Mã hóa Khóa Công Khai (PKI Cryptography - viết tắt là PKC) - còn được xem như đồng nghĩa với mã Khóa Bất Đối Xứng (Asynmetric Cryptography)

pg. 1

Page 3: Hệ mật mã merkle

Trong đó khóa dùng để Mã Hóa (Encrypt) khác với khóa dùng để Giải Mã (Decrypt).Trong PKC, người dùng có một cặp khóa : Khóa Công Khai (ký hiệu là P) và Khóa Cá Nhân (Private Key – ký hiệu là Q).Khóa Cá Nhân được giữ kín trong khi Khóa Công Khai lại được công bố rộng rãi đến các đối tượng tham gia giao dịch. Tuy hai khóa này có quan hệ toán học chặt chẽ với nhau nhưng việc dò tìm Khóa Cá Nhân thông qua Khóa Công Khai trên thực tế được xem như không thể thực hiện.

III Ý tưởng của hệ mã:Ý tưởng của hệ mật mã Merkle-Hellman bắt nguồn từ việc giải một bài toán khó, đó là bài toán “ba lô” hay “cái túi” (knapsack). Bài toán này là bài toán không thể giải quyết trong miền thời gian đa thức hay nói cách khác là chưa có thuật toán nào hiệu quả tối ưu (có thể giải quyết nhanh bài toán). Vấn đề của bài toán là tối ưu hóa tổ hợp.Nội dung bài toán như sau:Một kẻ trộm đột nhập vào một cửa hiệu tìm thấy có n mặt hàng có trọng lượng và giá trị khác nhau, nhưng hắn chỉ mang theo một cái túi có sức chứa về trọng lượng tối đa là M. Vậy kẻ trộm nên bỏ vào ba lô những món nào và số

pg. 2

Page 4: Hệ mật mã merkle

lượng bao nhiêu để đạt giá trị cao nhất trong khả năng mà hắn có thể mang đi được.

Định nghĩa bài toán:Ta có n loại mặt hàng, x1 tới xn. Mỗi đồ vật xj có một giá trị pj và một khối lượng wj. Khối lượng tối đa mà ta có thể mang trong ba lô là C.Để giải quyết bài toán “ba lô” này Merkle và Hellman đã dựa vào một trường hợp đặc biệt của bài toán “ba lô” đó là bài toán tổng của các tập hợp con.

pg. 3

Page 5: Hệ mật mã merkle

Định nghĩa bài toán tổng của tập hợp con:Cho một tập hợp các số A và một số B, tìm một tập hợp con của A sao cho tổng bằng B.Liên hệ giữa hai bài toán: A là một ba lô phức tạp (hard knapsack)B là một ba lô đơn giản (easy knapsack) hay một ba lô siêu tăng (superincreasing knapsack) Các hệ số và phần tử nghịch đảo theo module được dùng để chuyển đổi ba lô đơn giản B vào ba lô phức tạp A.Ba lô B là một ba lô đơn giản khi vetor w (w1, w2, …, wj, …,wn) trọng lượng của n mặt hàng tạo thành một chuỗi siêu tăng

Wj ≥ ∑i

j−1

wi với i < j ≤ n

Có cực đại hóa ∑i

n

pixi

Và các mặt hàng x (x1, x2, …,xn) (tồn tại dưới dạng nhị phân) sao cho

M = ∑i=1

n

wixi

Khi đó các yếu tố khác gọi là ba lô phức tạp A. Tìm được xi là một bài toán khó.

pg. 4

Page 6: Hệ mật mã merkle

Bài toán tổng của các tập hợp con (tìm xi) nếu có kết quả có thể dùng thuật toán tham lam để giải quyết trong miền thời gian đa thức.BeginFor i=n downto 1 doIf M ≥ Ai thenM=M - Aixi=1elsexi=0if then là giải pháp cần tìmElseKhông tồn tại giải pháp nào.End

VI Quá trình mã hóa và giải mã của hệ mật mã Merkle-Hellman:1 Quá trình mã hóa:B1: Thông điệp (bản rõ) cần được dịch sang dạng nhị phân M (M1, M2, … , Mn).

B2: Chọn chuỗi siêu tăng B (B1, B2, …, Bj, …, Bn) tức làpg. 5

Page 7: Hệ mật mã merkle

Bj>∑i=1

n−1

Bi

Chọn số nguyên ngẫu nhiên q sao cho:

q>∑i=1

n

Bi

Chọn số nguyên r sao cho r và q là hai số nguyên tố cùng nhau hay:

GCD(r, q) = 1B3: Tìm khóa công khai: A (A1, A2, … , An)

Ai = r . Bi mod qB4: Tìm bản mã:

Ci=∑i=1

n

MiAi

Trong đó A là khóa công khai, còn B, q, r là các khóa riêng2 Quá trình giải mãB1: Tìm phần tử nghịch đảo của r theo module q (r -1) bằng giải thuật EUCLID mở rộng như sau:int y0 = 0, y1 = 1;while r > 0 do{ a = q mod r if a = 0 then Break b = q div r

pg. 6

Page 8: Hệ mật mã merkle

y = y0 - y1 * b q = r r = a y0 = y1 y1 = y }return yB3: Tìm bản rõ:

M = C . r -1 mod qVí dụ:

Cho bản rõ M: HelloQuá trình mã hóa:Dịch từ “Hello” về dạng nhị phân

H : 1001000e : 1100101l : 1101100 : 1101111

Chọn dãy số siêu tăng: B = (3,5,15,25,54,110,225)

Chọn số nguyên q:

q > ∑i=1

7

Bi = 437

pg. 7

Page 9: Hệ mật mã merkle

=> q = 439 Chọn số nguyên r = 10 Tính khóa công khai: Ai = r.Bi mod q 3.10 mod 439 = 30 5.10 mod 439 = 50 15.10 mod 439 = 150 25.10 mod 439 = 250 54.10 mod 439 = 101 110.10 mod 439 = 222 225.10 mod 439 = 55Tạo được dãy khóa công khai: A = (30, 50, 150, 250, 101, 222, 55) CH = 1 . 30 + 0 . 50 + 0 . 150 + 1 . 250 + 0 . 101 + 0 . 222 + 0 . 55 = 280;Tương tự ta tính được: Ce = 236, Cl = 431, Co= 708Quá trình giải mã: Tìm phần tử nghịch đảo của r theo module q:Bước i q r a b y0 y1 y

0 439 10 9 43 0 1 -431 10 9 1 1 1 -43 442 9 1 0

r -1 = 44 (10 . 44 mod 439 = 1)

pg. 8

Page 10: Hệ mật mã merkle

MH = CH . r -1 mod q = 280 . 44 mod 439 = 28 28 > 25 => 28 - 25 = 3; 3 – 3 = 0.

1 0 0 1 0 0 03 253 5 15 25 54 110 225

=>MH=1001000Tương tự tìm được:

Me = 1100101Ml = 1101100Mo = 1101111

V Ưu điểm, nhược điểm và ứng dụng:1 Ưu điểm:Đơn giản hơn các hệ mật mã mã khóa công khai khác.Nếu chọn r và q đủ lớn thì người thám mã để tìm được r và q phải tốn nhiều thời gian hơn2 Nhược điểm:Thuật toán mã hóa đã bị Adi Shamir phá được nên không còn an toàn.Thuật toán mã hóa có khối lượng tính toán nhiều => tốc độ mã hóa chậm.3 Ứng dụng:

pg. 9

Page 11: Hệ mật mã merkle

Bảo mật thông tin và truyền tin.Chứng thực và chữ ký điện tử.

VI Quá trình phá mã:

Phương pháp tấn công tổng thể - vét cạnNếu quá trình mã hóa và giải mã sử dụng r và q đủ lớn thì phương pháp duyệt tổng thể hay vét cạn khóa là rất khó lên đến 2n trường hợp x có thể xảy ra, do đó thời gian để thực hiện quá trình phá mã là rất lớn => bất khả thi.Thuật toán phá mã của Adi Shamir:Shamir-Adleman đã chỉ ra chỗ yếu của hệ mật mã này này bằng cách đi tìm một cặp (r0, q0) sao cho nó có thể biến đổi ngược A về B (từ Public key về Private key).1984, Brickell tuyên bố sự đổ vỡ của hệ thống Knapsack với dung lượng tính toán khoảng 1 giờ máy Cray -1, với 40 vòng lặp chính và cỡ 100 trọng số.

VII Quản lý trao đổi khóa:Để trao đổi thông điệp với Bob, Alice gửi khóa công khai của mình cho Bob, Bob dùng khóa công khai của Alice mã hóa thông điệp rồi gửi lại cho Alice. Sau đó Alice giải mã thông điệp bằng khóa riêng của mình. Phương pháp này không an toàn do tính xác thực không cao.

pg. 10

Page 12: Hệ mật mã merkle

Để an toàn và tính xác thực cao Alice có thể trao đổi thông điệp với Bob qua trung tâm chứng thực CA …

Tài liệu tham khảo tại các trang:https://en.wikipedia.org/wiki/Merkle%E2%80%93Hellman_knapsack_cryptosystemhttps://en.wikipedia.org/wiki/Superincreasing_sequencehttps://vi.wikipedia.org/wiki/B%C3%A0i_to%C3%A1n_x%E1%BA%BFp_ba_l%C3%B4http://text.123doc.org/document/2237677-trinh-bay-he-ma-hoa-merkle-hellman-knapsack-tieu-luan-mon-an-ninh-he-thong-thong-tin.htmhttps://vi.wikipedia.org/wiki/Gi%E1%BA%A3i_thu%E1%BA%ADt_Euclid_m%E1%BB%9F_r%E1%BB%99nghttp://113.171.224.165/videoplayer/merkle-hellman-knapsack-based-public-key-method.pdf?ich_u_r_i=1a6ab00766e5c508f959f510b3758b4b&ich_s_t_a_r_t=0&ich_e_n_d=0&ich_k_e_y=1645058913750963002407&ich_t_y_p_e=1&ich_d_i_s_k_i_d=3&ich_u_n_i_t=1

pg. 11